什么是设备树?优点和优点缺点是什么?

时间:2013-07-03 05:51:10

标签: linux linux-kernel embedded-linux device-tree

Linux中的设备树是什么? 设备树的优点和缺点是什么?

如果有人详细了解设备树,请帮助回答上述问题。

1 个答案:

答案 0 :(得分:15)

设备树是系统中硬件组件的描述,这是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)用于初始化硬件的参数。

一些优点包括:

  1. 无需重新编译任何源代码即可轻松更改系统配置。
  2. 可以轻松添加对新硬件的支持(例如,如果你有一个只更换一些次要组件的电路板的新版本,你可能能够运行与之前的电路板相同的软件负载,只需要很小的改动到新板上的.dts文件...)
  3. 可以使用include语句重用现有的.dts文件,并可以覆盖以前定义的功能。例如,如果您包含定义硬件组件但已将其禁用的dtsi(设备树包含文件),那么您只需在更高级别的dts文件中创建一个除了启用该组件之外什么都不做的新节点。
  4. 他们(可以)提供易于阅读和理解的硬件描述,并可以为硬件组件提供描述性名称。
  5. 一些缺点包括:

    1. 编写新的.dts文件并不容易,因为它需要非常详细的硬件知识。
    2. 即使您知道硬件的所有细节,也可能很难弄清楚用于表达您想要做的事情的确切语法...(即文档缺乏许多方面)
    3. 对于我来说,编写.dts文件几乎是100%的试验和错误,从其他.dts文件中提取示例,看看它做了什么以及它是否接近我想要的...通常我的例子都是与之合作,并没有太多解释正在发生的事情。