全部博文(396)
分类: 嵌入式
2018-01-31 11:57:50
linux设备树编译器DTC
参考文件: \kernel\Documentation\devicetree\booting-without-of.txt
1. 设备树的文件组织结构
DT的文件组织结构如图
*.dts作为目标设备汇总的设备组织结构,它会include其他一些有共同特性的文件(后缀为*.dtsi)来。
2. 设备树编译
设备树的编译器是dtc,源代码目录kernel\scripts\dtc,只要编 译过内核,就会生成dtc,在out目录下的\obj\KERNEL_OBJ\scripts\dtc下,dtc把dts文件编译生成dtb文件,在ou 目录下的\obj\KERNEL_OBJ\arch\arm\boot\dts,比如A_dtb.dtb
dtc编译器可以把dts文件编译成为dtb,也可把dtb编译成为dts文件,编译命令格式如下:
dtc [-I input-format] [-O output-format][-o output-filename] [-V output_version] input_filename
参数说明
input-format:
- “dtb”: “blob” format
- “dts”: “source” format.
- “fs” format.
output-format:
- “dtb”: “blob” format
- “dts”: “source” format
- “asm”: assembly language file
output_version:
定义”blob”的版本,在dtb文件的字段中有表示,支持1 2 3和16,默认是3,在16版本上有许多特性改变
(1) Dts编译生成dtb
./dtc -I dts -O dtb -o B_dtb.dtb A_dts.dts
把A_dts.dts编译生成B_dtb.dtb
(2) Dtb编译生成dts
./dtc -I dtb -O dts -o A_dts.dts A_dtb.dtb
把A_dtb.dtb反编译生成为A_dts.dts