设备树
组成
DTS有一系列node(节点)和property(属性),节点可以包含更多子节点,DTS主要描述设备信息
- CPU的数量及类别
- 内存基地址和size
- 总线和桥
- 外设连接
- 中断
- GPIO
- CLOCK
其有以下几种特性:
- 每个设备树文件都有一个根节点,每个设备都是一个节点。
- 节点间可以嵌套,形成父子关系,这样就可以方便的描述设备间的关系。
- 每个设备的属性都用一组key-value对(键值对)来描述。
- 每个属性的描述用
;
结束
/{ //根节点
node1{ //node1是节点名,是/的子节点
key=value; //node1的属性
...
node2{ //node2是node1的子节点
key=value; //node2的属性
...
}
} //node1的描述到此为止
node3{
key=value;
...
}
}
节点名
每个节点必须有节点名,格式< name>[@< unit-address>]
- < name>:为最长31个字符的ascii字符串,一般用其代表的设备类型命名,
- unit-address: 描述设备的地址,一般情况下,其提供访问设备的基地址,节点的reg property也用此参数,见下文。
引用
和c语言一样支持引用,如果按照树结构书写嵌套比较深,会十分不方便,可以&节点名
来省去路径,相同节点不同属性信息会被合并,相同节点相同的属性会被重写