概念
设备树是一种硬件描述机制,它替代了内核中静态定义的 platform_device(以及其他总线设备描述)。平台总线(platform)负责管理 SoC 内部没有真实物理总线的设备。
传统 platform 驱动通过名称匹配设备,使用设备树后,主要依靠 compatible 属性匹配。匹配成功后调用 probe 函数,驱动在 probe 中通过 of.h API 直接读取设备树节点的硬件信息(属性可以有多个值)。设备树与 /dev 下的设备文件无直接关系,后者是驱动为提供用户空间接口而主动创建的。
编译工具路径
/root/rk-toots/kernel/scripts/dtc/dtc
可以修改环境变量
/etc/profile添加
export PATH=$PATH:/root/rk-toots/kernel/scripts/dtc/dtc
source /etc/profile
编译设备树1
dtc -I dts -O dtb -o xxx.dtb xxx.dts
- dtc:工具
- -I dts:输入的文件格式为dts
- -O dtb:输出的文件格式为dtb
- -o xxx.dtb:输出的文件名称
- xxx.dts:输入的文件
编译设备树2
进入到kernel目录执行
make <dts文件名>.dtb
反编译
dtc -I dtb -O dts -o xxx.dts xxx.dtb
- dtc:工具
- -I dtb:输入的文件格式为dtb
- -O dts:输出的文件格式为dts
- -o xxx.dts:输出的文件名称
- xxx.dtb:输入的文件