RK3568驱动指南|第八篇 设备树插件-第73章 设备树插件使用实验

news2024/11/17 12:41:53

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】824412014(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第八期_设备树插件_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第73章 设备树插件使用实验

在上一章节中,我们详细介绍了设备树插件的语法和编译过程,为了更好地理解和应用这些知识,本章节将重点关注设备树插件在实际实验操作中的使用方法。让我们开始实际使用设备树插件吧!

73.1 准备实验环境

我们首先烧写网盘资料“iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\65_dtbocfg”目录下的Linux系统镜像,然后将设备树插件dtbocfg.ko拷贝到系统中,最后使用“insmod dtbocfg.ko”命令加载驱动,如下(图 73-1)所示:

图 73-1

然后输入命令cat proc/filesystems检查configfs是否挂载成功。挂载成功如下(图 73-2)所示:

图 73-2

73.2设备树插件的使用

在上一个小节中,我们烧写了支持设备树插件的内核镜像,并且加载了dtbocfg.ko。在此基础上,本小节来讲述如何使用设备树插件。

在上一章节中,我们编写了overlay.dts。 在overlay.dts中,rk-485-ctl节点下添加新的节点overlay_node节点,如下(图 73-3)所示:

图 73-3

  使用dtc编译器编译得到dtbo文件,并将dtbo拷贝到开发板上。

/home/topeet/Linux/linux_sdk/kernel/scripts/dtc/dtc -I dts -O dtb overlay.dts -o overlay.dtbo

 

图 73-4

我们将编译好的dtbo文件拷贝到开发板上,如下图(图 73-5)所示:

图 73-5

我们进到系统/sys/kernel/config/device-tree/overlays/(这个目录需要加载设备树插件才会生成)目录下。如下图(图 73-6)所示:

 

图 73-6

在这个目录下使用以下命令创建一个内核对象,如下图(图 73-7)所示:

mkdir test

 

图 73-7

使用命令cd test进到test文件夹,如下图(图 73-8)所示:

 

图 73-8

使用以下命令写入dtbo中,如下图(图 73-9)所示:

cat /overlay.dtbo > dtbo

 

图 73-9

使用以下命令使能dtbo,如下图(图 73-10)所示:

echo 1 > status

图 73-10

此时我们可以使用以下命令看到加载的节点。

ls /proc/device-tree/rk-485-ctl/overlay_node/

图 73-11

如果我们想删掉使用dtbo修改的节点,在/sys/kernel/config/device-tree/overlays下使用“rmdir test”即可。如下图(图 73-12)所示:

图 73-12

此时我们可以使用命令“ls /proc/device-tree/rk-485-ctl/”查看,已经看不到添加的overlay_node节点了。

 图 73-13

73.3加载多个dtbo

我们准备第二个dtbo文件,修改overlay_node节点中的status属性。如下(图 73-14)所示:

图 73-14

在这个目录下使用命令mkdir test1创建一个内核对象。如下图(图 73-15)所示:

图 73-15

使用命令“cd test”进到test1文件夹,如下图(图 73-16)所示:

图 73-16

使用命令“cat /overlay2.dtbo > dtbo”写进dtbo中,如下图(图 73-17)所示:

图 73-17

使用命令“echo 1 > status”使用dtbo,如下图(图 73-18)所示:

图 73-18

此时我们可以使用命令“cat /proc/device-tree/rk-485-ctl/overlay_node/status”看到属性值已经被修改了过来,如下图(图 73-19)所示:

图 73-19

删除test1文件夹,如下图(图 73-20)所示:

图 73-20

可以看到status的属性值已经被修改了回来,如下图(图 73-21)所示:

图 73-21


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

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

相关文章

针对String、StringBuffer、Stringbuilder区别及使用场景

可变性(Mutability): String: 字符串是不可变的。一旦创建了一个字符串对象,它的值就不能被修改。任何对字符串的操作实际上都是创建了一个新的字符串对象。 StringBuilder: 字符串生成器,是可…

希尔伯特变换-matlab仿真

希尔伯特变换(hilbert transform)简介 在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少…

node fs模板及蓝桥案例实战

文章目录 介绍文件写入writeFile 异步写入writeFileSync 同步写入appendFile / appendFileSync 追加写入createWriteStream 流式写入 文件读取readFile 异步读取readFileSync 同步读取createReadStream 流式读取 文件移动与重命名文件删除文件夹操作mkdir / mkdirSync 创建文件…

DNS/ICMP协议、NAT技术

目录 DNS协议DNS背景域名简介 ICMP协议ICMP功能ping命令traceroute命令 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术的缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS协议 DNS(Domain Name System,域名系统)协议&…

【送书福利-第二十八期】《从概念到现实:ChatGPT和Midjourney的设计之旅》

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

软件测试之银行测试详解

一、金融类软件测试 举个栗子,银行里的软件测试工程师。横向跟互联网公司里的测试来说,薪资相对稳定,加班的话想对来说没那么多(有些银行加班也挺严重的),但业务稳定。实在是测试类岗位中的香饽饽&#xf…

实现简单的操作服务器和客户端(上)

一、说明 描述:本教程介绍如何使用 simple_action_server 库创建斐波那契动作服务器。此示例操作服务器生成斐波那契序列,目标是序列的顺序,反馈是计算的序列,结果是最终序列。 内容 创建操作消息编写一个简单的服务器 代码

没搞懂二维差分是什么怎么办???

摸鱼的时候画的,根据公式反推 一维差分倒是懂了 a[10]{1,2,6,9,11,12,17,21,32,67}; c[10]{1,1,4,3,2,1,5,4,11,35}; 现要把[3,7]的值都增加3 c[10]{1,1,7,3,2,1,5,1,11,35}; 要查询的时候再用for循环相加 结论:成立且适用于多次修改 不知道为什么这个…

Praat脚本-038 | 批量替换标注TextGrid里的换行符

目录 引题获取脚本运行脚本知识引申关注版权说明 引题 我们在做标注的时候,可能会犯这样一个小错误,就是在标注的内容中间不小心进行了换行,大概会成为这个样子。 这样会有什么问题呢?在提取数据的时候,你会发现&…

【数据结构】堆(C语言)

今天我们来学习堆,它也是二叉树的一种(我滴神树!) 目录 堆的介绍:堆的代码实现:堆的结构体创建:堆的初始化:堆的销毁:堆的push:堆的pop:判空 &am…

AI创作工具:Claude2注册保姆级教程

最近软件打算多接入几个AI写作平台,包括讯飞星火,百度文心,Claude2,这样就能给用户提供更多的写作选择 经过半天的调研,讯飞星火,百度文心一言,接入都比较简单,毕竟是国内的。 在调…

鸿蒙HarmonyOS 编辑器 下载 安装

好 各位 之前的文章 注册并实名认证华为开发者账号 我们基实名注册了华为的开发者账号 我们可以访问官网 https://developer.harmonyos.com/cn/develop/deveco-studio 在这里 直接就有我们编辑器的下载按钮 我们直接点击立即下载 这里 我们根据自己的系统选择要下载的系统 例…

关于pytorch以及相关包的安装教程

一.查看自己电脑的配置 首先查看自己电脑的cuda的版本,WinR,敲入cmd打开终端 输入nvidia-smi,查看自己电脑的显卡等配置 这里要说明一下关于这个CUDA,它具有向后兼容性,这意味着支持较低版本的 CUDA 的应用程序通常也可以在较高版本的 CUD…

虚拟机VMware客户机隔离灰色如何解决||实现本机复制粘贴到虚拟机

前言:本次镜像为win10,其他操作系统也欢迎尝试 现象:虚拟机设置选项不可编辑,且是否勾选都无法实现复制粘贴 可能存在的问题解决方案 Q1:未安装虚拟机工具:VMware Tools A1:安装工具&#xff…

Python基础教程之循环结构详解,循环结构逻辑解析。

文章目录 前言一、While循环二、While…else…循环三、for循环四、for…else…循环五、循环体结束语句六、嵌套循环关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③…

C#,《小白学程序》第五课:队列(Queue)其一,排队的技术与算法

日常生活中常见的排队&#xff0c;软件怎么体现呢&#xff1f; 排队的基本原则是&#xff1a;先到先得&#xff0c;先到先吃&#xff0c;先进先出 1 文本格式 /// <summary> /// 《小白学程序》第五课&#xff1a;队列&#xff08;Queue&#xff09; /// 日常生活中常见…

01_原理-事件循环

01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①&#xff1a;何为进程&#xff1f;②&#xff1a;何为线程&#xff1f;③&#xff1a;浏览器有哪些进程和线程&#xff1f; 二、渲染主线程是如何工作的&#xff1f;三、若干解释①&#xff1a;何为异步&…

人力资源管理后台 === 基础环境+登陆

目录 1.人力资源项目介绍 1.1 项目架构和解决方案 1.2 课程安排 1.3 课程具备能力 1.4 课程地址 2. 拉取项目基础代码 3.项目目录和入口文件介绍 4.App.vue根组件解析 5.基础设置settings.js和导航守卫permission.js 6.Vuex的结构 7.使用模板中的Icon图标 8.扩展…

【Web】NewStarCtf Week2 个人复现

目录 ①游戏高手 ②include 0。0 ③ez_sql ④Unserialize&#xff1f; ⑤Upload again! ⑥ R!!C!!E!! ①游戏高手 经典前端js小游戏 检索与分数相关的变量 控制台直接修改分数拿到flag ②include 0。0 禁了base64和rot13 尝试过包含/var/log/apache/access.log,ph…

了解抽象思维的应用与实践

目录 一、快速了解抽象思维 &#xff08;一&#xff09;抽象思维的本质理解 &#xff08;二&#xff09;系统架构中的重要性 &#xff08;三&#xff09;软件开发中抽象的基本过程思考 意识和手段 抽象的方式 抽象层次的权衡 二、业务中的应用实践 &#xff08;一&…