🌱 Linux驱动开发
从入门到项目交付
📘 30章 · 完整驱动知识体系
🧩 字符设备
⚡ 中断/定时器
📡 网络/块设备
🛠️ 项目实战
01
Linux驱动开发概述
驱动分类
内核模块
环境搭建
→
02
内核模块编程入门
加载/卸载
printk
模块参数
→
03
字符设备驱动基础
设备号
file_operations
cdev
→
04
字符设备驱动进阶
read/write
copy_to/from_user
ioctl
→
05
并发与竞态控制
原子操作
自旋锁
互斥体
RCU
→
06
中断处理
request_irq
tasklet
工作队列
线程化
→
07
内核定时器与延迟
jiffies
timer_list
hrtimer
延迟
→
08
内存管理
页分配
slab
vmalloc
DMA
→
09
同步通信机制
等待队列
completion
kthread
→
10
设备模型 (Device Model)
kobject
sysfs
platform总线
→
11
platform驱动框架
platform_device
设备树匹配
资源获取
→
12
设备树 (Device Tree)
DTS语法
属性
解析
→
13
I2C子系统
核心层
i2c_driver
SMBus
→
14
SPI子系统
核心层
spi_driver
异步传输
→
15
GPIO子系统
gpio_request
gpiod_*
GPIO中断
→
16
pinctrl子系统
设备树配置
devm_pinctrl_get
→
17
Regmap子系统
regmap_init
regmap_read/write
缓存
→
18
Input子系统
input_event
设备注册
上报事件
→
19
FrameBuffer驱动
fb_info
fb_ops
mmap
LCD
→
20
DRM/KMS显示驱动
CRTC
Encoder
KMS
drm_framebuffer
→
21
ALSA音频驱动
PCM
DMA缓冲区
DAPM
→
22
USB设备驱动
URB
usb_driver
批量/中断传输
→
23
PCI设备驱动
pci_driver
BAR空间
DMA
→
24
MMC/SD卡驱动
MMC子系统
主机驱动
SDIO
→
25
网络设备驱动
net_device
NAPI
sk_buff
PHY
→
26
块设备驱动
gendisk
request_queue
bio
→
27
内核调试技术
printk
Oops
kgdb
动态调试
→
28
性能优化与追踪
perf
ftrace
lockdep
→
29
驱动测试与验证
kunit
压力测试
覆盖率
→
30
项目实战 · 交付
需求分析
架构设计
设备树
文档
→