人工精选蔡工驱动开发实战之编写I2C驱动和Debug过程
这门课解决什么问题:从“能跑代码”到“能查故障” 很多做底层开发或正在转行嵌入式的工程师,看内核源码时常常觉得理论都懂,但一到真实板子上就抓瞎:设备树节点怎么对应物理引脚?总线探测不到外设时,到底是时序不对、寄存器没配对,还是硬件本身就没通?这套资料聚焦于在RK3399平台上为一颗通过I2C总线通信
会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
这门课解决什么问题:从“能跑代码”到“能查故障”
很多做底层开发或正在转行嵌入式的工程师,看内核源码时常常觉得理论都懂,但一到真实板子上就抓瞎:设备树节点怎么对应物理引脚?总线探测不到外设时,到底是时序不对、寄存器没配对,还是硬件本身就没通?这套资料聚焦于在RK3399平台上为一颗通过I2C总线通信的IC编写控制程序,核心价值不在于教你背诵API,而是把“代码写完”到“外设真正能用”之间那段最容易卡壳的排错过程完整摊开。它针对的是那种“框架搭好了但一跑就崩,不知道往哪里下断点”的真实工作困境,带着你看懂硬件原理图、设备树描述和内核日志之间的因果关系。
适合什么基础与建议先看的重点
这套资料不适合完全没碰过C语言或Linux命令行的零基础新人。你需要具备基本的字符设备驱动概念,懂一点设备树的语法,最好之前在树莓派或开发板上点过灯。如果你的目标是做安卓底层、车机或物联网终端的板级移植,这门课的切入点非常对口。建议拿到资料后,不要按顺序闷头看,先直奔“硬件主板情况介绍”和“设备树资源配置”这两节,弄清楚RK3399平台的MIPI信号输出与I2C引脚复用是怎么受设备树约束的。把这两块硬件对接的逻辑理顺后,再去看标准总线驱动框架的搭建,你会明白那些probe匹配机制在实际外设上是怎么生效的,而不是停留在干巴巴的协议层面。
学完能独立做什么与资料配合练习方法
跟着这套流程走完,你能在工作中独立承担一颗新外设的接入任务:从阅读硬件原理图确认GPIO连接,到编写设备树节点、实现标准的总线通信框架、申请管理内存,再到通过编译和内核日志定位通信失败的根因。看资料时务必配合实操,不要只用眼睛过一遍代码。建议准备一块RK3399开发板或者类似的ARM平台,找一颗带I2C接口的传感器(比如温湿度芯片或触摸控制器)作为练手靶子。视频里讲到分配内存和填充私有结构体时,暂停下来自己在本地敲一遍,编译成ko模块后用dmesg观察加载状态。遇到通信不通的情况,严格按照资料里展示的Debug思路去排查:先看物理引脚电平,再看设备树地址是否匹配,最后查代码里的寄存器初始化时序。这种跟着真实排错逻辑动手的过程,比单纯刷几遍理论视频有用得多。
课程目录
课程目录13 集
- 1-1 [蔡工驱动开发项目实战篇-说在前面的话] 蔡工驱动开发项目实战篇-说在前面的话 (13:52).mp4
- 2-1 [编写I2C驱动和Debug驱动的过程] 简单介绍项目需求和项目主要工作以及硬件主板的情况 (07:04).mp4
- 2-2 [编写I2C驱动和Debug驱动的过程] 配置调试rk3399平台实现mipi信号的输出 (18:25).mp4
- 2-3 [编写I2C驱动和Debug驱动的过程] 配置IC的dts资源描述和确认相关硬件连接的GPIO (13:35).mp4
- 2-4 [编写I2C驱动和Debug驱动的过程] 编写一个标准的Linux的I2C驱动程序框架 (19:46).mp4
- 2-5 [编写I2C驱动和Debug驱动的过程] 编译驱动并且查看log确认i2c驱动框架代码跑起来 (09:05).mp4
- 2-6 [编写I2C驱动和Debug驱动的过程] 给I2C驱动添加私有结构体和申请分配内存空间 (16:55).mp4
- 2-7 [编写I2C驱动和Debug驱动的过程] 编译更新kernel并且查看添加私有结构体和分配内存是否正常 (15:58).mp4
- 2-8 [编写I2C驱动和Debug驱动的过程] 给Linux驱动添加I2C的读写接口函数 (17:43).mp4
- 2-9 [编写I2C驱动和Debug驱动的过程] 给Linux驱动添加IC的复位接口函数 (12:39).mp4
- 2-10 [编写I2C驱动和Debug驱动的过程] 给Linux驱动添加读取ID的接口函数 (11:52).mp4
- 2-11 [编写I2C驱动和Debug驱动的过程] 验证读写接口-复位接口-读取id接口和debug驱动的过程 (29:59).mp4
- 2-12 [编写I2C驱动和Debug驱动的过程] 添加配置寄存器的代码和其他部分的实现(省略详细的实现过程) (17:05).mp4





