[DTS]设备树语法
原创: 杨永达 嵌入式软件开发交流 3月15日
前言
之前分享了一些设备树的基本概念,今天来聊聊设备树的语法。以前阅读设备树文件时发现很多平台的节点的属性名称都不一样,然后就很纠结,就到官方去找,发现都没有该属性或节点,就很郁闷。这其实犯了一个错误,那就是设备树并不是一种编程语言,没有什么绝对的关键字。我们应该把设备树理解成配置文件,如果知道xml文件,就可以把设备树类比成xml文件。
好,废话不多说了。。。
语法规则
一、设备树语法
(1)设备树节点语法
[label:] node-name[@unit-address] {
[properties definitions];
[child nodes];
};
解释:
label: 可选项,节点别名
node-name: 节点名
unit-address: 设备地址
properties definitions:属性定义
child nodes:子节点
(2) 属性定义语法
[label:] property-name = value;
[label:] property-name;
属性分为有属性值和无属性值
属性值有三种取值:
-
arrays of cells(1个或多个32位数据, 64位数据使用2个32位数据表示),用尖括号表示(< >)
-
string(字符串), 用双引号表示(" ")
-
bytestring(1个或多个字节),用方括号表示([ ])
举例