🚗 车规Linux驱动 · 30章
从零到项目实战
v2.0
01
车规芯片与Linux基础
NXP S32G
TI TDA4
交叉编译
内核源码
02
字符设备驱动框架
file_operations
设备号
Hello World
03
驱动模块编译与加载
Kconfig
Makefile
insmod/rmmod
04
设备号管理
alloc_chrdev_region
register_chrdev_region
05
cdev接口详解
cdev_init
cdev_add
cdev_del
06
设备树基础
DTS语法
compatible
reg/中断
07
设备树实战
GPIO LED
of_系列API
08
platform驱动框架
platform_driver
probe/remove
09
GPIO子系统
gpiolib
gpio_request
设备树GPIO
10
GPIO子系统实战
按键驱动
中断触发
上报
11
中断子系统
上半部/下半部
tasklet
workqueue
12
中断子系统实战
request_threaded_irq
打印中断次数
13
定时器与内核时间管理
jiffies
timer_list
mod_timer
14
高精度定时器 (hrtimer)
hrtimer结构体
周期性任务
15
内核内存管理
kmalloc/kfree
vmalloc
GFP标志
16
并发与竞态控制
自旋锁
互斥锁
原子操作
17
等待队列
wait_event
wake_up
阻塞/非阻塞
18
内核同步实战
mutex保护
安全字符设备
19
ioctl接口
unlocked_ioctl
_IO/_IOR/_IOW
20
ioctl实战
设置/获取参数
用户态调用
21
I2C子系统
i2c_adapter
i2c_client
i2c_transfer
22
I2C子系统实战
LM75温度传感器
读取温度
23
SPI子系统
spi_device
spi_message
spi_transfer
24
SPI子系统实战
MCP3008 ADC
读取模拟电压
25
DMA引擎
dmaengine API
dma_slave_config
26
DMA实战
SPI + DMA
提高吞吐量
27
Regmap API
regmap_init
regmap_read/write
28
Regmap实战
重构I2C驱动
减少代码量
29
电源管理
Runtime PM
suspend/resume
QoS
30
项目实战:CAN控制器驱动
MCP2515
设备树
SPI+Regmap+PM