设备树基本语法

文章目录

  • 设备树基本语法
    • 跟节点
    • 子节点
    • reg属性
    • address-cells 和 size-cells 属性
    • model 属性
    • status 属性
    • compatible 属性
    • aliases 节点
    • chosen 节点
    • device_type 节点
    • 自定义属性

  1. 当描述设备树(Device Tree) 时, 通常会涉及到以下几个关键术语: DTS、 DTSI、 DTB 和 DTC

    1. image-20241101135925871
    2. dts 源文件
    3. dtsi 包含文件
    4. dtb 二进制文件
    5. dtc 编译器
  2. 设备树源文件通常存放在 arch/arm64/boot/dts/ 目录中

  3. 编译器 scripts/dtc/ dtc文件就是可执行编译器

    1. 编译为二进制dts

      dtc -I dts -O dtb -o output.dtb input.dts
      
    2. 反编译为源文件

      dtc -I dtb -O dts -o output.dts input.dtb
      

设备树基本语法

跟节点

  /dts-v1/; // 设备树版本信息
  / {
      
  };

子节点

[label:] node-name@[unit-address] {
[properties definitions]
[child nodes]
};
  1. 节点名称 node-name :通常是硬件设备的名称,是唯一的
  2. 节点标签 label :标签允许其他节点引用,以便于在设备树中建立引用关系,可以理解为是节点名称的一个别名
  3. 单元地址 unit-address :目的是区分相同类型的设备的不同实例
    1. image-20241101143120397
  4. 属性定义 properties definitions : 属性定义是一组键值对, 用于描述设备的配置和特性。例如寄存器地址、 中断号、 时钟频率等
  5. 子节点 child nodes :子节点是当前节点的子项, 用于进一步描述硬件设备的子组件或配置。

reg属性

reg = <address size>;
  1. 指定设备的寄存器地址和大小, 提供了与设备树中的物理设备之间的寄存器映射关系
  2. 可以在设备节点中有单个值格式和列表值格式这两种常见格式

address-cells 和 size-cells 属性

  1. 指定在上个小节中要设置的设备树中地址单元大小单元的位数

  2. 使用reg的多少个数据,来表示地址单元或者是大小

    1. //reg的2个都是表示的地址,size为0说明没有表示大小
      node1 {
          #address-cells = <2>;
          #size-cells = <0>;
          node1-child {
              reg = <0x0000 0x0001>;
          };
      }; 
      
      //3,2
      //表示地址3个,大小1个
      //地址 0x0800 0x0 0x0
      //大小 0x0 0x0
      pci@1,0 {
          #address-cells = <3>;
          #size-cells = <2>;
          compatible = "intel,ce4100-pci", "pci";
          device_type = "pci";
          bus-range = <1 1>;
          reg = <0x0800 0x0 0x0 0x0 0x0>;
      }
      

model 属性

  1. model 属性用于描述设备的型号或者名称
  2. 当设备节点的 compatible 属性相同或相似时。
  3. 通过使用不同的 model 属性值, 可以更加准确地确定所使用的设备类型

status 属性

  1. status 属性的值可以是以下几种:
    1. “okay”: 表示设备或节点正常工作, 可用
    2. “disabled”: 表示设备或节点被禁用, 不可用
    3. “reserved”: 表示设备或节点已被保留, 暂时不可用
    4. “fail”: 表示设备或节点初始化或操作失败, 不可用
  2. 通过使用 status 属性, 设备树可以动态地控制设备的启用和禁用状态

compatible 属性

  1. 用于识别设备节点与驱动程序之间的匹配关系

  2. compatible 属性也可以具有多个匹配值

    1. compatible = "everest,es8388", "everest,es8323";
      compatible = ["vendor,device1", "vendor,device2"];
      

aliases 节点

  1. 用于定义设备别名

  2. aliases {
    	mmc0 = &sdmmc0;
    }
    //mmc0 别名与设备树中的 sdmmc0 节点相关联
    

chosen 节点

  1. 用于传递和存储系统引导和配置的相关信息

  2. chosen {
    	bootargs = "root=/dev/nfs rw nfsroot=192.168.1.1 console=ttyS0,115200";	
    };
    

device_type 节点

  1. 用于描述设备类型的节点
  2. 常见的设备类型包括但不限于:
    1. cpu: 表示中央处理器。
    2. memory: 表示内存设备。
    3. display: 表示显示设备, 如液晶显示屏。
    4. serial: 表示串行通信设备, 如串口

自定义属性

用户根据特定需求添加的属性。 这些属性可以用于提供额外的信息、 配置参数或元数据, 以满足设备或系统的特定要求

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【环境搭建】Apache Kylin 各个版本Docker搭建汇总

前言 最近需要做一些Web漏洞复现的研究&#xff0c;所以需要搭建不同版本的Apache Kylin&#xff0c;在这里汇总一下。 用Docker来搭建环境是最简单的方式&#xff0c;因为无需在本地构建镜像&#xff0c;只需执行以下命令直接从 Docker Hub 拉取镜像&#xff0c;当容器启动时…

linux操作系统进程

linux操作系统是对下的软硬件进行管理&#xff0c;为了能够对上提供稳定&#xff0c;快速&#xff0c;安全的服务而诞生的软件。 广义上的操作系统是包含搭载在操作系统上的软件和函数库等文件的。 狭义上的操作系统就是操作系统内核&#xff0c;进行进程管理&#xff0c;文件…

CentOS9 Stream 支持输入中文

CentOS9 Stream 支持输入中文 方法一&#xff1a;确保 gnome-control-center 和相关组件已更新方法二&#xff1a;手动添加输入法源配置方法三&#xff1a;配置 .xinputrc 文件方法四&#xff1a;检查语言包 进入centos9 stream后&#xff0c;点击右上角电源键&#xff0c;点击…

