01
I2C总线协议基础
I2C物理层特性 · 协议层(起始/停止/数据/应答) · 时序分析
物理层协议时序
02
SPI总线协议基础
SPI物理层 · 四种模式(CPOL/CPHA) · 时序对比I2C
模式时序对比
03
Linux I2C子系统架构
核心层 · 总线驱动 · 设备驱动三层结构分析
架构I2C核心
04
Linux SPI子系统架构
SPI核心层 · 控制器驱动 · 设备驱动三层结构
架构SPI核心
05
I2C控制器驱动移植
设备树配置 · 时钟使能 · 初始化代码分析
设备树时钟移植
06
SPI控制器驱动移植
设备树配置 · SPI时钟使能 · 控制器初始化
设备树时钟移植
07
I2C设备驱动编写
i2c_driver · i2c_client · probe/remove回调
驱动probe
08
SPI设备驱动编写
spi_driver · spi_device · probe/remove实现
驱动probe
09
I2C数据传输API
i2c_transfer · master_send/recv · SMBus协议
APISMBus
10
SPI数据传输API
spi_write/read · write_then_read · message/transfer
APIspi_message
11
I2C从设备地址配置
7位/10位地址 · 动态分配 · 地址冲突解决
地址冲突
12
SPI片选信号管理
硬件/软件片选 · GPIO模拟 · 多设备策略
片选GPIO
13
I2C时钟拉伸与仲裁
时钟同步 · 多主机仲裁 · 从设备时钟拉伸
时钟仲裁
14
SPI高速模式配置
时钟分频 · DMA传输 · Dual/Quad SPI模式
高速DMAQSPI
15
I2C设备树绑定
reg · compatible · clock-frequency · 中断
设备树绑定
16
SPI设备树绑定
reg(片选号) · compatible · max-frequency · 模式
设备树片选
17
I2C驱动调试技巧
i2cdetect/get/set · 逻辑分析仪 · 内核打印
调试工具
18
SPI驱动调试技巧
spidev用户态 · spi-pipe · 示波器时序
调试spidev
19
I2C中断处理
中断触发 · ISR编写 · tasklet/workqueue底半部
中断底半部
20
SPI中断处理
传输完成中断 · 错误中断 · 环形缓冲区
中断环形缓冲
21
I2C多主机环境
多主机通信 · 总线竞争 · 从设备地址冲突
多主机仲裁
22
SPI多从设备环境
菊花链 · 独立片选 · 总线长度与信号完整性
拓扑信号
23
I2C电源管理
运行时RPM · 系统休眠唤醒 · 挂起/恢复回调
电源RPM
24
SPI电源管理
时钟门控 · DMA电源域 · 低功耗模式
电源门控
25
I2C EEPROM驱动实例
AT24Cxx驱动 · 页写入/随机读取 · 设备树实战
EEPROMAT24
26
SPI Flash驱动实例
W25Qxx驱动 · SFDP解析 · 4字节地址模式
FlashW25Q
27
I2C传感器驱动实例
BMP280温湿度 · 数据转换校准 · IIO框架
传感器IIO
28
SPI LCD驱动实例
ST7789显示 · Framebuffer接口 · 刷新率优化
LCDFramebuffer
29
I2C/SPI驱动性能优化
中断合并 · DMA批量传输 · 缓存一致性
性能DMA
30
I2C/SPI驱动兼容性设计
多平台适配 · 内核版本兼容 · 设备树overlay
兼容overlay