设备树简介

news2024/11/22 18:29:40

设备树

设备树简介

设备树是一种描述硬件的数据结构,它起源于OpenFirmware(OF)。
在Linux 2.6中, ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx中,采用设备树后,许多硬件的细节可以直接通过它传递给Linux,而不再需要在内核中进行大量的冗余编码。

DTS、DTB、DTC

DTS:
1.dts文件是设备树的源文件。
2 由于一个SoC可能对应多个设备,这些.dst文件可能包含很多共同的部分,共同的部分一般被提炼为一个.dtsi文件,这个文件相当于C语言的头文件。
3 可针对单独设备编写对应dts文件,调用.dtsi;
DTC:
DTC是将.dts编译为.dtb的工具,相当于gcc。
DTB:
.dtb文件是 .dts 被 DTC 编译后的二进制格式的设备树文件,它可以被linux内核解析。

make dtbs

DTS语法

.dts.dtsi

和 C 语言一样,设备树也支持头文件,设备树的头文件扩展名为 .dtsi;同时也可以像C 语言一样包含 .h头文件;
例如:(代码来源 linux-4.15/arch/arm/boot/dts/s3c2416.dtsi)

#include <dt-bindings/clock/s3c2443.h>
#include "s3c24xx.dtsi"

注:.dtsi 文件一般用于描述 SOC 的内部外设信息,比如 CPU 架构、主频、外设寄存器地址范围,比如 UART、 IIC 等等。

设备节点及属性

在这里插入图片描述

在这里插入图片描述
在设备树中节点命名格式如下:

node-name@unit-address

node-name:是设备节点的名称,为ASCII字符串,节点名字应该能够清晰的描述出节点的功能,比如“uart1”就表示这个节点是UART1外设;unit-address:一般表示设备的地址或寄存器首地址,如果某个节点没有地址或者寄存器的话 “unit-address” 可以不要;

注:根节点没有node-name 或者 unit-address,它被定义为 /。

节点属性

设备树中的每个节点都有描述节点特征的属性。属性由名称和值组成

节点属性

compatible 属性

compatible 属性也叫做 “兼容性” 属性,这是非常重要的一个属性!compatible 属性的值是一个字符串列表, compatible 属性用于将设备和驱动绑定起来。字符串列表用于选择设备所要使用的驱动程序。compatible 属性值的推荐格式:

 "manufacturer,model"

① manufacturer : 表示厂商;
② model : 一般是模块对应的驱动名字。

注:一般驱动程序文件都会有一个 OF 匹配表,此 OF 匹配表保存着一些 compatible 值,如果设备节点的 compatible
属性值和 OF 匹配表中的任何一个值相等,那么就表示设备可以使用这个驱动。可通过了解驱动模型获取该知识点

model 属性

model 属性值也是一个字符串,一般 model 属性描述设备模块信息,比如名字什么的,例如:

model = "Samsung S3C2416 SoC";

phandle 属性

phandle属性为devicetree中唯一的节点指定一个数字标识符,节点中的phandle属性,它的取值必须是唯一的(不要跟其他的phandle值一样),例如:

pic@10000000 {
phandle = <1>;
interrupt-controller;
};
another-device-node {
interrupt-parent = <1>; // 使用phandle值为1来引用上述节点
};

注:DTS中的大多数设备树将不包含显式的phandle属性,当DTS被编译成二进制DTB格式时,DTC工具会自动插入phandle属性。

status 属性

status 属性看名字就知道是和设备状态有关的, status 属性值也是字符串,字符串是设备的状态信息,可选的状态如下表所示:

status值描述

#address-cells 和 #size-cells

#address-cells 和 #size-cells的值都是无符号 32 位整型,可以用在任何拥有子节点的设备中,用于描述子节点的地址信息。
#address-cells 属性值决定了子节点 reg 属性中地址信息
#size-cells 属性值决定了子节点 reg 属性中长度信息
#address-cells 和 #size-cells 表明了子节点应该如何编写 reg 属性值,一般 reg 属性都是和地址有关的内容,和地址相关的信息有两种:起始地址和地址长度,reg 属性的格式一为:

