包虫病

首页 » 常识 » 问答 » 浅谈linux描述硬件的文件设备树
TUhjnbcbe - 2021/6/17 1:17:00
看白癜风哪个医院好 http://pf.39.net/bdfyy/

概述

设备树(devicetree),通俗的讲就是将设备描述信息抽象成树的结构。树的主干为系统总线,也就是根节点,根节点下是各种总线控制器,控制器下则是一系列硬件设备节点等。

在Linux2.6中,板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx中,导致内核变得庞大且冗余,然而这些板级细节对于内核来讲,不过是垃圾,因此设备树应运而生,工程师可以将硬件细节直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。

注意

1、dts(DeviceTreeSource),设备树源文件,放在内核的/arch/arm/boot/dts目录。

2、dtsi(DeviceTreeSourceInclude),设备树共有信息,类似C语言的头文件。

3、dtb(DeviceTreebinary),设备树dts文件编译后的目标文件,传递给内核,由内核进行解析。

4、dtc(DeviceTreeCompiler),设备树编译工具,用于将设备树dts文件编译成dtb文件。

5、设备树执行流程:

①、用户编写dtsi、dts文件。

②、执行命令makedtbs,使用DTC工具将dts文件编译成目标文件dtb。

③、uboot启动时自动将dtb文件传递给内核。

④、内核解析dtb文件。

接口

设备树(由节点构成)语法:

①节点命名一般为label:node-name

unit-address格式。

label表示节点标签,目的是为了方便访问节点。访问节点通过label。

node-name表示节点名,字符串类型,用于描述节点功能。

unit-address一般为设备地址或寄存器首地址,也可以没有。

注意:node-name

unit-address才表示节点名。

fengdts:fdts

{...reg=0x0x70xx8;child_fnode1:fnode1

{...reg=0x0x;};};

左右滑动

1
查看完整版本: 浅谈linux描述硬件的文件设备树