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