1、什么是设备树?
设备树的文件(DTS)用来以树状接口描述设备信息。例如: cpu数量 内存 IIC接口 SPI上有哪些设备等
2、DTS、DTB、DTC是什么?
DTS 是设备树源码 .dts .dtsi相当于是dts的头文件也是设备树源码
DTB 是将设备树编译后得到的二进制文件
DTC 编译设备树的工具 在 源码/scripts/dts目录下 Makefile
DTC工具依赖于 dtc.c。。。等源码,最后编译链接出来dtc 主机文件
3、如何编译设备树?
make all 编译所有源码
make dtbs 仅仅编译设备树
4、编译的时候如何匹配到只编译我们需要的dts
通过我们make menuconfig | make xxx_defconfig 配置内核后生成的.config文件
xxx_defconfig : 是arch/arm/configs 中的配置文件
.config中只有CONFIG_ARCH_ZYNQMP被选中
再看arch/arm64/boot/dts中的makefile 会遍历所有dts目录 下的所有文件
再看xilinx目录下的makefile 编译的时候都会有对应平台的宏指定是否编译,所以设备树编译那个在配置内核中就指定了平台
在make menuconfig->Platform selection->平台选项中选择对应的平台 同时指定编译的设备树目录
如下就是通过DTC编译DTS生成的DTB: