主题 |
内容 |
Linux 设备驱动模型
|
Linux 设备分类
Sys,总线,设备和驱动
热插拔
udev |
Linux 字符设备驱动结构 |
Linux
字符设备驱动结构
globalmem 虚拟设备实例描述
globalmem 设备驱动 |
加载与卸载设备驱动
打开与释放函数
读写函数
seek 函数
ioctl 函数 |
globalmem
驱动的编译与加载 |
globalmem
驱动在用户空间的验证 |
|
Linux 设备驱动中的并发控制
|
并发控制的概念
何时需要并发控制
自旋锁 |
自旋锁的概念
自旋锁相关数据结构与函数 |
信号量 |
信号量的概念
信号量与同步
信号量与互斥
信号量相关数据结构与函数 |
增加并发控制后的globalmem
驱动 |
在globalmem 驱动中增加并发控制
在用户空间验证globalmem 设备的并发控制 |
|
Linux 设备驱动中的阻塞与非阻塞I/O |
阻塞与非阻塞I/O
poll 操作的概念
何时需要poll 操作
等待队列waitqueues
Linux poll 操作相关数据结构与函数 |
应用程序中的poll 相关数据结构与函数
设备驱动中的poll 相关数据结构与函数 |
支持poll
操作的globalmem 驱动 |
在globalmem 驱动中增加poll 操作
在用户空间验证globalmem 设备的poll |
|
Linux 设备驱动中的异步通知
|
异步通知的概念
何时需要异步通知
Linux 异步通知相关数据结构与函数
支持异步通知的globalmem 驱动
在globalmem 驱动中增加异步通知
在用户空间验证globalmem 的异步通知 |
硬件和综合因素:中断、IO 访问、驱动分层结构 |
以触摸屏驱动为例剖析IO 访问
以触摸屏驱动为例剖析中断的使用
以音频驱动为例剖析剖析DMA 的使用
范举多个驱动子系统剖析Linux 驱动的框架结构 |
Linux 块设备驱动
|
块设备的I/O
操作特点
Linux 块设备驱动结构
块设备驱动注册与注销
块设备的打开与释放
块设备驱动的ioctl 函数
块设备I/O 请求队列 |
请求队列的概念
请求队列的相关数据结构与函数
请求队列的保护机制 |
块设备的读写流程
SD 卡驱动
NOR 和NAND Flash 驱动 |
|
Linux Ethernet 设备驱动
|
Linux 网络设备驱动结构
网络设备驱动注册与注销
网络设备初始化
网络设备打开与释放
数据发送流程
数据接收流程
网络连接状态
参数设置和统计数据
实例:DM9000 网卡设备驱动 |
LCD 驱动
|
framebuffer 驱动架构
LCD 的硬件timing
framebuffer 的用户空间编程 |
Camera 驱动
|
V4L2 驱动架构
Camera 的用户空间编程
Radio 驱动和用户空间编程 |
声卡驱动 |
OSS 架构
ALSA 架构
ASoC 架构 |
I2C 驱动
|
I2C 主机驱动
I2C client 驱动
I2C 驱动电源管理
I2C 板文件信息 |
SPI 驱动
|
SPI 主机驱动
SPI client 驱动
SPI 驱动电源管理
SPI 板文件信息 |
platform 设备驱动
|
SPI 主机驱动
SPI client 驱动
SPI 驱动电源管理
SPI 板文件信息 |
USB 设备驱动
|
USB host 控制器驱动
USB 外设驱动
USB 设备控制器驱动
gadget 驱动
mass storage |