蜗窝科技

蜗窝科技

蜗窝科技 —— 嵌入式 Linux 内核技术笔记与讨论存档

共 373 篇技术笔记(2014–2026)· 讨论区存档(163 个主题) · 数据下载

USB-C(USB Type-C)规范的简单介绍和分析

作者:wowo · 发布于 2017-12-18 16:18 · USB

从1996年1月USB1.0正式发布至今(2017年9月 USB3.2发布),USB已经走过了21个年头。在这21年的时间了,USB标准化组织( USB Implementers Forum,USB-IF)折腾出来了各式各样、五花八门的接口形态:Type A、Type A SuperSpeed、Type B、Type B SuperSpeed、Mini-A、Mini-B、Micro-A、Micro

阅读全文 » · 标签 PowerUSBtypectype-c3.1pd · 评论 17 · 浏览 64786

逆向映射的演进

作者:linuxer · 发布于 2017-11-17 15:47 · 内存管理

数学大师陈省身有一句话是这样说的:了解历史的变化是了解这门学科的一个步骤。今天,我把这句话应用到一个具体的Linux模块:了解逆向映射的最好的方法是了解它的历史。本文介绍了Linux内核中的逆向映射机制如何从无到有,如何从笨重到轻盈的历史过程,通过这些历史的演进过程,希望能对逆向映射有更加深入的理解。

阅读全文 » · 标签 Mapping逆向映射reverse · 评论 23 · 浏览 26348

Linux kernel内存管理的基本概念

作者:wowo · 发布于 2017-11-09 22:37 · 内存管理

内存(memory)在Linux系统中是一种牵涉面极广的资源,上至应用程序、下至kernel和driver,无不为之魂牵梦绕。加上它天然的稀缺性,导致内存管理(Memory Management,简称MM)是linux kernel中非常重要又非常复杂的一个子系统。 重要性就不多说了,Kernel自有分寸。关于复杂性(鉴于Linux kernel优秀的抽象能力),应该不会被普通人(Linux系统的

阅读全文 » · 标签 LinuxKernel内核内存管理mm概念 · 评论 7 · 浏览 39786

Linux kernel scatterlist API介绍

作者:wowo · 发布于 2017-10-13 22:20 · 内存管理

我们在那些需要和用户空间交互大量数据的子系统(例如MMC [1] 、Video、Audio等)中,经常看到scatterlist的影子。对我们这些“非英语母语”的人来说,初见这个词汇,脑袋瞬间就蒙圈了。scatter可翻译成“散开、分散”,list是“列表”的意思,因而scatterlist可翻译为“散列表”。“散列表”又是什么?太抽象了! 之所以抽象,是因为这个词省略了主语----物理内存(Ph

阅读全文 » · 标签 LinuxKernel内核scatterlistsg_table · 评论 12 · 浏览 41640

X-026-KERNEL-Linux gpio driver的移植之gpio range

作者:wowo · 发布于 2017-09-27 22:27 · X Project

我们在[1][2]中提到过,鉴于gpio的特殊性,pinctrl subsystem特意留了一个后门(gpio range),gpio driver可以通过这个后门直接向pinctrl subsystem申请将某个pin用作gpio功能。本文将根据一个简单的示例,介绍这个后门的使用方法,以加深对相关机制的理解。 注1:本文的测试方法和[3]中的一致,即:通过gpiolib sysfs api控制L

阅读全文 » · 标签 driverGPIOportingpinctrlrange · 评论 1 · 浏览 21447

Device Tree(四):文件结构解析

作者:smcdef · 发布于 2017-09-24 11:08 · 统一设备模型

通过linuxer发表的三篇设备树的文章,我想你应该对设备已经有一个非常充分的认识了。本篇文章即作为一篇Device Tree的总结性文章,同时也作为linuxer文章的 补充。 本篇文章曾发表在Linuxer公众号,链接为 : http://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA

阅读全文 » · 标签 设备树 · 评论 18 · 浏览 65512

X-025-KERNEL-Linux gpio driver的移植之基本功能

作者:wowo · 发布于 2017-09-13 22:18 · X Project

本文将基于本站GPIO subsystem [1] 相关的文章,结合” X Project ”的开发过程,实现一个简单的gpio driver,并利用gpiolib提供的sysfs api进行简单的测试,进而加深对gpio相关概念的理解。 注1:本文后续的描述,kernel基于本站“ X Project ”所使用的kernel版本,硬件基于 ” X Project ”所使用的“Bubbugum-9

阅读全文 » · 标签 sysfsdriverGPIOportinggpiolib · 评论 2 · 浏览 25018

蓝牙协议分析(11)_BLE安全机制之SM

作者:wowo · 发布于 2017-09-07 19:49 · 蓝牙

注1:此SM是Security Manager的缩写,非彼SM,大家不要理解歪了! 书接上文,我们在“ 蓝牙协议分析(10)_BLE安全机制之LE Encryption ”中介绍了BLE安全机制中的终极武器----数据加密。不过使用这把武器有个前提,那就是双方要共同拥有一个加密key(LTK,Long Term Key)。这个key至关重要,怎么生成、怎么由通信的双方共享,关系到加密的成败。因此蓝

阅读全文 » · 标签 蓝牙BluetoothBLESMP配对pairing鉴权authenticationsecurity · 评论 19 · 浏览 95323

Linux reset framework

作者:wowo · 发布于 2017-09-01 10:46 · 电源管理子系统

大家都知道,复杂IC内部有很多具有独立功能的硬件模块,例如CPU cores、GPU cores、USB控制器、MMC控制器、等等,出于功耗、稳定性等方面的考虑,有些IC在内部为这些硬件模块设计了复位信号(reset signals),软件可通过寄存器(一般1个bit控制1个硬件)控制这些硬件模块的复位状态。 Linux kernel为了方便设备驱动的编写,抽象出一个简单的软件框架----rese

阅读全文 » · 标签 LinuxKernel内核frameworkreset · 评论 1 · 浏览 19397