RK3568驱动指南|第八篇 设备树插件-第83章 设备树插件驱动分析实验

瑞芯微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主板


第83章 设备树插件驱动分析实验

在上个章节中,我们成功移植了设备树插件驱动,而在本章节中,我们将深入研究设备树驱动的分析过程。

大家有了configfs虚拟文件系统数据结构的基础以后,现在分析设备树插件的驱动就非常容易了。

网盘资料“iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\65_dtbocfg”dtbocfg.c为设备树插件驱动文件。

在驱动文件中,生成device-tree/overlays目录结构,如下图(图 83-1)所示:

图 83-1

在dtbocfg_overlays_type中实现了ct_group_ops下的make_item和drop_item。如下图(图 83-2)所示:

图 83-2

在命令行输入mkdir命令会去执行的函数,如下图(图 83-3)所示:

图 83-3

在dtbocfg_overlay_item_type中实现了attrs和bin_attrs和ct_item_ops,如下图(图 83-4)所示:

图 83-4

定义了dtbocfg_overlay_item_attr_dtbo结构体。实现了dtbocfg_overlay_item_dtbo_read和dtbocfg_overlay_item_dtbo_write函数,如下图(图 83-5)所示:

图 83-5

重点看当给status写1的时候会发生什么事情,如下图(图 83-6)所示:

图 83-6

当status写入1的时,会执行dtbocfg_overlay_item_create函数。在这个函数中又去执行了of_overlay_fdt_apply函数。of_overlay_fdt_apply函数如下图(图 83-7)所示:

图 83-7

设备树插件(dtbo)里面的节点也要被转换成device_node,有的device_node也要被转换成platform_device。不过在进行转换之前,of_overlay_fdt_apply函数会先创建一个改变集。然后根据这个改变集去进行修改。

创建改变集的目的是为了方便对设备树进行修改和复原。设备树是一种静态的数据结构,一旦被编译和加载到内核中,就难以直接修改。为了解决这个问题,设备树覆盖功能引入了改变集的概念。

改变集是一个描述设备树变化的数据结构,它记录了对设备树的修改操作,如添加、删除或修改节点。通过创建改变集,我们可以在运行时对设备树进行动态修改,而无需修改原始的设备树源文件。

通过创建改变集,我们可以方便地定义需要进行的修改操作,而不必直接操作设备树的底层结构。这提供了一种高层次的抽象,使我们能够以更简洁和可读的方式描述设备树的变化。同时,改变集也可以被保存、传递和应用到其他设备树上,方便在不同系统或环境中进行设备树的配置和定制。

此外,改变集还可以用于设备树的复原。在某些情况下,我们可能需要在运行时撤销对设备树的修改并恢复到原始状态。通过应用反向的改变集,我们可以还原设备树,使其回到修改之前的状态,实现修改的复原。

因此,创建改变集提供了一种方便、可控和可复原的方式来修改设备树,使设备树的管理和配置更加灵活和可靠。


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

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

相关文章

IDEA 控制台中文出现乱码问题解决

一、问题概述 请看下图 二、问题分析 IDEA控制台输出乱码一般会有三种来源: ① IDEA本身编码错误 ② Tomcat日志输出编码错误 ③ 项目本身原因。 终极原因:IDEA编码和Tomcat编码不一致,统一设置为UTF-8即可。 三、解决思路 修改…

C++中的左值,右值和移动语义详解

左值,右值与移动语义 左值表示了一个占据内存中某个可识别位置的对象。右值是无法寻址的临时对象或表达式的值。左值可以隐式地转换为右值,而右值不可。右值可以显式地赋值给左值。赋值运算符、取地址符、内置解引用运算符、下标运算符、内置类型和迭代…

跨域怎么解决

跨域解决主要有以下⼏种: JSONP CORS Nginx代理 document.domain window.name postMessageiframe 1.JSONP 我们知道写 HTML 代码的时候,加⼊图⽚链接就不会有获取不到图⽚的问题。这是因为图 ⽚资源并没有进⾏ ajax 请求,⽽且 script…

Superset二次开发之环境部署(Windows版)

本地环境版本介绍: 编号 名称 版本 1supersetv3.0.0rc32Pythonv3.10.123Nodev16.20.24npmv8.19.45Anacondav3 1.下载源码 #下载源码 git clone https://github.com/apache/superset.git ##速度慢可替换为 https://gitclone.com/github.com/apache/superset.git #进入项目目录…

前端性能优化四十七:工程目录设计范式种类

1. 模块化: ①. 将一个复杂应用根据预设规范封装为多个块并组合起来:a. 对内实现数据私有化b. 对外暴露接口、其它模块通信②. 在前端工程化具体体现:a. 在文件层面上对代码与资源实现拆分与组装b. 将一个大文件拆分为互相依赖的小文件,再统一拼装与加载1. 工程目录设计范式种…

