【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十一章 添加设备树节点

news2024/9/24 5:24:00

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、

【公众号】迅为电子

【粉丝群】258811263


第五十一章 加设备树节点

本章导读

在上一章节已经对 DTS 的语法做了比较详细的介绍,在本节中根据前面讲解的语法,从头到尾编写一个小型的设备树文件。我们会以一个虚拟的设备作为参考,提前假设一些外部设备和功能。当然这个虚拟的设备没有任何的意思,只是为了复习掌握前面学习的设备树语法。在实际产品的开发过程中,我们不需要从头编写一个 dts 设备树文件,一般都是使用 soc 厂商提供的 dts 文件,我们只需要根据自己的实际情况修改添加自己的内容即可。

本章内容对应视频讲解链接(在线观看):

在设备树种添加自定义节点  https://www.bilibili.com/video/BV1Vy4y1B7ta?p=26

51.1 查看设备树节点方法

我们以iMX8MM开发板为例,打开内核源码arch/arm64/boot/dts/rockchip/目录,如下所示:

 

输入命令编辑设备树文件

vi itop8mm-evk.dtsi

 

打开文件后,我们首先找到根节点,如下图所示:

我们可以在根节点的末尾准备添加设备节点,那么我们怎么来验证自己添加设备节点成功了呢?设备树可以在linux系统里面以文件或者是目录的形式表示出来,这里有两种方法。

方法一,我们进入到开发板的/proc/device-tree/目录下,如下图所示

cd /proc/device-tree

ls

 

比如说,我们想要查看根节点下的“model”“compatible”,输入以下命令 

cat model
cat compatible

 

接下来我们可以用这种方法来验证在设备树文件里面我们是否成功添加了自己的节点。

方法二,我们也可以进入开发板的/sys/firmware/devicetree/base/目录下,如下图所示:

cd /sys/firmware/devicetree/base/

ls

 

51.2 添加自定义节点

在设备树文件itop8mm-evk.dtsi文件中根节点添加自定义的节点,如下图所示,添加完保存退出。

注意,添加自定义节点前要注释掉冲突使用的设备。添加完保存文件并退出,接下来编译设备树文件。

51.3 编译设备树文件

如果环境没有dtc工具,需要安装dtc工具。输入以下命令安装dtc工具:

apt-get install device-tree-compiler

具体编译步骤可以参考IMX8MM开发板使用手册源码编译章节。

51.4 运行测试

将编译生成的设备树文件烧写到开发板上面,开发板启动后进入/proc/device-tree目录下,如下图所示:

cd /proc/device-tree

输入以下命令查看test节点信息,如下图所示:

cd test

cat compatibel

 

51.4.1 验证结论

我们修改设备树文件itop8mm-evk.dtsi为下图所示,验证两个结论

1 通过节点的引用来修改原来节点里面的内容

2通过节点的引用往原来的节点里面添加内容

我们添加了节点引用“status = “okay”,并且重新赋值给compatible为“test1234”。

 

修改完设备树文件,然后编译烧写到开发板上面进入/proc/device-tree目录下,如下图所示:

cd /proc/device-tree

cd test

cat compatibel

cat status

由上图可知,我们验证的两个结论完全正确,已经可以查看到覆盖掉的compatible属性显示“test1234”,可以查到status属性的状态为“okay”。

 

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

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

相关文章

利用Django和Ansible实现自动化部署

在软件开发的快节奏世界中,自动化部署是提高开发效率和确保软件质量的关键。Django是一个功能强大的Python Web框架,它允许开发者快速构建安全、可扩展的Web应用。Ansible则是一个简单且强大的自动化工具,它可以用于配置系统、部署软件以及执…

通信原理思科实验四:静态路由项配置实验

实验四 静态路由项配置实验 一:实验内容 二:实验目的 三、实验原理 四、实验步骤 选择三个2811型号的路由器 R1、R2、R3 路由器默认只有两个快速以太网接口,为路由器R1和R3增加快速以太网接口模块NM-1FE-TX,安装后检查路由器的接…

一番赏小程序搭建,线上一番赏市场

一番赏作为一个经久不衰的潮流市场,一直流行于消费者市场中。一番赏商品拥有不同系列,涵盖了热门动漫、漫画、影视等主题,商品包含了手办等周边商品,具有非常大的收藏价值。相比于其他潮玩模式,一番赏的性价比更高&…

Mindspore框架循环神经网络RNN模型实现情感分类|(四)损失函数与优化器

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|(一)IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|(二)预训练词向量 Mindspore框架循环神经网络RNN模型实现…

DASCTF-BabyAndroid

