一氧化碳中毒

注册

 

发新话题 回复该主题

浅谈linux描述硬件的文件设备树 [复制链接]

1#
北京去哪个医院看白癜风最好 http://yyk.39.net/hospital/89ac7_detail.html

概述

设备树(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才表示节点名。

fengdtsdts

{...reg=0x0x70xx8;child_fnode1node1

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

左右滑动

分享 转发
TOP
发新话题 回复该主题