🌱

驱动架构·进阶

30章 完整版
⚡ 总线 · 设备树 · 中断 · DMA · 性能
01
Linux设备驱动模型核心概念,总线、设备、驱动三者的关系,以及platform总线的工作原理。
02
深入理解file_operations结构体,实现阻塞与非阻塞IO,以及poll机制的应用。
03
设备树的语法、编译与解析,如何在驱动中获取设备树节点信息。
04
Linux中断处理机制,顶半部与底半部(tasklet、workqueue、 threaded IRQ)的设计与选择。
05
自旋锁、互斥锁、读写锁、RCU机制的使用场景与性能对比。
06
kmalloc、vmalloc、dma_alloc_coherent的区别,以及内存泄漏的排查方法。
07
jiffies、HZ、高精度定时器(hrtimer)的使用,以及内核延时函数的区别。
08
完成量(completion)、信号量(semaphore)与等待队列(wait_queue)的深度剖析。
09
DMA控制器驱动框架,scatter-gather传输,以及DMA映射与一致性。
10
Regmap框架的设计思想,如何简化I2C/SPI设备的寄存器读写操作。
11
工业输入输出框架,ADC/DAC驱动的实现,以及triggered buffer模式。
12
输入设备驱动框架,按键、触摸屏驱动的实现,以及事件上报机制。
13
实时时钟驱动框架,与用户空间hwclock的交互,以及电源管理回调。
14
PWM控制器驱动框架,背光调节与电机控制的应用实例。
15
gpiolib框架,GPIO作为中断源、输出控制、输入检测的完整实现。
16
SPI控制器驱动与设备驱动,SPI协议的自定义与性能优化。
17
I2C总线驱动与设备驱动,SMBus协议支持,以及多主设备冲突处理。
18
串口驱动框架,线路规程(line discipline)的实现,以及DMA传输优化。
19
USB核心框架,urb传输机制,以及批量传输与中断传输的实现。
20
PCIe配置空间访问,BAR空间映射,MSI/MSI-X中断的使用。
21
MMC子系统框架,SD卡协议栈,以及eMMC驱动的实现要点。
22
MTD子系统,NAND控制器驱动,以及坏块管理与ECC校验。
23
显示子系统框架,Framebuffer的实现,以及双缓冲技术。
24
ALSA架构,Codec驱动与Platform驱动的配合,以及DMA音频传输。
25
Video for Linux 2框架,摄像头驱动的实现,以及buffer管理机制。
26
Runtime PM框架,系统休眠与唤醒流程,以及设备电源域的管理。
27
CCF(Common Clock Framework),时钟树的构建与动态调频。
28
引脚复用与配置,pinctrl与GPIO的交互。
29
printk使用技巧,ftrace追踪,kprobe动态插桩,以及kgdb调试。
30
中断负载均衡,DMA卸载,cache一致性维护,以及profiling工具的使用。