查看: 35|回复: 0

[经验] 飞凌嵌入式ElfBoard ELF1板卡-设备组织架构

[复制链接]

该用户从未签到

发表于 2025-1-8 08:51:57 | 显示全部楼层 |阅读模式
分享到:
下图是一个设备树文件的基本架构示例:
15-10.png
简单概括一下有这几个部分:
节点
节点的命名方式一般为node-name@unit-address:
其中node-name为节点名称,unit-address为节点地址。例如上示例图中node@0的node为节点名称;0就是节点的地址,地址主要是为了区分其他的节点以保证节点的唯一性,节点地址是非必须的,可以省略。
在一个节点下面可包含一系列的子节点,例如上示例图的note@0下面又可包含其自己的子节点child-node@0和child-node@1。
下面是几种常见的节点:
根节点
设备树文件中都包含一个根节点,使用“/”表示。
CPU节点
15-2.png
memory节点
该节点是设置内存起始地址及其大小。
15-3.png
属性
每个节点都有不同属性,属性包括属性名称和属性值,属性值可以为空或任意的字节流属性,一般属性值有三类:
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节点:
15-4.png
此节点的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板。
15-5.png
再如下图sound节点,设备型号信息为nau8822-audio:
15-6.png
#address-cells,#size-cells,reg
reg属性用来表示节点地址资源的,属性值一般是寄存器的起始地址及地址之后连续的空间长度。
#address-cells,#size-cells分别表示子节点中reg的地址以及地址之后连续的空间长度用几个32bit数据表示。
15-7.png
15-8.png
如上图,#address-cells=<1>,表示其子节点ocrams中reg的地址是用一个32bit数据表示,上图中的0x00900000。#size-cells=<1>,说明其子节点ocrams中reg地址之后的空间长度也是用一个32bit数据表示,上图中的0x4000。
status
status属性用来表示节点的状态,即相关硬件的状态,用字符串表示。'okay'表示硬件正常工作,“disabled”表示硬件当前不可用,“fail”表示因为出错不可用,“fail-sss”表示因为某种原因出错不可用,sss表示具体的出错原因。实际中,基本只用'okay'和'disabled'。
15-9.png
标签
图中的node1: node@1节点,其中node1就是本节点的一个标签,标签不是必须的,定义标签主要为了方便在其他地方对该节点进行引用的时候,不必写该节点的全路径,直接使用标签即可。如在node@0的子节点child-node@0的第三个属性就引用了node1(&node1)。
15-10.png

15-1.png
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-20 03:54 , Processed in 0.108132 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.