一个apk文件 下载下运行不出来 题目有提示 这是截取的信息 第一次写,我就按照大佬的wp思路来 首先我们确定 Host: yuanshen.com 这个信息 jeb打开,搜索 成功锁定到有价值的信息 protected String doInBackground(String[] params) {String contentText params[0];try {…

day20算法

一、算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂,结构是程序设计的肉体 算法:计算机解决问题的方法或步骤 1.1 算法的特性 1> 确定性:算法中每一条语句都有确定的含义,不能模棱两可 2> 有穷性&#xf…

ModuleNotFoundError: No module named ‘scrapy.utils.reqser‘

在scrapy中使用scrapy-rabbitmq-scheduler会出现报错 ModuleNotFoundError: No module named scrapy.utils.reqser原因是新的版本的scrapy已经摒弃了该方法,但是scrapy-rabbitmq-scheduler 没有及时的更新,所以此时有两种解决方法 方法一.将scrapy回退至旧版本,找到对应的旧版…

提取集合中元素的某个属性组成String类型的集合,并且属性的值要非null,最后拼接该String类型的集合得到字符串

一、String类型的集合拼接得到字符串 方法一: 使用的是Java 8或更高版本,可以使用String.join()方法,这个方法可以非常方便地将一个集合中的元素拼接成一个字符串,并允许你指定分隔符。 import java.util.ArrayList; import j…

认识神经网络【多层感知器数学原理】

文章目录 1、什么是神经网络2、人工神经网络3、多层感知器3.1、输入层3.2、隐藏层3.2.1、隐藏层 13.2.2、隐藏层 2 3.3、输出层3.4、前向传播3.4.1、加权和⭐3.4.2、激活函数 3.5、反向传播3.5.1、计算梯度3.5.2、更新权重和偏置 4、小结 🍃作者介绍:双非…

微信小程序实现聊天界面,发送功能

.wxml <scroll-view scroll-y"true" style"height: {{windowHeight}}px;"><view wx:for"{{chatList}}" wx:for-index"index" wx:for-item"item" style"padding-top:{{index0?30:0}}rpx"><!-- 左…

Qt基础 | QSqlTableModel 的使用

文章目录 一、QSqlTableModel 的使用1.主窗口MainWindow类定义2.构造函数3.打开数据表3.1 添加 SQLite 数据库驱动、设置数据库名称、打开数据库3.2 数据模型设置、选择模型、自定义代理组件、界面组件与模型数据字段间的数据映射 4.添加、插入与删除记录5.保存与取消修改6.设置…

TikTok Shop全托管上线JIT,并预计10月开放西班牙和爱尔兰站点

据悉&#xff0c;TikTok Shop官方近期在其全托管平台上正式推出了JIT&#xff08;Just-In-Time&#xff09;生产模式&#xff0c;这一创新举措彻底颠覆了传统供应链流程&#xff0c;实现了“先有订单&#xff0c;再精准供货”的高效运营模式。对于广大卖家而言&#xff0c;这无…

网络安全基础知识及安全意识培训(73页可编辑PPT)

引言&#xff1a;在当今数字化时代&#xff0c;网络安全已成为企业和个人不可忽视的重要议题。随着互联网的普及和技术的飞速发展&#xff0c;网络威胁日益复杂多变&#xff0c;从简单的病毒传播到高级持续性威胁&#xff08;APT&#xff09;、勒索软件攻击、数据泄露等&#x…

汇川技术|中型PLC网络组态、CPU配置、使用技巧

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 今天学习InoProShop网络组态架构&#xff0c;熟悉Modbus和ModbusTCP网络编辑器的使用&#xff0c;并了解网络组态和相关功能使用技巧。 以下为学习笔记。 01 网络组态 1.1、支持总线 从总线视图上可以看出&#xff0c…

4、Python+MySQL+Flask的文件管理系统【附源码,运行简单】

4、PythonMySQLFlask的文件管理系统【附源码&#xff0c;运行简单】 总览 1、《文件管理系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 登录2.2 注册2.3 个人中心界面2.4 文件上传界面2.5 其他功能贴图 3、下载 总览 自己做的项目&#xff0c;禁止转载&#xff0c…

Android --- ContentProvider 内容提供者

理论知识 ContentProvider 是 Android中用于数据共享的机制&#xff0c;主要是用于进程间(App之间)。 如何进行数据共享&#xff1f; 内容提供者 ContentProvider 提供数据&#xff0c;需要继承这个类,&#xff0c;并重写其中的增删改查方法。 继承 ContentProvider 类并重写增…

麦歌恩MT6521-第三代汽车磁性角度传感器芯片

磁性编码芯片 -在线编程角度位置IC 描述&#xff1a; MT6521是麦歌恩微电子推出的新一代基于水平霍尔及聚磁片(IMC)技术原理的磁性角度和位置检测传感器芯片。该芯片内部包含了两对互成90放置的水平霍尔阵列及聚磁片&#xff0c;能够根据不同的型号配置来实现对XY&#xff0…

FPGA开发——偶数分频器的设计

一、概述 1、我们在日常进行FPGA的开发之中&#xff0c;会根据需求的不同设计不同的功能实现&#xff0c;这就需要不同的分频信号&#xff0c;而分频的思想在我们的日常开发中显得尤为重要。用通俗易懂的说法表示分频就是对计数器进行一个进一步设计从而达到不同的分频器的思想…

探索PyMuPDF:Python中的强大PDF处理库

探索PyMuPDF&#xff1a;Python中的强大PDF处理库 背景&#xff1a;为何选择PyMuPDF 在数字化时代&#xff0c;PDF文件因其跨平台的兼容性和对格式的严格保持而成为文档交换的通用格式。然而&#xff0c;处理PDF文件往往需要专门的工具或库。这就是PyMuPDF库的用武之地。PyMuP…

【JAVA开发笔记】Reids下载、安装、配置-Windows篇(超详细,含Redis可视化管理工具!!!)

目录 1. Redis 简介 2. 下载 Redis 安装包 3. 开启 Redis 服务 4. 配置环境变量 5. Redis 服务注册为系统服务 6. Redis 服务测试和简单使用 7. 下载安装 Redis 管理工具 8. 管理工具连接 Redis 服务器 1. Redis 简介 Redis&#xff08;Remote Dictionary Server&…