reg = <address1 length1 address2 length2 address3 length3……>
soc {
    #address-cells = <2>;
    #size-cells = <1>;
    serial {
        compatible = "xxx";
        reg = <0x4600 0x5000 0x100>;  /*地址信息是:0x00004600 00005000,长度信息是:0x100*/
        };
};

标准节点属性

特殊节点

修改节点内容

DTB文件分析

设备树binding文档

设备树常用 OF 操作函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python操作字典

# 字典 score{"张三":"23","王五":"45"} print(score) dctdict(name张三,age20) print(dict) print(type(score)) # 字典元素的获取 print(score[张三]) print(score.get(张三)) # 判断是否是字典中的元素 print(王五 in score) # 为字…

浅析AI视频智能识别技术如何助力智慧平安校园建设

校园安全一直是学生健康成长、全面发展的前提与保障。校园门口伤害事件的频发与校园内应急事件的突发&#xff0c;让建设平安校园的任务愈加急迫。校园人流量大、监控点多&#xff0c;安保人员无法同时盯住上百个视频画面&#xff0c;亦无法保证24小时有效监控。传统的校园安防…

软件测试简历项目经验怎么写?一篇足矣解决

一、前言&#xff1a;浅谈面试 面试是我们进入一个公司的门槛&#xff0c;通过了面试才能进入公司&#xff0c;你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试&#xff0c;得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一…

OpenGL(十一)——材质

目录 一、前言 二、物体材质 三、光源材质 一、前言 OpenGL材质是模拟现实世界中不同材质物体表面&#xff0c;如木制箱子和钢制箱子对光的反射程度不同。物体材质对接受光散射程度不同&#xff0c;较少散射产生较小高光点&#xff0c;较多散射则会产生较大高光点。前面章节…

如何节约ChatGPT消耗的token

如何节约GPT的token.md 原文链接&#xff1a;小回博客 如何节约GPT的token 一、模拟一下携带上下文的流程&#xff1a; 第1次问答&#xff1a; 你&#xff1a;帮我写一个1000字的文案&#xff08;13&#xff09; gpt: xxxxxx (1000)第2次问答&#xff1a; 你&#xff1a;谢…

《我命由我不由天》蔡志忠——笔记三

目录 经典摘录 1、大脑是用来思考的 2、养生主 3、自己的问题&#xff0c;自己找答案 4、42岁自学英文 5、终身阅读 6、打不垮我们的终究使我们更强大 7、大环境下失业 8、生命只能兑现此刻 经典摘录 1、大脑是用来思考的 罗素非常反对制式教育&#xff0c;他说&#…

有哪些比较好的测试用例管理工具?

“新入职小型创业公司&#xff0c;想要一个比Excel高效且好用的工具。”我预料很多人会提TestLink、Jira、PingCode 等一堆平台&#xff0c;都2023年了&#xff0c;若还是复制粘贴的10年前这一套&#xff0c;那就让人看不下去了。为了让大家少走弯路&#xff0c;所以我写了这篇…

【自用】配置minGW、vscode配置ESP-IDF环境

步骤总览 1.配置minGW 2.下载安装esp-idf软件 3.将vscode esp-idf插件 和 esp-idf软件进行关联 一、配置minGW 1.下载 链接&#xff1a;https://pan.baidu.com/s/1j6ITlNDDyivKwpWNBjASvg?pwd0108 提取码&#xff1a;0108 2.解压 解压上面下载的压缩包即可 3.配置环境变…

EFDC建模方法及在地表水环境评价、水源地划分、排污口论证应用

