驱动程序阅读流程
1. 找入口与匹配机制
1.1 找 module_init 或底层宏
1.2 找 of_match_table
2. 精读 probe 函数
2.1 看资源获取
寻找时钟、引脚、电源、中断线)。这部分直接对应设备树里的硬件描述。
2.2 看框架注册
寻找带有 register 字眼的函数。比如 v4l2_async_register_subdev、input_register_device、misc_register 等。
目的:弄清楚这个驱动把自己给了内核的哪个子系统。这决定了应用层以后会在 /dev/ 下看到什么节点。
3. 翻阅核心 Ops 结构体
当 probe 成功后,硬件就静静躺在那里等应用层来调用了。驱动能干什么事,全写在它的“菜单”里。
3.1 寻找类似 xxx_ops 的结构体
3.2 看里面挂载了哪些回调函数
- Open/Release: 打开或关闭设备时做什么初始化?
- Read/Write: 数据是怎么从内核态拷到用户态的?
- Ioctl: 支持哪些私有的配置命令?(比如设置分辨率、设置波特率)。
- 目的: 这是驱动工程师日常修改业务逻辑最频繁的地方。应用层调用的 open()、ioctl(),最终都会通过内核 VFS 层精准落到这里的函数上。
4. 中断处理 ISR
如果这个硬件会主动给 CPU 发信号,就必须看中断。

浙公网安备 33010602011771号