搜维尔科技:Geomagic Phantom Premium 1.5六自由度力反馈设备开箱测试!

搜维尔科技:Geomagic Phantom Premium 1.5六自由度力反馈设备开箱测试! Geomagic Phantom系列产品中首屈一指的力反馈产品Phantom Premium 六自由度力反馈设备(原Sensable)能够提供高度精确的3D对象操作,使用户能够探索…

在Go中解析HTTP请求中的表单数据

想象一下,你收到了一封神秘的信件,信上写着:“在HTTP请求的表单数据中,隐藏着一座宝藏,等待勇敢的冒险者前来寻找。” 你知道,这封信正是冲着你来的!今天,我们将使用Go语言作为我们的…

VMware17Pro虚拟机安装Linux CentOS 7.9(龙蜥)教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装Linux4.1 新建虚拟机4.2 安装操作系统4.2.1 选择 ISO 映像文件4.2.2 开启虚拟机4.2.3 选择语言4.2.4 软件选择4.2.5 禁用KDUMP4.2.6 安装位置配置4.2.7 网络和主机名配置…

GBASE南大通用数据库分享访问多个数据库的 SQL 语句

您可跨数据库和跨数据库服务器实例运行下列 SQL 语句: • CREATE DATABASE • CREATE SYNONYM • CREATE VIEW • DATABASE • DELETE • DROP DATABASE • EXECUTE FUNCTION • EXECUTE PROCEDURE • INFO • INSERT • LOAD • LOCK TABLE • MERGE • SE…

web自动化测试的智能革命:AI如何推动软件质量保证的未来

首先这个标题不是我取的,是我喂了关键字让AI给取的,果然非常的标题党,让人印象深刻,另外题图也是AI自动生成的。 先简单回顾一下web自动化测试的一些发展阶段 QTP时代 很多年前QTP横空出世的时候,没有人会怀疑这种工…

java判断时间是否为节假日(或指定的日期),是的话返回true,否返回false

这个方法属实有点老套,先定义set,需要手动输入要判断的时间才行。 这个代码,就是输入一个日期,来判断这个日期是否为你指定的日期。如果是的话,返回true,否的话返回false。 代码: package Lx…

软考高级考完了,怎么评职称?

每年考试结束后,总有朋友问我,考完后怎么才能评上职称呢?获得证书就意味着获得了职称吗?让我们一起来看看具体情况吧! 01\职称获取途径 获得职称可以通过认定、评审、国家统一考试(以考代评)、职业资格对应等多种方式…

轻松设置CentOS IP地址的最终指南:详细的分步说明

轻松设置CentOS IP地址的最终指南 一、引言二、准备工作三、手动设置IP地址四、自动分配IP地址(DHCP)五、使用网络管理工具设置IP地址5.1、使用nmtui工具进行图形化设置5.2、使用nmcli命令行工具进行设置 六、常见问题和解决方案七、总结 一、引言 CentOS操作系统是一种基于Li…

【华为OD机试真题2023CD卷 JAVAJS】电脑病毒感染

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 电脑病毒感染 知识点广搜 题目描述: 一个局域网内有很多台电脑,分别标注为0 - N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。 其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需…

mysql怎么只允许指定IP访问

要查看MySQL数据库中连接成功的历史IP地址,你可以查询MySQL的日志文件或使用以下SQL查询来获取相关信息: 查看MySQL的日志文件: 打开MySQL配置文件,找到log-bin参数。该参数用于启用二进制日志(Binary Logging&#x…

LLM(八)| Gemini语言能力深度观察

论文地址:https://simg.baai.ac.cn/paperfile/fc2138ce-cadb-4a36-b9f7-c4000dea3369.pdf 谷歌最近发布的Gemini系列模型是第一个在各种任务与OpenAI GPT系列相媲美的模型。在本文中,作者对Gemini的语言能力做了深入的探索,做出了两方面的贡献…

服务案例|CIS数据库故障问题

一、告警通知 12月20日凌晨,平台收到某三甲医院告警通知,显示核心业务CIS系统数据库tempdb实例日志文件剩余空间不足。 查看告警详情页,显示tempbd日志文件使用率在凌晨1:30后异常增高。 一个小tip tempdb是SQL Server实例的系统数据库&…

NC(65)元数据增加字段

以报销单主表er_bxzb表为例,增加15个字段字段以及两个其他业务所需字段 1、先在er_bxzb增加字段 增加字段 alter table er_bxzb add no_invoice char(1) default(N);alter table er_bxzb add is_enabled_taxation_cloud char(1) default(N);alter table er_bxzb a…

云服务器的优势

云服务器的优势 裸机云服务器,拥有物理机同样的性能和安全,也具有云主机的灵活和弹性。其最显著的优势在于,用户能够直接控制服务器及其资源,这一点与虚拟化云实例有明显区别,后者会将底层硬件操作对用户进行隐藏。此外…