linux学习日记-设备树

设备树是一种描述硬件设备的结构,包括DTS源码文件、DTB二进制文件。设备节点通过属性如compatible,model,status,address-cells,size-cells,reg和ranges来详细描述设备信息,用于驱动程序和硬件的绑定及资源配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 什么是设备树

设备树(Device Trees)我理解的就是用于描述设备的树型结构。

  1. 设备树相关文件

DTS:设备树源码文件

DTB:DTS 编译以后得到的二进制文件

DTC:用于将DTS编译为DTB的工具

  1. DTS语法

  1. 头文件

设备树支持头文件,头文件的扩展名为.dtsi,一般用于描述SOC内部外设信息,如:CPU架构丶主频丶外设寄存器地址范围等。

#include "imx6ull-14x14-evk.dts"
  1. 设备节点

每一个设备都是一个节点,叫做设备节点,每一个节点通过一些属性信息来描述节点信息。

节点命名格式如下:

节点名字@设备地址或寄存器首地址

其他符号:

/ :根节点
: :节点标签:节点名字

例:

label: node-name@unit-address

可以直接通过&label 来访问这个节点,如通过&cpu0 就可以访问“cpu@0”这个节点。

  1. 节点属性

  1. compatible 属性

compatible 属性的值是一个字符串列表,compatible 属性用于将设备和驱动绑定起来。字符串列表用于选择设备所要使用的驱动程序,compatible 属性的值格式如下所示:

"厂商,模块对应的驱动名字"

例:

compatible = "fsl,imx6ul-evk-wm8960","fsl,imx-audio-wm8960";

一般驱动程序文件都会有一个 OF 匹配表,此 OF 匹配表保存着一些 compatible 值,如果设

备节点的 compatible 属性值和 OF 匹配表中的任何一个值相等,那么就表示设备可以使用这个

驱动。

  1. model 属性

model 属性值也是一个字符串,一般 model 属性描述设备模块信息,比如名字什么的

model = "wm8960-audio";
  1. status 属性

status 属性值也是字符串,字符串是设备的状态信息。

描述

okay

表明设备是可操作的。

disabled

表明设备当前是不可操作的,但是在未来可以变为可操作的

fail

表明设备不可操作,设备检测到了一系列的错误,而且设备也不大可能变得可操作。

fail-sss

含义和“fail”相同,后面的 sss 部分是检测到的错误内容。

  1. #address-cells 和#size-cells 属性

这两个属性的值都是无符号 32 位整形,#address-cells 和#size-cells 这两个属性可以用在任

何拥有子节点的设备中,用于描述子节点的地址信息。

#address-cells :地址信息所占用字长

#size-cells :长度信息所占用字长

  1. reg 属性

reg 属性一般用于描述设备地址空间资源信息,一般都是某个外设的寄存器地址范围信息。

reg = <0x02020000 0x4000>;

该寄存器的首地址为0x02020000

  1. ranges 属性

ranges 是一个地址映射/转换表,ranges 属性每个项目由子地址、父地址和地址空间长度

这三部分组成。

  1. name 属性

已经被弃用不推荐使用。

8、device_type 属性

也被抛弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值