可以理解为设备树的树干是系统总线,树枝上面是其他的不同的通信协议线。对于不同通信协议的设备挂载在对应的节点即可
在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。 引入了设备树之后,驱动代码只负责处理驱动的逻辑 ,而关于设备的具体信息存放到设备树文件中 , 这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化 ,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。 比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内。 比如exynos4412参考板的板级设备树文件"arch/arm/boot/dts/exynos4412-origen.dts",可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。