ARM linux 设备树 (组成与结构)

设备树是一种描述硬件的数据结构,采用设备树后,许多硬件的细节可以直接通过它传给Linux.
组成:由命令的节点(Node)和属性(Property)组成,而节点本身可以包含子节点.
包含信息
CPU的数量和类别
内存基地址和大小
总线和桥
外设连接
中断控制器和中断使用情况
GPIO控制器和GPIO使用情况
时钟控制器和时钟使用情况
设备树的组成和结构:DTS,DTC,和DTB等

1.dts
一个.dts文件对应一个ARM的设备(krenel/arch/arm/boot/dts/),把SoC(芯片级系统)公用的部分或者多个设备共同的部分一般提炼为.dtsi,类似于C语言的头文件.
在这里插入图片描述
2.dtc
dtc是将.dts编译为.dtb的工具。源代码位于kernel/scripts/dtc目录中。
dtc除了可以编译.dts文件外,也可以“反汇编”.dtb文件为.dts文件,指令格式为:
./scripts/dtc/dtc -I dtb -0 dts -o xxx.dts arch/arm/boot/dts/xxx.dtb
3.dtb (Device Tree Blob)
文件.dtb是.dts被DTC编译后的二进制格式的设备树描述,可由Linux内核解析。
4.绑定(Binding)
对于设备树中的节点和属性具体是如何来描述设备的硬件细节的,一般需要文档来进行讲解,文档的后缀名一般为.txt。
文档位于kernel/Documentation/devicetree/bindings目录下,
设备树绑定文档主要内容包括:(关于该模块最基本的描述;必选属性(Required Properties)的描述;可选属性(Optional Properties)的描述;一个实例)。
5.Bootloader
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45639314/article/details/111226815