先弄清这门课值不值得学
做嵌入式底层或者驱动开发,绕不开 Linux 设备树。早些年内核源码里塞满板级硬件描述,后来统一改成 dts 文件,让代码和硬件剥离开。问题在于,很多人写驱动时只会照抄现成文件,改个寄存器或者加个外设就抓瞎。这门蔡工的资料要解决的就是这个场景:不跟你讲玄乎的架构哲学,而是把设备树的来龙去脉、基本构成、语法规则、实例分析和编译流程串起来讲透。如果你常被内核启动时外设不识别、节点没加载的问题卡住,或者接手老平台移植时看不懂别人写的 dts,那这份材料对你就是对症的。它不教怎么写复杂的总线驱动框架,聚焦在“描述硬件”这一层,定位很明确。
适合什么基础与怎么用资料
这不适合完全没碰过 Linux 的新手。你得有基本的 C 语言阅读能力,知道内核里结构体、宏定义大概长什么样,最好自己用命令行编译过内核或者模块。资料的组织是按顺序递进的,建议先看第一块讲来龙去脉的部分,弄清 dts 怎么从历史包袱演变成现在的形态,这能帮你建立基本概念。接着看基本构成和语法介绍,这两节是核心,节点、属性、phandle 这些概念会铺开讲。不要跳过实例分析那节,光看语法规则容易似懂非懂,结合真实板子上的片段拆解才扎实。最后讲编译使用的那节,重点看 dts 怎么变成 dtb 传给内核,以及怎么反查编译后的结果。资料配合练习时,别光盯着视频,自己手头备一份内核源码树,对着里面的 dtsi 文件逐行看,拿实例分析的思路去拆解你实际硬件对应的描述,遇到不懂的属性就去内核文档里翻对应说明,这样学完才不容易忘。
学完能独立做什么
把这套东西过完,你应该能独立完成一块新板子的基础设备树编写。具体说,拿到一颗主控芯片和一颗外设芯片,你能看懂厂商给的参考 dts 文件,知道哪些节点对应哪个控制器,哪些属性是必须填的,哪些是可选的。遇到外设工作不正常,你会先想到去查节点有没有正确加载,而不是瞎猜驱动逻辑。再进一步,改个引脚复用配置、加个简单设备节点、调一串口或者 I2C 外设,这些日常移植活儿你能自己扛下来,不用再依赖别人现成的文件改改参数。这门课不保证让你变成驱动架构师,但能让你在硬件描述这一层不再抓瞎,干活时心里有底。
课程目录
课程目录6 集
- 1-1 [Linux设备树dts的来龙去脉] Linux设备树dts的来龙去脉 (15:52).mp4
- 2-1 [设备树dts的基本构成] Linux设备树dts的基本构成 (18:35).mp4
- 3-1 [设备树dts的语法介绍] 设备树dts的语法介绍-上节 (20:42).mp4
- 3-2 [设备树dts的语法介绍] 设备树dts的语法介绍-下节 (22:41).mp4
- 4-1 [设备树dts的实例分析] 设备树dts的实例分析 (13:27).mp4
- 5-1 [设备树dts的编译使用] 设备树dts的编译使用 (15:07).mp4






