Sensor驱动移植与适配实战
📚 30章 · 从入门到实战
友好色系
第1章
Sensor驱动概述
传感器在嵌入式系统中的作用
Linux驱动框架简介
Sensor子系统概览
第2章
开发环境搭建
交叉编译工具链
内核源码树
设备树基础
NFS/TFTP
第3章
硬件接口基础
I2C协议详解
SPI协议详解
GPIO模拟时序
第4章
设备树实战
添加Sensor节点
reg/interrupts/compatible
of_函数读取
第5章
字符设备驱动基础
file_operations
cdev注册/注销
设备号分配
open/read/write/ioctl
第6章
I2C驱动框架
I2C核心层
i2c_client/driver
probe/remove
第7章
SPI驱动框架
SPI核心层
spi_device/driver
spi_message/transfer
模式设置
第8章
IIO子系统入门
IIO设备与通道
iio_dev结构体
sysfs/triggered buffer
第9章
Input子系统入门
input_dev结构体
事件上报
按键/触摸屏模型
第10章
Sensor数据读取实战
I2C读取加速度计
MPU6050
解析原始数据
第11章
中断处理与数据就绪
request_irq
GPIO中断
底半机制(tasklet/workqueue)
第12章
定时器与轮询模式
timer_list
hrtimer
轮询实现
功耗对比
第13章
Regmap API简化I2C/SPI
regmap_config
regmap_read/write
update_bits
缓存同步
第14章
Sysfs与Debugfs接口
创建sysfs属性
读写回调
debugfs调试
动态调参
第15章
用户空间驱动(UIO)
UIO框架原理
mmap实现
中断处理
简单Sensor场景
第16章
DMA传输优化
DMA引擎简介
dma_slave_config
scatter-gather
Sensor驱动应用
第17章
电源管理
Runtime PM
suspend/resume
自动休眠唤醒
功耗优化
第18章
锁与并发控制
自旋锁/互斥锁
读写锁
原子操作
死锁预防
第19章
内核内存管理
kmalloc/kfree
kzalloc/vmalloc
DMA内存
kmemleak
第20章
调试与日志
printk技巧
dynamic debug
ftrace/kgdb
Oops分析
第21章
Sensor HAL层设计
Android HAL架构
HAL模块编写
与内核交互
实现HAL接口
第22章
Sensor校准算法
零偏/灵敏度校准
温度补偿
最小二乘法
参数存储加载
第23章
数据滤波算法
移动平均滤波
中值滤波
卡尔曼滤波入门
低通滤波器
第24章
多Sensor融合
加速度计+陀螺仪
互补滤波
磁力计校准
AHRS/姿态解算
第25章
性能优化
减少中断频率
批量读取
缓存一致性
CPU负载/延迟
第26章
兼容性设计
多厂商兼容
ST/Bosch/InvenSense
设备树匹配
自动探测
第27章
驱动测试框架
selftest框架
单元测试
压力/回归测试
自动化脚本
第28章
安全与稳定性
内核地址保护
输入验证
看门狗集成
故障恢复
第29章
实战项目:温湿度SHT30
从零移植
完整驱动流程
调试与验证
第30章
实战项目:9轴IMU ICM-20948
IIO驱动实现
数据融合
姿态输出