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

瑞芯微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.hqwc.cn/news/217477.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要隐藏id地址?使用IP代理技术可以实现吗?

随着网络技术的不断发展,越来越多的人开始意识到保护个人隐私的重要性。其中,隐藏自己的IP地址已经成为了一种常见的保护措施。那么,为什么要隐藏IP地址?使用IP代理技术可以实现吗?下面就一起来探讨这些问题。 首先&am…

flask依据现有的库表快速生成flask实体类

flask依据现有的库表快速生成flask实体类 在实际开发过程中,flask的sqlalchemy对应的model类写起来重复性较强,如果表比较多会比较繁琐,这个时候可以使用 flask-sqlacodegen 来快速的生成model程序或者py文件,以下是简单的示例&a…

安捷伦E4404B频谱分析仪,100 Hz 至 6.7 GHz

E4404B是安捷伦ESA-E系列频谱分析仪,它是一款能够适应未来发展需求的中高端频谱分析仪解决方案。该系列在频谱分析仪的测量速度、动态范围、精度和功率分辨能力等方面,都为类似价位的产品树立了性能标杆。其灵活的平台设计使得研发、制造和现场服务工程师…

提高工作效率的宝藏网站和宝藏工具(高级版)

一、参考资料 亲测:你这些网站都不知道,哪来时间去摸鱼? 提高工作效率的宝藏网站和宝藏工具(基础版) 二、好用的网站 HelloGitHub - 开源项目平台 HelloGitHub 是一个分享有趣、 入门级开源项目的平台。 希望大家能…

Kafka系列 - 生产者客户端架构以及3个重要参数

整体架构 整个生产者客户端由两个县城协调运行,这两个线程分别为主线程和Sender线程(发送线程)。 主线程中由KafkaProducer创建消息,然后通过可能的拦截器,序列化器和分区器之后缓存到消息累加器(RecordAc…

Python+Appium自动化测试-编写自动化脚本

一,连接测试手机,获取测试机及被测APP配置 配置信息如下: {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "c…

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

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

动态规划学习——子序列问题

目录 ​编辑 一,最长定差子序列 1.题目 2,题目接口 3,解题思路及其代码 一,最长定差子序列 1.题目 给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列…

yolov5利用yaml文件生成模型

一、yolov5的yaml文件构成 yaml文件如下图 不论是backbone还是head,每一行都由一个列表组成,列表里面有四个元素,另外,还有两个参数depth和width。在搭建模型的时候,会利用每一行的信息生成一个模块,并按照…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…

matlab不用sawtooth,自己写代码实现锯齿波/三角波

matlab自己写代码实现锯齿波/三角波 为什么要自己写代码&#xff0c;不用现成的函数sawtooth&#xff1f; 函数sawtooth的采样频率是固定的&#xff0c;也就是给定一个时间段&#xff0c;只能按照固定的频率取点。比如10s内&#xff0c;每1s取一个点。这样就得到了1s 2s 3s……

VSCode 警告:v-on event ‘@toggleClick‘ must be hyphenated

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…