📺 机顶盒嵌入式Linux驱动开发实战
🎯 30章 · 从入门到实战
01
嵌入式Linux驱动开发概述
什么是驱动
环境搭建
Hello World模块
02
字符设备驱动基础
驱动框架
file_operations
设备号
cdev
03
设备驱动模型与设备树
bus/device/driver
设备树语法
节点属性
解析设备树
04
GPIO驱动开发
GPIO子系统
gpiolib API
设备树GPIO
按键中断
05
平台设备驱动
platform总线
driver/device
设备树匹配
编写platform驱动
06
I2C驱动开发
I2C子系统
适配器驱动
设备驱动
SMBus协议
温度传感器
07
SPI驱动开发
SPI架构
控制器驱动
设备驱动
数据传输
SPI Flash
08
UART串口驱动开发
TTY子系统
串口框架
uart_driver
设备树配置
自定义协议
09
中断与底半部机制
中断处理流程
顶/底半部
tasklet
workqueue
线程化中断
10
内核定时器与时间管理
jiffies/HZ
timer_list
高精度定时器
周期性任务
11
内存管理与DMA
kmalloc/vmalloc
DMA原理
DMA API
一致性/流式映射
12
并发与同步机制
自旋锁
互斥锁
信号量
读写锁
RCU
13
阻塞与非阻塞I/O
等待队列
poll机制
select/epoll
异步通知
阻塞读
14
内核同步与锁调试
死锁检测
lockdep
原子操作
内存屏障
percpu变量
15
文件系统与VFS
VFS架构
inode/dentry
超级块
简单文件系统
16
procfs与sysfs文件系统
procfs创建
sysfs属性
kobject/kset
uevent
导出参数
17
ioctl与用户空间通信
ioctl编码
unlocked_ioctl
copy_from/to_user
控制接口
18
DMA引擎驱动开发
DMA engine框架
dma_slave_config
dmaengine API
内存拷贝
19
音频驱动开发 (ALSA)
ALSA架构
PCM设备
DMA缓冲区
编解码器
播放WAV
20
视频驱动开发 (V4L2)
V4L2框架
采集设备
videobuf2
USB摄像头
21
网络设备驱动开发
net_device
NAPI
sk_buff
虚拟网卡
22
USB设备驱动开发
USB架构
urb
设备枚举
类驱动
鼠标驱动
23
PCI/PCIe设备驱动开发
配置空间
BAR空间
DMA/MSI
PCI驱动框架
网卡驱动
24
电源管理驱动开发
Runtime PM
休眠/唤醒
电源管理回调
regulator
LCD背光
25
时钟与定时器驱动
CLK框架
时钟树
clk_prepare_enable
PWM驱动
蜂鸣器
26
输入子系统驱动开发
输入架构
input_dev
事件上报
多点触摸
触摸屏
27
RTC驱动开发
RTC子系统
rtc_device
时间读写
闹钟功能
板载RTC
28
看门狗驱动开发
Watchdog子系统
watchdog_device
超时喂狗
硬件看门狗
异常复位
29
驱动调试与性能优化
printk
ftrace
perf
kgdb
内存泄漏
30
驱动安全与稳定性
KASLR
栈溢出保护
权限检查
热插拔
安全加固