设备树的理解与运用
设备树:
本质是一个文件,包含很多节点,每个节点里边是对设备属性的描述(包括GPIO,时钟,中断等等),其中节点(node)和属性(property)就是设备树最重要的两个概念。
路径一般在arch/arm/boot/dts、
工作流程:设备树dts文件被编译成dtb二进制文件,在boot loader运行时传递给操作系统。
为什么要整个设备树的概念?
DTS:设备树源文件,可由我们直接编写,包含设备的结构,属性和连接关系。
DTSI:包含在DTS文件下,主要是用于定义一些可重用的部分,可以被多个DTS文件共享,提高可重用性。
DTB:DTS和DTSI文件编译得到的二进制文件。可被操作系统解析,在系统运行过程被灵活调用。
DTC:设备树的编译器,把DTS和DTSI文件编译成DTB文件的工具。
设备树编译
dtc -I dts -O dtb -o output.dtb input.dts
编译前确保在scripts/dtc/路径下有dtc编译器
设备树反编译
dtc -I dtb -O dts -o output.dts input.dtb
设备树基本语法
1-根节点((Root Node)
整个设备的起点一般以/开始,后面加花括号
2-子节点
根字节的子项,用于表示具体设备,以下时子节点的数据格式。
3-reg属性
reg = <address size>;
reg = <address1 size1 address2 size2 ...>;
4-address-cells 和 size-cells 属性
node1 {
#address-cells = <1>;
#size-cells = <1>;
node1-child {
reg = <0x02200000 0x4000>;
// 其他属性和子节点的定义
};
};
node1 {
#address-cells = <2>;
#size-cells = <0>;
node1-child {
reg = <0x0000 0x0001>;
// 其他属性和子节点的定义
};
};
#address-cells = <2>表示用两个单位表示地址,#size-cells = <0>表示不用单元表示大小
5- model 属性
my_device {
compatible = "vendor,device";
model = "My Device XYZ";
// 其他属性和子节点的定义
};
6-status 属性
"okay":表示设备或节点正常工作,可用。
"disabled":表示设备或节点被禁用,不可用。
"reserved":表示设备或节点已被保留,暂时不可用。
"fail":表示设备或节点初始化或操作失败,不可用。
7-compatible 属性
my_device {
compatible = "vendor,device";
// 其他属性和子节点的定义
};
8-aliases 节点
aliases {
mmc0 = &sdmmc0;
mmc1 = &sdmmc1;
mmc2 = &sdhci;
serial0 = "/simple@fe000000/seria1@11c500";
};
9-chosen 节点
chosen {
bootargs = "root=/dev/nfs rw nfsroot=192.168.1.1 console=ttyS0,115200";
};
10-device_type 节点
相关文章:
设备树的理解与运用
设备树: 本质是一个文件,包含很多节点,每个节点里边是对设备属性的描述(包括GPIO,时钟,中断等等),其中节点(node)和属性(property)就是设备树最重…...
【AIGC】提示词 Prompt 分享
提示词工程是什么? Prompt engineering(提示词工程)是指在使用语言模型进行生成性任务时,设计和调整输入提示(prompts)以改善模型生成结果的过程。它是一种优化技术,旨在引导模型产生更加准确、…...
【Axure视频教程】取整函数
今天教大家在Axure里如何使用三种不同的取整函数,包括向上取整、向下取整和四舍五入取整。具体效果可以参考下方视频。该教程从0开始制作,手把手教学,无论是新手小白还是有一定基础的同学,都可以学习的哦。 【视频教程——试看版…...
MySQL清空表
当我们需要清空一个表中的所有行时,除了使用 DELETE * FROM table 还可以使用 TRUNCATE TABLE 语句。 如果想要清空一个表, TRUNCATE TABLE 语句比 DELETE语句更加有效。 TRUNCATE TABLE 语法 TRUNCATE TABLE 的语法很简单,如下:…...
使用IDEA创建Vue3通过Vite实现工程化
1、创建Vite项目的分步说明 IntelliJ IDEA与Vite构建工具集成,改善了前端开发体验。Vite 由一个开发服务器和一个构建命令组成。构建服务器通过本机 ES 模块提供源文件。生成命令将代码与汇总捆绑在一起,汇总预配置为输出高度优化的静态资产以供生产。In…...
GitLab使用的最简便方式
GitLab介绍 GitLab是一个基于Git版本控制系统的开源平台,用于代码托管,持续集成,以及协作开发。它提供了一套完整的工具,以帮助开发团队协同工作、管理和部署代码。 往往在企业内部使用gitlab管理代码,记录一下将本地代…...
MySQL数据库20G数据迁移至其他服务器的MySQL库或者云MySQL库
背景:20G的MySQL数据迁移至火山云MySQL库,使用navicat的数据传输工具迁移速度耗费时间过长。 方案一:使用火山云提供的MySQL数据迁移服务(其他大厂应该提供的也有) 方案二:使用数据迁移工具kettle&#x…...
build.gradle配置文件详解
Andorid Studio高版本和低版本的build.gradle配置逻辑有些差异 安卓项目中相关编译文件的介绍 gradle-wrapper.properites:配置Gradle Wrapper gradle.properties:配置Gradle的编译参数。具体配置见Gradle官方文档:com.android.build.gradle | Andro…...
2024拼多多校招面试真题汇总及其解答(二)
6. 【算法题】归并排序 归并排序(Merge Sort)是一种分治算法,它将待排序的序列递归地分成两个子序列,然后将两个有序的子序列合并成一个有序的序列。 归并排序的算法流程如下: 递归地将待排序的序列分成两个子序列,直到每个子序列只有一个元素。将两个有序的子序列合并…...
自动化运维工具Ansible教程(一)【入门篇】
文章目录 前言Ansible 入门到精通入门篇进阶篇精通篇入门篇1. Ansible 简介2. 安装 Ansible1. 通过包管理器安装:2. 通过源码安装: 3. Ansible 的基本概念和核心组件4. 编写和运行第一个 Ansible Playbook5. 主机清单和组织结构主机清单组织结构 6. Ansi…...
计算机毕业设计 微信小程序 uniapp+vue大学生兼职平台
任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,本系统前台采用微信开发者结合后台Java语言设计并实现了…...
JavaScript框架:构建交互性、现代化Web应用的利器
💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 引言 JavaScript框架已…...
数据结构——二分查找法
二分查找法(Binary Search)是一种高效的查找算法,通常用于在已排序的数组或列表中查找特定的目标值。这个算法的基本思想是不断将查找范围缩小为原来的一半,直到找到目标值或确定目标值不存在。 二分查找是一种在每次比较之后将查…...
服务端渲染(SSR):提升Web应用性能和用户体验的关键技术
💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 引言 服务端渲染&#…...
如何工作和生活相平衡?
之前待过一家外企,他们的口号是 Balancing work and life,工作和生活相平衡。辗转几家公司之后,发现这个越来越难了,越来越少的时间投入家庭和自己的生活。 人生的意义 (AI) 人生的意义是一个深奥而复杂的…...
semaphere部署,配置ldap
在处理 Ansible 相关项目时,我们经常面临繁琐的命令行操作,这对于不熟悉命令行的用户来说可能是一个挑战。此外,当项目规模扩大时,跟踪和管理多个 playbook 变得困难,同时缺乏对失败的及时通知和访问控制。这些问题催生…...
Java 泛型 T,E,K,V,?
泛型带来的好处 在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况…...
软件测试技术之地图导航的测试用例
外观测试 屏幕显示不能有花屏、黑点和闪屏,清晰度、亮度、颜色要正常。 检测所有按键都能起到相应作用,是否手感不良。 UI显示状态、颜色、清晰度、效果。 控制:放大,缩小,音量调节功能测试。 交叉路口查询测试&am…...
【C++】常用集合算法
0.前言 1.set_intersection #include <iostream> using namespace std;// 常用集合算法 交集set_intersection #include<vector> #include<algorithm>void myPrint(int val) {cout << val << " "; }void test01() {vector<int>v…...
css flex:1;详解,配合demo效果解答
前言 给设置了display:flex的子组件设置了flex:1;就能让他填满整个容器,如果有多个就平均 flex:1;是另外三个样式属性的简写,等同 flex-grow: 0; flex-shrink: 1; flex-basis: auto;我们就针…...
discuzQ安装
我们开始配置php,安装两个扩展。 在宝塔面板中,单击软件商城->已安装,查找已安装的 PHP 软件。 然后在 php 管理中,单击禁用函数,进入设置页面。 在列表中单击删除函数 putenv、readlink、symlink、shell_exec ,…...
深入解析NLP情感分析技术:从篇章到属性
目录 1. 情感分析概述1.1 什么是情感分析?- 情感分析的定义- 情感分析的应用领域 1.2 为什么情感分析如此重要?- 企业和研究的应用- 社交媒体和公共意见的影响 2. 篇章级情感分析2.1 技术概览- 文本分类的基本概念- 机器学习与深度学习方法- 词嵌入的力量…...
JVM的双亲委派模型
定义与本质: 类加载器用来把类文件加载到JVM内存中。从JDK1.2开始,类加载过程采用双亲委派模型,保证Java平台安全。 父类委托的定义: 一个类加载器在接到加载类请求的时候,首先不会去加载这个类,而是把这个…...
js中如何判断一个变量是否为数字类型?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐使用Number.isNaN()方法⭐使用正则表达式⭐使用isNaN()函数⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个…...
使用阿里PAI DSW部署Stable Diffusion WebUI
进入到网址https://pai.console.aliyun.com/里边。 点击创建实例。 把实例名称填写好,选择GPU规格,然后选择实例名称是ecs.gn6v-c8g1.2xlarge。 选择stable-diffusion-webui-env:pytorch1.13-gpu-py310-cu117-ubuntu22.04,然后点击下一步。…...
redisson使用过程常见问题汇总
文章目录 常见报错1. 配置方式使用错误2. 版本差异报错3. 配置文件中配置了密码或者配置错误4. 字符集和序列化方式配置问题5. Redisson的序列化问题6. 连接池问题:7. Redisson的高可用性问题:8. Redisson的并发问题9. Redisson的性能问题 2. 参考文档 常…...
代码随想录训练营 DP序列
代码随想录训练营 DP序列 718. 最长重复子数组🌸code 674. 最长连续递增序列🌸code 300.最长递增子序列🌸code 最后一题很巧妙,不能单纯的去把DP当作板子题,得思考才能得到最佳方式 718. 最长重复子数组🌸 …...
Datastage部署与使用
Datastage部署与使用 - 码农教程 https://www.cnblogs.com/lanston/category/739553.html Streamsets定时拉取接口数据同步到HBase集群_streamsets api_webmote的博客-CSDN博客 【SDC】StreamSets实战之路-28-实战篇- 使用StreamSets实时采集指定数据目录文件并写入库Kudu_菜…...
【实用工具】Centos 安装ARL灯塔
文章目录 docker 安装安装docker-compose配置镜像加速器ARL安装和启动 docker 安装 yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm yum install docker-ce (若出现无法找到包可能是镜像源问题) 更…...
IP地址定位基础数据采集
在互联网时代,IP地址定位技术已经成为了广泛应用的一项重要技术。无论是用于网络安全、广告投放、市场调研还是用户体验优化,IP地址定位技术都发挥着关键作用。 什么是IP地址定位? IP地址定位是一种技术,它通过IP地址来确定设备…...
wordpress网站搭建/百度域名注册查询
1详细二进制 (主要是用于基本i/o流) #二进制: 1、计算机内部都是2进制 2、数组和ArrayList的区别:ArrayLlsit里面有算法(通用算法,只有当通用算法不行的时候,可以自己写专门算法)…...
长沙做网站建设公司哪家好/美国搜索引擎
依赖关系,可以理解成“USE-A”关系即使用关系。 依赖关系是一种使用关系,如果A类中的某个方法使用了B类对象,那么就可以说A类依赖B类。 class A{ public void f(B b){} } class B{} A类方法的形式参数是B类类型。也就是说A类对象如果要使用方…...
老外做中文网站/软件开发
绘制普通直线,先看效果图: 实现代码如下: <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title></title><script>function drawGraph(id){var canvasdocument.getElementById(id);var contextc…...
服装鞋帽 网站建设/霸屏seo服务
公司有一款产品是基于SNMP进行管理的。所以自己也就摸索着,学习点有关这方面的知识。 有关SnmpTrap的理论知识我就不做介绍了。你可以去百度中找到很多很多有关这方面的介绍。说一下自我对这方面的理解:snmp trap162其实就相当于服务器端,主要…...
钱网站制作/怎么开发一款app软件
前言 恍然间,发现自己在这个行业里已经摸爬滚打了十年了,思绪良多,感慨万千,我的事就不多说了 直接开门见山吧!今天这篇文章主要是给程序员的几个忠告。很多刚刚入行的程序员一入职就开始埋头写程序,敲代…...
太原做网站直通车/淘宝关键词搜索排行榜
正文: 刚体能让你的游戏对象被物理引擎所控制,它能通过受到推力和扭力来实现真实的物理表现效果。所有游戏对象必须包含刚体组件来实现重力、通过脚本施加力、或者与其他对象进行交互,这一切都通过NVIDIA的PhysX物理引擎来实现。 属性 Mas…...