设备树是系统中硬件组件的描述,这是linux中用于arm arch的设备树文件列表:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts?id=refs/tags/v3.10
从这里开始:
http://devicetree.org/Device_Tree_Usage
设备树是节点和属性的简单树结构。
属性是键值对,节点可以包含两个属性
和子节点
树的节点描述了linux内核或其他软件系统(如u-boot)用于初始化硬件的参数。
一些优点包括:
- 无需重新编译任何源代码即可轻松更改系统配置。
- 可以轻松添加对新硬件的支持(例如,如果你有一个只更换一些次要组件的电路板的新版本,你可能能够运行与之前的电路板相同的软件负载,只需要很小的改动到新板上的.dts文件...)
- 可以使用include语句重用现有的.dts文件,并可以覆盖以前定义的功能。例如,如果您包含定义硬件组件但已将其禁用的dtsi(设备树包含文件),那么您只需在更高级别的dts文件中创建一个除了启用该组件之外什么都不做的新节点。
- 他们(可以)提供易于阅读和理解的硬件描述,并可以为硬件组件提供描述性名称。
醇>
一些缺点包括:
- 编写新的.dts文件并不容易,因为它需要非常详细的硬件知识。
- 即使您知道硬件的所有细节,也可能很难弄清楚用于表达您想要做的事情的确切语法...(即文档缺乏许多方面)
醇>
对于我来说,编写.dts文件几乎是100%的试验和错误,从其他.dts文件中提取示例,看看它做了什么以及它是否接近我想要的...通常我的例子都是与之合作,并没有太多解释正在发生的事情。