为什么设备模型是驱动的必经之路?
很多初学者卡在驱动开发,往往不是代码写不对,而是根本理解不了 Linux 内核是如何组织硬件的。在传统的裸机开发中,我们习惯直接操作寄存器地址;但在 Linux 环境下,内核通过一套统一的「设备模型」将分散的硬件资源抽象为总线上挂接的节点。这套体系的核心逻辑在于「总线、设备、驱动」三者的解耦与绑定。本课程正是为了解决这一认知缺口:如果你还在用裸片的思维去写字符设备驱动,那么在面对复杂硬件时必然举步维艰。这门课专门补齐这一环,让你从内核视角重新审视硬件管理,理解为什么内核需要这样的分层架构,以及它如何自动完成硬件与驱动的配对。
适合具备一定 C 语言基础、已了解字符设备框架但渴望深入内核机制的学习者。特别是那些在面试中被问到「驱动加载过程」或「platform 设备树」时无法清晰表述的转岗人员。课程不重复基础的 API 调用,而是深挖模型背后的设计哲学。
学习路径与核心能力
建议学习顺序如下:首先啃下前两节,彻底搞懂总线注册与设备、驱动的注册流程,这是理解后续所有代码的基石。接着重点攻克「平台总线」相关章节,因为 platform 驱动模型是 Linux 嵌入式开发中最主流、最常用的架构,掌握了它,你就掌握了八成的驱动编写套路。随后通过「读取设备资源」一节,学会如何从内核空间安全地获取中断、内存等关键资源,这是驱动稳定运行的前提。最后,必须完整跟一遍 LED 设备模型实例,这是将理论转化为实战的关键一环。
学完本课程后,你将能够独立回答以下问题:Linux 设备模型的核心数据结构是什么?总线、设备和驱动三者是如何通过 kobject 关联的?在 platform 驱动中,probe 函数是何时被调用的?以及,如何正确地静态或动态注册一个 platform 驱动并获取其硬件资源?你将不再只是背诵代码模板,而是能根据硬件手册,自主设计符合内核规范的驱动框架。
关于资料配合:课程配套的练习案例应结合源码进行对照阅读。不要只看视频演示,务必亲手在开发板上复现 LED 点亮的过程,并尝试修改代码中的中断号或寄存器地址,观察系统报错信息,从而验证你对资源获取机制的理解。只有在动手调试中碰壁,才能真正内化这套模型的使用方法。
课程目录
1 1.设备模型概念 (16:17) 2 2.总线注册 (22:39) 3 3.设备与驱动注册 (18:43) 4 4.设备模型的驱动入口 (32:58) 5 5.平台总线,设备和驱动 (13:31) 6 6.平台设备与平台驱动代码 (27:00) 7 7.读取设备资源 (30:22) 8 8.静态平台驱动注册 (15:47) 9 9.LED设备模型实例 (36:44)





