整个设备树牵扯面比较广,它基本上就是画一棵电路板上CPU、总线、设备构成的树。Bootloader将这棵树传递给Linux内核,然后内核可以识别这棵树。
dts是一种ASCII文本格式的设备树描述文件,DTC(Device Tree Compiler)是将dts文件编译为.dtb文件的工具,值得说明的是,Bootloader是将编译后的.dtb文件传递给Linux内核。
DTC工具是开源的,它的源码位于Linux内核的scripts/dtc目录下,在Linux内核使能了设备树的情况下,在编译内核的时候、DTC工具会被编译出来,相应的编译规则:
scripts/dtc/Makefile文件中的编译目标:
hostprogs-y := dtc
此外,DTC工具还支持在Ubuntu系统中单独安装:
sudo apt-get install device-tree-compiler
在Linux下,可以单独编译设备树文件,当在Linux内核下运行:
make dtbs
DTC除了可以编译.dts文件之外,还可以反汇编.dtb文件为.dts文件,指令为:
./scripts/dtc/dtc -I dtb -O dts -o xxx.dts arch/arm/boot/dts/xxx.dtb
(一).dtb文件
它是二进制格式的设备树描述,可由Linux内核解析,Bootloader也可以识别.dtb文件。
通常在为板子的NAND、SD卡制作启动映像的时候