Linux设备树

概念:

设备树(DT)用来描述设备信息的一种树形结构,设备树文件在Linux内核启动的时候传递到内核被内核解析。设备树中每一个设备节点中的信息构成了一个属性链表。

***.dts  //设备树的源码文件

****.dtsi // 设备树源码文件的补充文件(头文件)

DTC   //设备树编译工具  make dtbs

*****.dtb   //设备树的二进制文件

1.设备树的语法实现

1.)设备树从根节点开始描述:/{};

2.)node1和node2是根节点的子节点

3.)设备树文件中的注释和c文件中一样

4.)设备树中每一句话的结束都要以;结尾

5.)设备树中节点的属性是一个个的键值对

2.设备树节点的命名

设备树节点命名规则: <name>[@<unit-address>]

<name>:设备树节点的名字,是一个简单的 ASCII 字符串,长度最多为 31 个字符。通常,节点是根据它所代表的设备类型来命名的。

[@<unit-address>]:如果当前节点描述的设备是一个可寻址设备,可以在@后面写上设备的寻址地址

ex:gpio@50006000  //GPIOE控制器节点命名

3.设备树中属性键值对的格式

属性是简单的键值对,其中值可以为空或包含任意字节流。虽然数据类型未编码到数据结构中,但可以在设备树源文件中表示一些基本数据表示形式。

注意:在设备树中有一些特定意义的键名:

compatible=“厂商名,设备名”//用来描述设备厂商信息

#address-cells =//当前节点的子节点的地址信息用n个u32类型数据描述

#size-cells=//当前节点的子节点的地址大小用n个u32类型数据描述

reg= ,...//描述当前节点对应的设备的地址信息

4.自己编写设备树节点被内核解析

1)

1.vi 内核顶层目录/arch/arm/boot/dts/stm32mp157a-fsmp1a.dts

2.在根节点内部添加如下节点:

3.在内核顶层目录下执行编译设备树命令:make dtbs

4.j将编译生成的dtb文件拷贝到tftpboot目录中

5.打开串口工具,重启内核

6.查看自定义的设备树节点是否被内核解析 在/proc/device-tree/自定义设备树节点名下可以看到以属性名为名的文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值