Linux权限管理和文件属性

目录 1. 权限的概念 2. 权限管理 2.1 文件访问者的分类 2.2 文件类型和访问权限&#xff08;事物属性&#xff09; 2.2.1 文件类型 2.2.2 file指令 2.2.3 基本权限 3. 文件访问权限的相关设置方法 3.1 chmod 3.2 chown 和 chgrp 3.3 umask 4. 粘滞位 1. 权限的…

某些保护措施如反接保护漏电保护为什么用可控硅而不用MOS管

现在很多人了解到MOS的饱和导通时电阻很小。 不过MOS的导通有条件&#xff0c;就是GS电压要求比较高。 在保护方面&#xff0c;我们需要 1&#xff0c;简单可靠&#xff0c;务必不要太复杂 2&#xff0c;触发电压要低&#xff0c;电流要求要小&#xff0c;否则灵敏度达不到…

【力扣专题栏】字母异词分组,如何利用强大的容器(unordered_map)解决该问题?

题解目录 1、题目描述解释2、算法原理解析3、代码编写 1、题目描述解释 2、算法原理解析 3、代码编写 class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {//创建哈希表unordered_map<string,vector<string&g…

debian11安装最新rabbitmq

1、使用官网提供系统对应的安装脚本 安装 版本说明&#xff1a; Debian Buster代表Debian 10 Debian Bullseye代表Debian 11 Debian Bookworm代表Debian 12 ‌Debian Trixie代表Debian 13 Debian Sid代表Debian unstable版本 2、新建脚本文件 vim rabbitMq.sh将脚本内容复制到…

K 临近算法

机器学习中的 K 临近算法&#xff0c;计算输入数据与训练集中数据的距离&#xff0c;选取 k 个最近的数据&#xff0c;选中的数据中&#xff0c;那个分类多&#xff0c;那个分类就是最终结果。特征空间的距离有多重测量方法&#xff0c;最常用的就是欧氏距离&#xff0c;公式如…

2025上海市公务员考试报名流程详细教程

2025年上海市公务员考试报名马上就要开始了&#xff0c;有想要参加上海公务员考试的姐妹们&#xff0c;可以提前了解一下考试报名流程&#xff0c;和报名照制作尺寸要求 报名时间&#xff1a;11月2日0:00至11月8日12:00 南核时间&#xff1a;11月2日0:00至11月8日14:00 缴费…

GPT原理;ChatGPT 等类似的问答系统工作流程如下;当用户向 ChatGPT 输入一个问题后:举例说明;ChatGPT不是通过索引搜索的传统知识库

目录 GPT原理 GPT架构 GPT 主要基于 Transformer 的解码器部分 ChatGPT 等类似的问答系统工作流程如下: 用户输入 文本预处理 模型处理 答案生成 输出回答 当用户向 ChatGPT 输入一个问题后:举例说明 文本预处理: ChatGPT不是通过索引搜索的传统知识库 GPT GPT…

微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)

微服务设计模式 — 补偿事务模式&#xff08;Compensating Transaction Pattern&#xff09; 定义 在云计算和分布式系统中&#xff0c;管理跨多个微服务或组件的事务一致性是一项极具挑战性的任务&#xff0c;补偿事务模式Compensating Transaction Pattern&#xff09;是一种…

HTML 基础标签——元数据标签 <meta>

文章目录 1. `<meta>` 标签概述2. 属性详解2.1 `charset` 属性2.2 `name` 属性2.3 `content` 属性2.4 `http-equiv` 属性3. 其他常见属性小结在 HTML 文档中,元数据标签 <meta> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…

Golang | Leetcode Golang题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; func countArrangement(n int) int {f : make([]int, 1<<n)f[0] 1for mask : 1; mask < 1<<n; mask {num : bits.OnesCount(uint(mask))for i : 0; i < n; i {if mask>>i&1 > 0 && (num%(i1) 0 |…

Rust 力扣 - 1297. 子串的最大出现次数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 越短的子串出现的次数越多&#xff0c;我们只需要求某个长度为min_size的子串出现的次数&#xff0c;并且该子串中不重复字符小于等于max_letters的数量 遍历长度长度为min_size的子串&#xff0c;然后将不重复…

[neo4j报错]py2neo.errors.ClientError: [Request.Invalid] Not Found解决方案

报错源代码 g Graph(http://localhost:7687, auth("neo4j", "password"))或许这是从网上复制下来的代码&#xff0c;看上去没什么问题&#xff0c;但实际上 要结合具体的浏览器上的地址来看&#xff0c;具体如下&#xff1a; 看到了吗&#xff0c;这里才…

[ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-windows)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

Q:无法连接到此网络

无法连接到此网络 今天上午正用浏览器开始搜索&#xff0c;发现网络出了问题&#xff0c;就去找了相关的视频教程&#xff1a; 这些视频大概说了这几种&#xff1a; 设备管理器-网络适配器-找到含有WIFI的选项-查看是否状态异常control-网络和internet-网络和共享中心-更改适…

【实战篇】requests库 - 有道云翻译爬虫 【附:代理IP的使用】

目录 〇、引言一、目标二、请求参数分析三、响应分析四、编写爬虫脚本【隧道代理的使用】 〇、引言 无论是学习工作、旅游出行、跨境电商、日常交流以及一些专业领域都离不开翻译工具的支持。本文就带大家通过爬虫的方式开发一款属于自己的翻译工具~ 一、目标 如下的翻译接口…

[ 应急响应靶场实战 ] VMware 搭建win server 2012应急响应靶机 攻击者获取服务器权限上传恶意病毒 防守方人员应急响应并溯源

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

鸿蒙NEXT开发-学生管理系统小案例(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…