目录 专题一 软件安装 专题二 EFDC模型讲解 专题三 一维河流模拟实操&#xff08;上机操作&#xff09; 专题四 建模前处理&#xff08;上机操作&#xff09; 专题五 EFDC网格剖分介绍&#xff08;上机操作&#xff09; 专题六 EFDC二维湖库水动力模拟/非保守染色剂模拟&…

prometheus监控数据持久化

前置条件 1.规划两台主机安装prometheus # kubectl get nodes --show-labels | grep prometheus nm-foot-gxc-proms01 Ready worker 62d v1.23.6 beta.kubernetes.io/archamd64,beta.kubernetes.io/oslinux,kubernetes.io/archamd64,kubernetes.io…

5.Redis持久化

5.Redis持久化 总体介绍持久双雄一图&#xff1a;Redis persistence RDB&#xff08;Redis Database&#xff09;官网介绍RDB&#xff08;Redis 数据库&#xff09;&#xff1a;RDB 持久性以指定的时间间隔执行数据集的时间点快照。能干嘛&#xff1f;案例演示&#xff1a;需求…

图像处理——连接IP摄像头上传到服务器实现目标识别

前言 1.项目的需求是&#xff0c;本地连接IP摄像头&#xff0c;然后把图像上传到图像处理服务器器进行处理&#xff0c;得到的结果返回本地。 2.IP摄像头使用的是大华的摄像头&#xff0c;目标识别用的yolov5的模型&#xff0c;服务器用的是flask&#xff0c;实现语言是pytho…

【闪击Python】字符串的创建和驻留机制

&#x1f48c; 博客内容&#xff1a;字符串的创建和驻留机制 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&#x…

Dear Reality 发布全新 EXOVERB MICRO 混响插件

空间感混响效果新高度 Dear Reality 发布全新 EXOVERB MICRO 混响插件 Dear Reality 针对立体声制作推出最新的混响插件 EXOVERB MICRO&#xff0c;提供一流的真实感和空间感混响效果&#xff0c;将立体声混音技术提升至新高度。这个紧凑型音频插件功能非常强大&#xff0c;采…

得物社区亿级ES数据搜索性能调优实践

1.背景 2020年以来内容标注结果搜索就是社区中后台业务的核心高频使用场景之一&#xff0c;为了支撑复杂的后台搜索&#xff0c;我们将社区内容的关键信息额外存了一份到Elasticsearch中作为二级索引使用。随着标注业务的细分、迭代和时间的推移&#xff0c;这个索引的文档数和…

VisualStudio2022配置PCL点云库教程

属性管理器 首先&#xff0c;打开属性管理器&#xff1a;视图–其他窗口–属性管理器 打开后如图所示&#xff0c;选中Debug|x64&#xff0c;右键单击&#xff0c;选择属性 如图所示&#xff0c;需要修改的是VC目录中的包含目录和库目录&#xff1a; ** 包含目录 添加内容…

Andorid:日常学习笔记(3)——掌握日志工具的使用

使用Android的日志工具Log 方法: Android中的日志工具类为Log,这个类提供了如下方法来供我们打印日志: 使用方法: Log.d("MainActivity","onCreate execute"); 第一个参数tag:一般传入当前类名就好,主要用于队打印信息进行过滤.第二个参数:msg,具体想打…

如何成为一位测试开发工程师?测试开发的核心竞争力...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 抛出一个问题&…

【操作系统】第2章进程同步、PV操作、死锁

一、进程同步 1、 定义 &#xff08;1&#xff09; 临界资源&#xff1a;把一个时间段内只允许一个进程使用的资源称为临界资源。许多物理设备&#xff08;摄像头、打印机&#xff09;和许多变量、数据、内存缓冲区都属于临界资源。 对临界资源的访问必须互斥地进行。 ① 进入…

【软考】中级 | 数据库系统工程师 | 笔记总结

&#x1f4e2;博客主页&#xff1a;肩匣与橘 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由肩匣与橘编写&#xff0c;首发于CSDN&#x1f649; &#x1f4e2;生活依旧是美好而又温柔的&#xff0c;你也…