设备树学习


活动地址:CSDN21天学习挑战赛

设备树是什么

 

        设备树是用于描述硬件的数据结构;在系统启动时将这些描述硬件的数据传递给操作系统解析

设备树的存在形式

DTS device tree source 设备树源文件

DTB device tree binary  设备树源文件编译出来的二进制文件

DTC device tree  compiler 设备树编译器,将设备树源文件编译为二进制文件

设备树源文件

device tree的基本单元是node。这些node被组织成树状结构,除了root node,每个node都只有一个parent。一个device tree文件中只能有一个root node。每个node中包含了若干的property/value来描述该node的一些特性。每个node用节点名字(node name)标识,节点名字的格式是node-name@unit-address。如果该node没有reg属性(后面会描述这个property),那么该节点名字中必须不能包括@和unit-address。unit-address的具体格式是和设备挂在那个bus上相关。例如对于cpu,其unit-address就是从0开始编址,以此加一。而具体的设备,例如以太网控制器,其unit-address就是寄存器地址。root node的node name是确定的,必须是“/”。 也就是说设备树源文件的结构为

    1个root节点”/”;
    root节点下面含一系列子节点,“node1” and “node2”
    节点node1和下又含有一系列子节点,“child-node1” and “child-node2”
    各个节点都有一系列属性
        这些属性可能为空,如an-empty-property
        可能为字符串,如a-string-property
        可能为字符串树组,如a-string-list-property
        可能为Cells(由u32整数组成),如second-child-property

设备树语法

[label:] node-name[@unit-address] {
   [properties definitions]
   [child nodes]
} 

“[]”表示option,因此可以定义一个只有node name的空节点,label方便在dts文件中引用
基本数据类型:

    text string(以null结束),以双引号括起来,如:
        string-property = “a string”
    cells 是32位无符号整形数,以尖括号括起来,如
        cell-property = <0xbeef 123 0xabcd1234>
    binary data 以方括号括起来,如:
        binary-property = [0x01 0x23 0x45 0x67];
    不同类型数据可以在同一个属性中存在,以逗号分格,如:
        mixed-property = “a string”, [0x01 0x23 0x45 0x67], <0x12345678>;
    多个字符串组成的列表也使用逗号分格,如:
        string-list = “red fish”,“blue fish”;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值