• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构

2025/01/08
622
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

下图是一个设备树文件的基本架构示例:

简单概括一下有这几个部分:

节点

节点的命名方式一般为node-name@unit-address:

其中node-name为节点名称,unit-address为节点地址。例如上示例图中node@0的node为节点名称;0就是节点的地址,地址主要是为了区分其他的节点以保证节点的唯一性,节点地址是非必须的,可以省略。

在一个节点下面可包含一系列的子节点,例如上示例图的note@0下面又可包含其自己的子节点child-node@0和child-node@1。

下面是几种常见的节点:

根节点

设备树文件中都包含一个根节点,使用“/”表示。

CPU节点

memory节点

该节点是设置内存起始地址及其大小。

属性

每个节点都有不同属性,属性包括属性名称和属性值,属性值可以为空或任意的字节流属性,一般属性值有三类:

string字符串型,使用双引号“”包含;

byte数组型:使用方括号[]包含;

u32型:使用尖括号<>包含;

如示例图中节点:

node@0的第一个属性名称是a-string-property,属性值为字符串“string”;

node@0的第三个属性名称为a-byte-data-property,其属性值为byte数组:[0x01 0x02 0x03 0x04],

node1(node@1)节点的a-cell-property属性值为u32型<1 2 3 4>。

常见的属性:

compatible

compatible是兼容的意思,即该设备可被一个或者多个驱动匹配。例如在

arch/arm/boot/dts/imx6ull-elf1-emmc.dts文件中的pxp_v4l2节点:

此节点的Compatible的值为“"fsl,imx6ul-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2",内核在解析设备树之后,会首先根据“fsl,imx6ul-pxp-v4l2”查找匹配驱动模块,其中“fsl”是厂商名称,“mx6ul-pxp-v4l2”是驱动模块的名称。如果没有匹配到此驱动模块,就会再次使用”fsl,imx6sx-pxp-v4l2”进行查找匹配,依次类推。

model

model属性用于表示设备型号信息。如下图中model = "Freescale i.MX6 ULL 14x14 EVK Board",表示该设备为freescale的i.MX6ULL EVK板。

再如下图sound节点,设备型号信息为nau8822-audio:

#address-cells,#size-cells,reg

reg属性用来表示节点地址资源的,属性值一般是寄存器的起始地址及地址之后连续的空间长度。

#address-cells,#size-cells分别表示子节点中reg的地址以及地址之后连续的空间长度用几个32bit数据表示。

如上图,#address-cells=<1>,表示其子节点ocrams中reg的地址是用一个32bit数据表示,上图中的0x00900000。#size-cells=<1>,说明其子节点ocrams中reg地址之后的空间长度也是用一个32bit数据表示,上图中的0x4000。

status

status属性用来表示节点的状态,即相关硬件的状态,用字符串表示。'okay'表示硬件正常工作,“disabled”表示硬件当前不可用,“fail”表示因为出错不可用,“fail-sss”表示因为某种原因出错不可用,sss表示具体的出错原因。实际中,基本只用'okay'和'disabled'。

标签

图中的node1: node@1节点,其中node1就是本节点的一个标签,标签不是必须的,定义标签主要为了方便在其他地方对该节点进行引用的时候,不必写该节点的全路径,直接使用标签即可。如在node@0的子节点child-node@0的第三个属性就引用了node1(&node1)。

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