概念

设备树是一种硬件描述机制,它替代了内核中静态定义的 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:输入的文件