1、设备树学习的关键问题

1-1、设备树是什么

(1)device tree,设备树,是一种linux内核中采用的参数表示和传递的一种技术。
(2)dts,device tree source ,设备树源文件 一般的给改设备树就在这里进行。
(3)dtc,device tree compiler,设备树编译/调试工具。
(4)dtb,device tree blob,二进制设备树镜像。

1-2、为什么需要设备树

(1)典型需求就是内核设备驱动,但不止可以用在驱动上,也可以用在uboot向内核的传参。
(2)驱动源码包括2大部分:策略(操作函数)和数据(硬件信息)。
(3)早期在策略和数据都在kernel中。

1-3、设备树如何工作的

(1)驱动开发者编写或者改写dts ,适配硬件和自己的需求。
(2)make uImage时,kernel会先编译出dtc,然后用dtc加工成dtb。
(3)uboot启动kernel时,将uImage和dtb都准备好并告诉uImage在哪里找到dtb。
(4)kernel启动初期会调用内部的函数去解析dtb,得到硬件信息,并组装成数据结构,配合策略函数工作。