⚙️ 工控机驱动开发
硬件适配实战
📚
30章 · 从入门到实战
1
工控机概述
基础
工控机定义 · 与普通PC区别 · 智能制造/轨道交通/医疗设备
2
工控机硬件架构
架构
CPU选型(x86 vs ARM) · 芯片组 · 内存/存储 · PCIe/PCI/ISA
3
操作系统选型
系统
Windows Embedded · Linux RT · VxWorks · QNX 对比策略
4
驱动开发环境搭建
环境
交叉编译链 · 内核源码 · WDK · 虚拟机/目标机调试
5
Linux内核模块基础
模块
module_init/exit · 许可证 · 模块参数传递
6
字符设备驱动框架
驱动
file_operations · 主次设备号 · cdev · udev/mknod
7
GPIO驱动开发
GPIO
gpiolib · 设备树GPIO · 用户空间控制(sysfs/gpiochip)
8
中断处理机制
中断
request_irq · 顶/底半部(tasklet/workqueue) · 中断共享
9
定时器与时间管理
时间
timer_list · hrtimer · jiffies/HZ · msleep/udelay
10
内存管理与DMA
内存
kmalloc/vmalloc · dma_alloc_coherent · 流式DMA · MMU/IOMMU
11
PCI/PCIe设备驱动
PCIe
配置空间 · BAR映射 · MSI/MSI-X · 热插拔
12
USB设备驱动
USB
描述符解析 · URB · 批量/中断/等时 · Gadget驱动
13
I2C总线驱动
I2C
适配器/设备驱动模型 · SMBus · 设备树节点 · i2c-dev
14
SPI总线驱动
SPI
控制器驱动 · 设备驱动 · 消息队列 · 全双工通信
15
CAN总线驱动
CAN
SocketCAN · 帧结构 · 过滤/波特率 · CANopen集成
16
串口驱动开发
UART
UART硬件 · tty层 · 波特率/数据位 · RTS/CTS流控
17
以太网驱动开发
网络
net_device · NAPI · DMA环形缓冲 · PHY管理
18
帧缓冲(Framebuffer)驱动
显示
Framebuffer注册 · 显存映射 · 像素格式 · 双缓冲
19
音频驱动(ALSA)
音频
ALSA架构(card/device/pcm) · DMA缓冲 · I2S · kcontrol
20
ADC/DAC驱动
数据采集
IIO子系统 · 触发缓冲区 · 采样率/精度控制
21
看门狗(Watchdog)驱动
watchdog
硬件看门狗 · Watchdog子系统 · 超时/喂狗
22
电源管理与休眠唤醒
电源
Suspend-to-RAM/Standby · 设备回调 · 唤醒源(GPIO/RTC)
23
设备树(Device Tree)详解
设备树
DTS语法 · 节点/属性 · 中断/时钟绑定 · overlay
24
驱动调试与性能优化
调试
printk/dyndbg · ftrace · perf · kgdb
25
用户/内核空间通信
IPC
ioctl · sysfs · netlink · mmap共享内存
26
实时性优化
实时
RT内核 · 中断线程化 · 优先级继承 · mlockall
27
Windows驱动开发(WDF)
WDF
KMDF/UMDF · PNP/电源 · IRP · WDF回调
28
驱动安全与签名
安全
模块签名 · WHQL · KASLR/CFG · 安全编码
29
硬件适配与BSP
BSP
BSP结构 · U-Boot/GRUB · 内核裁剪 · 根文件系统
30
综合实战:数据采集卡驱动
实战
PCIe+ADC+DMA · 硬件手册分析 → 驱动验证全流程