当前位置:首页 > > 充电吧
[导读]一:什么是设备树设备树(Device Tree)是一种描述硬件的数据结构,是结构化的语言,有点像C语言的结构体。在操作系统引导启动阶段进行设备初始化的时候,设备树中描述硬件的信息被检测到并传递给操作系

一:什么是设备树

设备树(Device Tree)是一种描述硬件的数据结构,是结构化的语言,有点像C语言的结构体。在操作系统引导启动阶段进行设备初始化的时候,设备树中描述硬件的信息被检测到并传递给操作系统。

二:设备树起源与意义

设备树在2011年被引入到ARM Linux内核中,也就是在Linux内核3.x以后引入的,在内核3.x之前都是没有设备树的概念的,都是使用平台文件来描述硬件的。它的引入主要是想解决ARM Linux内核代码冗余的问题。

三:内核中与设备树相关的文件

dts文件,Device Tree Source,是以ASCII文本形式来描述设备树内容。

dtb文件是二进制格式,是编译后最终生成的二进制文件。

dtsi文件,类似于C语言头文件。

四:基本语法

1. 节点

节点名

语法: [@]

名字的命名是由字符、数字、“-”等组成,最长是31个字符,一般是设备类型命名,unit-address一般的是设备地址。

比如:

对于节点来说,有节点引用、合并节点内容、替换节点内容。

节点引用另一个节点:

demo节点的属性item引用了节点的node的属性值。

节点内容引用

有时候在一个节点中会引用到其他节点的属性值,会使用到节点内容引用。

节点内容合并

有时候一个硬件设备的部分信息内容可能会有变化,这里可能会出现节点内容合并的概念。

移植者在根节点中添加一个node节点,节点中的内容与上面的节点内容是不同,此时需要合并,合并完成结果如下:

节点内容替换

在根节点中有相同名字的子节点,此时会出现替换内容的概念。

内容替换完成后的结果如下:

节点查找

通过节点的compatible属性值查找指定节点

通过节点名查找指定节点

通过节点路径查找指定节点

2. 节点属性分析

设备树中常见的属性有compatible、地址address、中断interrupt、MAC地址、GPIO口、clock、power、regulator、等等。

compatible属性

该属性是用于匹配设备节点和设备驱动的。

在设备树中compatible="davicom,dm9000";需要与驱动代码中的.compatible匹配。

address属性

#address-cells:描述子节点reg属性值的地址表中首地址cell数量

#size-cells:描述子节点reg属性值的地址表中地址长度cell数量

reg:描述地址表,I/O地址。

父节点#address-cells值为1,#size-cells值为1,则子节点中reg的值就是一个首地址加一个地址长度为一个单元。

ranges:有些设备是有片选的,所以需要描述片选和片选的偏移量,在地址说明的时候还要说明地址映射范围。

举例说明,

片选0,偏移0,被映射到CPU地址空间的0x10100000~0x10110000中,地址长度为0x10000。

interrupt属性

interrupt-parent 标识此设备节点属于哪一个中断控制器,如果没有设置这个属性,会自动依附父节点的;

interrupts 一个中断标识符列表,表示每一个中断输出信号,引用中断号及中断触发类型

#interrupt-cells 这是中断控制器节点的属性,用来标识这个控制器需要几个单位做中断描述符;

interrupt-controller 一个空属性用来声明这个node接收中断信号;

比如:父节点的#interrupt-cells的值是3,则子节点的interrupts一个cell有三个32bits整型值,

gpio属性

gpio-controller:说明该节点描述的是一个gpio控制器

#gpio-cells:描述gpio使用节点的属性一个cell的内容


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