⚙️ 工业控制驱动开发 调试技巧

📘 30章 · 从入门到实战
01
什么是工业控制驱动 · 驱动在工控系统中的角色 · Modbus, Profibus, EtherCAT 概览
02
Linux内核驱动环境配置 · 交叉编译工具链 · 目标板与主机通信
03
字符设备驱动框架 · file_operations · 设备号注册与注销
04
GPIO子系统 · 设备树GPIO配置 · 基于GPIO的LED驱动实战
05
中断上半部与下半部 · tasklet与工作队列 · 中断共享与嵌套
06
内核定时器API · 高精度定时器(hrtimer) · jiffies与时间度量
07
kmalloc, vmalloc · DMA缓冲区申请与映射 · 一致性DMA与流式DMA
08
自旋锁 · 互斥锁 · 读写锁 · 原子操作 · RCU
09
platform驱动模型 · 设备树匹配 · platform_driver与platform_device
10
I2C子系统架构 · I2C设备驱动编写 · 从设备通信调试
11
SPI子系统 · SPI设备驱动编写 · 时序调试技巧
12
串口驱动框架 · tty驱动与线路规程 · 波特率与流控配置
13
CAN协议基础 · Linux CAN子系统(SocketCAN) · CAN设备驱动实现
14
EtherCAT协议栈 · 从站控制器(ESC)驱动 · PDO映射
15
Modbus RTU/TCP协议栈移植 · 从站与主站驱动 · 异常处理
16
Profibus协议栈集成 · DP从站状态机 · GSD文件解析
17
实时以太网原理 · 时间敏感网络(TSN)基础 · Linux网络设备驱动框架
18
工业数据采集驱动 · IIO子系统 · 模拟量输入输出驱动实现
19
PWM子系统 · 工业电机调速应用 · 占空比与频率控制
20
增量式与绝对式编码器 · 正交解码(QEI)驱动 · 位置与速度计算
21
硬件看门狗与软件看门狗 · Linux Watchdog子系统 · 工业可靠性保障
22
内核抢占模型 · PREEMPT_RT配置 · 中断延迟优化
23
printk调试 · 动态调试(dynamic debug) · ftrace跟踪
24
Oops信息解读 · kdump与crash工具 · 内核panic处理
25
硬件调试器使用 · GDB调试内核模块 · 断点与单步执行
26
时序分析 · 协议解码 · 信号完整性检查
27
perf工具使用 · 驱动CPU占用率分析 · 内存泄漏检测
28
单元测试框架(kunit) · 压力测试 · 边界条件测试
29
电磁干扰(EMI)处理 · 接地问题 · 通信超时故障
30
代码规范 · 版本控制(Git) · 文档编写 · 持续集成(CI)流程