Device Tree Usage - 摩斯电码 - 博客园
设备树dts/dtsi格式_孤独行者的专栏-CSDN博客_dts格式
[DTS]设备树语法_嵌入式软件开发交流-CSDN博客_dts设备树语法
目录
2.属性值 [properties definitions]
“&” 引用节点(比如这个设备树include了其他的设备树文件,其他设备树文件里有个ABC节点,&ABC就可以引用这个节点并添加新的属性了)
仿照别人的自己写写改改加深印象
DTS文件和DTSI文件
dts文件是用户编写的,一个*.dts文件对应一个ARM的machine。一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。
一个dts文件对应一个ARM的machine,但一个soc可能有多个不同电路板,这些电路板有很多类似的部分,导致dts文件会有很多共同的部分,导致有不少冗余代码,设备树将这些共同部分保存在*.dtsi文件中,供不同的dts使用。dtsi文件的使用方法,类似于C语言的头文件,在dts文件中使用include包含 *.dtsi文件即可。如:
#include "jz2440.dtsi"
使用dts文件时,就会把包含的dtsi文件内容进行展开。
dts和dtsi的语法规则一样。
一.设备树的布局与节点的基本语法
DTS文件布局(layout):
/dts-v1/;
[memory reservations] //格式:/memreserve/<address><length>;
/{
[label:] node-name[@unit-address] { //节点名称
[properties definitions] //就是属性定义,对当前节点描述,将硬件信息提供给内核处理
[child nodes] //子节点
};
};
上面代表代表一个节点,一个节点由节点名称、节点属性以及子节点三部分组成,以大括号{}为一段,[]表示可写可不写。子节点语法跟父节点一样,子节点里可以有自己的子节点,层层嵌套。
设备树的跟是从"/"开始,/{};代表根节点root,一个设备树仅有一个根节点,根节点下可有多个节点。如:
/{ //根节点
node1{ //node1是节点名,是/的子节点
key=value; //node1的属性
...
node2{