此文章介绍了设备树的结构。
相关参考文章:SOC 教学教案
设备树的主要构件是 node 节点,其中节点组成树状结构并拥有以下特性:
- 每个设备树文件只有一个根节点(root node)。
- 根节点除外,每一个节点都只有一个父节点(parent node)。
- 开发板上的每个设备都应该能够与设备树上的一个节点相对应。
- 每一个节点都可以拥有多个属性值用于描述节点的特性。
- 每一个节点都拥有自己的节点名字(node name)。
- 节点之间可以是平行关系也可以是嵌套父子关系,因此描述设备之间的关系更容易。
设备树的示例结构如下:
/{ // 根节点 node1{ // node1 节点 property1 = value1; // node1 节点属性 property1 property2 = value2; // node1 节点属性 property2 … }; node2{ // node2 节点 property3 = value3; // node2 节点属性 property3 … node3{ // node2 子节点 node3 property4 = value4; // node3 节点属性 property4 … }; }; };
注意第一行中的 “/” 表示根节点。我们可以看到 node1 和 node2 的父节点是根节点,并且 node3 的父节点是 node2。因此 node2 和 node3 直接是父子关系。
因为 node1 和 node2 在根节点下,他们可以表示为两个 SoC 上的控制器。node3 可以表示为挂载在 node2 控制器上的设备,比如 eeprom 和 RTC。