2.13作业【设备树解析,按自己理解】
设备树定义
设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同属性是以链式结构存储。
设备树文件格式
内核顶层目录下/arch/arm/boot/dts:设备树文件存放路径
单独编译设备树文件:make dtbs
***.dts//设备树源码文件
***.dtsi //设备树的补充文件或者头文件
|
|
DTC(编译设备树的编译工具)
|
|
***.dtb //编译后设备树的镜像文件
设备树的语法
/dts-v1/; //设备树的版本号
/ { // '/'表示设备树的根节点,所有的节点信息都在根节点内部定义
node1 { //node1是设备树根节点的子节点
a-string-property = "A string"; //node1节点内部的属性,键值对
a-string-list-property = "first string", "second string";
// hex is implied in byte arrays. no '0x' prefix is required
a-byte-data-property = [01 23 34 56];
child-node1 {//node1节点的子节点
first-child-property; //空属性键值对,用来起到标识作用
second-child-property = <1>;
a-string-property = "Hello, world";
};
child-node2 {
};
};
node2 { //根节点的子节点
an-empty-property;
a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */
child-node1 {
};
};
};
节点命名规则:[@
name指的是节点名字,是一个简单的 ASCII 字符串,长度最多为 31 个字符。通常,节点是根据它所代表的设备类型来命名的。如果节点使用地址描述设备,则包含unit-address ex:GPIO@50006000
键值对格式
属性是简单的键值对,其中值可以为空或包含任意字节流
文本字符串(以 null 结尾)用双引号表示: string-property = "a string";
“cell”是 32 位无符号整数,由尖括号分隔: cell-property = <0xbeef 123 0xabcd1234>;
二进制数据用方括号分隔: binary-property = [0x01 0x23 0x45 0x67];
不同表示形式的数据可以使用逗号连接在一起:
mixed-property = "a string", [0x01 0x23 0x45 0x67], <0x12345678>;
逗号也用于创建字符串列表: string-list = "red fish", "blue fish";
注:在linux中也有一些特殊的键值对,譬如-----》compatible = "厂商,设备名字;
获取设备树节点信息的API
1.struct device_node *of_find_node_by_name(struct device_node *from,
const char *name);
功能:根据设备树节点的名字解析设备树节点
参数:
from:当前节点父节点首地址(不知道就填NULL,默认从设备树根节点开始解析)
name:设备树节点名字 mynode
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL2.struct device_node *of_find_node_by_path(const char *path)
功能:根据设备树节点路径解析设备树节点
参数:
path:设备树节点路径 /mynode0x12345678
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL3.struct device_node *of_find_compatible_node(struct device_node *from,
const char *type, const char *compat);
功能:根据设备树节点中compatibe键来解析设备树节点
参数:
from:填NULL,默认从根节点开始解析
type:NULL
compat:填写要解析的设备树节点中compatible的值
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL4、struct property *of_find_property(const struct device_node *np,
const char *name, int *lenp)
功能:基于解析后的设备树节点信息结构体解析指定属性键值对
参数: np:设备树节点信息结构体指针 name:指定的键名
lenp:获取到的字节个数
返回值:成功返回属性结构体首地址,失败返回NULL
如果存储方式不同可用一下API进行转换
__u32 __be32_to_cpup(const __be32 *p)
功能:u32类型数据大端转小端
参数:转换的数据首地址
返回值:返回转换后的数值
__be32 __cpu_to_be32p(const __u32 *p)
相关文章:
2.13作业【设备树解析,按自己理解】
设备树定义 设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同属性是以链式结构存…...
《NFL星计划》:巴尔的摩乌鸦·橄榄1号位
巴尔的摩乌鸦(英语:Baltimore Ravens)是一支职业美式橄榄球球队位于马里兰州的巴尔的摩。他们现时为美国美式橄榄球联合会的北区进行比赛,其主场为M&T银行体育场。乌鸦队曾在2000年和2012年取得超级碗冠军。 巴尔的摩乌鸦 成…...
Allegro如何设置自动保存和自动保存的时间操作指导
Allegro如何设置自动保存和自动保存的时间操作指导 做PCB设计的时候,自动保存软件是一个必要的功能,Allegro同样支持设置自动保存,而且可以设置自动保存的时间。 如下图 具体操作如下 点击Setup点击User Preferences...
Kotlin实现简单音乐播放器
关于音乐播放器,我真的是接触比较多,听歌作为我第一大爱好,之前也用Java设计过音乐播放器,感兴趣的同学可以阅读:Android Studio如何实现音乐播放器(简单易上手)和 Android Studio实现音乐播放器…...
ShardingSphere-Proxy 数据库协议交互解读
数据库协议对于大部分开发者来说算是比较冷门的知识,一般的用户、开发者都是通过现成的数据库客户端、驱动使用数据库,不会直接操作数据库协议。不过,对数据库协议的特点与流程有一些基本的了解,有助于开发者在排查数据库功能、性…...
基于ubuntu20.4的wine的MDK5软件的安装
本文基于ubuntu20.4安装MDK5的keil软件,由于MDK不提供linux版本的安装软件,因此需要利用wine软件来安装MDK5软件,具体流程包括wine软件安装、MDK5安装及MDK5的lic添加等3部分内容。具体流程如下所示: (一)…...
Jmeter之直连数据库框架搭建简介
案例简介 通过直连数据库让程序代替接口访问数据库,如果二者预期结果不一致,就找到了程序的缺陷。 下面通过一个案例分析讲解如何实现:获取某个字段值,放在百度上搜索。 实现方式 1、Jmeter本身不具备直连数据库的功能…...
备战蓝桥杯【高精度乘法和高精度除法】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...
火眼审阅 | 基于NLP和OCR识别技术赋能合同审阅
合同作为确定权利义务的法律文件,贯穿企业内外部活动的所有环节,可见合同数据之于企业是非常重要的数据资产。 合同管理是企业营业中的重要部分,其中合同审核是企业法务的基本工作之一。而对于所有的法务人员一直存在一个问题:合…...
关于在集合中对象比较属性值的问题
关于在集合中对象比较属性值的问题1 问题说明2 问题排查3 总结及伪代码楼主在最近遇到一个场景,项目中有一个校验。 需要将数据库查询的集合对象与前端传递的集合对象进行比较,看数据是否被修改。 1 问题说明 基于上面项目需求,项目为较老的…...
java微信小程序旅游管理系统
本旅游服务软件,主要实现了管理员后端:首页、个人中心、旅游攻略管理、旅游资讯管理、景点信息管理、门票预定管理、用户管理、酒店信息管理、酒店预定管理、推荐路线管理、论坛管理、系统管理,用户前端:首页、景点信息、酒店信息、论坛中心、我的等。总…...
2023年要跟踪的11个销售管理关键指标
销售管理关键指标有:营销合格线索数量(MQL)、MQL 到 SQL 的转换率、商机赢单率、获客成本、总销售额、客户终身价值(LTV)、LTV 与 CAC 比率、赢单周期、每客户平均销售额(平均客单价)、每销售人…...
MongoDB--》基本常用命令使用
目录 数据库操作命令 选择和创建数据库 数据库的删除 集合操作命令 集合的显示创建 集合的隐式创建 集合的删除 文档基本的CRUD(增删改查) 文档的插入 文档的基本查询 文档的更新 删除文档 数据库操作命令 数据库常用的操作命令如下&#x…...
js浮点数四则运算精度丢失以及toFixed()精度丢失解决方法
js浮点数四则运算精度丢失以及tofixed精度丢失解决方法一、js浮点数计算精度丢失的一些例子1、四则运算精度丢失:2、toFixed() 四舍五入精度丢失:二、浮点数计算精度丢失的原因三、解决办法1、使用 big.js(如果有大量连续的计算推荐使用&…...
高姿态下的面部表情识别系统
效果展示: python表情、性别识别面部表情识别 (FER) 在计算机安全、神经科学、心理学和工程学方面有大量应用。由于其非侵入性,它被认为是打击犯罪的有用技术。然而,FER 面临着几个挑战,其中最严重的是它在严重的头部姿势下的预测…...
English Learning - Day59 作业打卡 2023.2.13 周一
English Learning - Day59 作业打卡 2023.2.13 周一引言1. 我有一些急事要处理。2. 这个孩子无忧无虑。3. 那个骑在白马上的姑娘是我姐姐。4. 对方正在给我们公司施加压力迫使我们降价。5. 我的医生告诉我要少吃垃圾食品。6. 我从来不熬夜。7.我早就想跟你聊一聊了。8.我一定不…...
图机器学习
图机器学习1、图机器学习导论1.1图神经网络与普通神经网络的异同2、图的基本表示和特征工程2.1 图的基本表示2.1.1 图的本体设计2.1.2 图的种类2.1.3节点连接数(度)2.1.4图的基本表示(邻接矩阵)节点数量少使用2.1.5图的基本表示&a…...
ArcGIS中ArcMap创建渔网Create Fishnet:生成指定大小的格网矢量文件
本文介绍在ArcMap软件中,通过“Create Fishnet”工具创建渔网,从而获得指定大小的矢量格网数据的方法。 首先,我们在创建渔网前,需要指定渔网覆盖的范围。这里我们就以四川省为例,在这一范围内创建渔网;其中…...
TensorRT中的自定义层
TensorRT中的自定义层 文章目录TensorRT中的自定义层9.1. Adding Custom Layers Using The C API9.1.1. Example: Adding A Custom Layer With Dynamic Shape Support Using C重要提示:覆盖检查索引小于pos的连接的格式/类型,但绝不能检查索引大于pos的连…...
部署智能合约到公链
🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…...
Windows server——部署DNS服务(3)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.管理DNS服务 1.子域 案例 2. 委派 案例 1)添加主机记录 …...
9. QML_OpenGL--2. 在QQuick中搭建加载OpenGL框架
1. 说明: OPenGL一般在 QtWidget 中使用,但目前使用 QML 做界面开发是一种趋势,同时在QML中使用OPenGL进行渲染也是十分必要,文章简单介绍如何在QML中使用 OPenGL,搭建了一种基本的框架。整体思路和在 QtWidget 中类似…...
亚马逊云科技携手滴普科技,打造数据智能新标杆
随着企业数字化转型的不断深入,数据对于业务的价值和重要性也逐渐凸显。越来越多企业意识到,只有不断提升底层数据基础平台的性能和能力,才能构建数据驱动的业务,增强企业核心竞争力。作为湖仓一体数据智能基础软件独角兽企业&…...
CGO 跨平台静态编译
什么是跨平台编译? 跨平台编译:即交叉编译,是在一个平台上生成另一个平台上的可执行文件。所谓平台,实际上包含两个概念:体系架构(Architecture)、操作系统 (Operating System)。同一个体系架构可以运行不同…...
股票买卖接口怎么来的?
现在股票买卖接口主要是在线上研发,有专业的开发团队进行源码开发和完善,但是,常常会在开发过程中出现问题,也就是遇到一些特殊的情况需要及时处理,那么股票买卖接口怎么开发实现出来的?一、股票买卖接口开…...
【Python学习笔记】29.Python3 面向对象
前言 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 Python3 面向对象 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面…...
MySQL 索引
索引 索引是一种用于快速查询和检查数据的数据结构,其本质可以看成是一种排好序的数据结构。理解:索引的作用就相当于书的目录📚,可以根据目录快速定位到想要查看的位置。常见的索引结构:B Tree、B Tree、Hash、红黑树…...
学会使用LoadRunner录制脚本
1.LoadRunner安装 https://blog.csdn.net/weixin_48584088/article/details/129012469 2.Loadrunner的基本概念 LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量, 并发用户和性能计数器等方面来衡量系统的性…...
产品经理必看的高效产品文档撰写指南
对于企业来说,如何推广自己的产品是一个非常重要的话题,而其中必要的就是创建企业产品宣传册,这对于产品宣传非常重要,尤其是一些大公司,非常重视这种产品展示方式。因为它可以更完整地展现产品,撰写一份合…...
Prometheus 的介绍和安装
介绍 Prometheus 是一个开源的监控和报警系统,最初由SoundCloud于2012年创建,随着越来越多的公司采用Prometheus以及非常活跃的社区,Prometheus于2016年加入云原生基金会,成为Kubernetes之后的第二个托管项目,并于2018年毕业。 特点 通过PromQL来对基于指标名称和键值对…...
国外对企业网站开发的研究/留手机号广告
看到这篇文章的朋友应该都差不多开工了吧。但是我还没有,我甚至不知道自己什么时候才能有工作…… 又是一年初,而我也已经失业一年多了……今天就说说我自己吧——一个有着8年 Android 开发经验的无业游民。 前言 近年来,当程序员真的是越来…...
淄博网站制作公司/免费外网加速器
数据挖掘是指以某种方式分析数据源,从中发现一些潜在的有用的信息,所以数据挖掘又称作知识发现,而关联规则挖掘则是数据挖掘中的一个很重要的课题,顾名思义,它是从数据背后发现事物之间可能存在的关联或者联系。举个最…...
余姚网站建设哪家好/公司网站建设步骤
1 新建 项目右键-->Dynamic web project动态WEB项目 2 在新建项目上面 3 转载于:https://www.cnblogs.com/cici-new/archive/2013/05/14/3078082.html...
青岛网站建设公司哪家好/直通车推广计划方案
QuartZ2d是二维绘图引擎,包含在core Graphics框架中,是纯C语言的; 图形上下文:CGContextRef数据类型,包含以下信息:绘图路径,绘图状态,绘图输出目标; 注意:绘图的顺序对最终显示结果有影响; 1.当view第一次被显示的时候会调用drawRect:(CGRect )rect 2.不要手动调用drawRect…...
协会网站设计方案/互联网营销推广
为什么80%的码农都做不了架构师?>>> 进度类计算 项目进度网络图 ----展示项目各计划活动、持续时间、逻辑关系的图形 双代号网络图(箭线型) ----用一个箭线表示一项活动,活动名称写在箭线上,箭线同时表示…...
数据管理系统/马鞍山网站seo
一、lsattr命令 lsattr命令用于显示文件属性。 用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。 1.1 语法 lsattr [-adlRvV][文件或目录...]1.2 选项 选项描述-a显示所有文件和目录,包括以".“为名称开头字符的额外内建ÿ…...