RK3568驱动指南|第九篇 设备模型-第106章 为什么注册总线之前要先注册设备实例分析实验

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


第106章 为什么注册总线之前要先注册设备实例分析实验

在上个章节中,我们详细分析了设备如何注册到总线上的过程,其中包括 platform 设备的注册。但在注册 platform 设备之前,会先调用 device_register() 函数注册一个 platform bus 设备。

为了更好地理解这一过程,需要了解 platform 总线的特性。在 Linux 内核中,platform 总线是一种特殊的总线类型,用于管理与硬件平台紧密相关的设备。它提供了一种机制,使得与特定硬件平台相关的设备能够在系统中得到正确的识别和初始化。

在注册 platform 总线之前,需要先注册一个 platform bus 设备。这个 platform bus 设备充当了 platform 总线的代表,它是 platform 总线与设备之间的桥梁。通过注册 platform bus 设备,系统可以识别到 platform 总线的存在,并为后续的 platform 设备注册提供必要的基础。

通过调用 device_register() 函数注册 platform bus 设备,可以将其添加到设备层次结构中,并与 platform 总线相关联。这样,当 platform 总线初始化时,它可以找到并识别这个 platform bus 设备,进而完成 platform 设备的注册和管理。

接下来我们从代码的层面进行分析这个问题。

platform_bus_init函数如下图所示:

图106-1

先调用device_register函数注册paltform_bus这个设备,会在/sys/devices目录下创建目录/sys/devices/platform,此目录所有platform设备的父目录,即所有platform_device设备都会在/sys/devices/platform下创建子目录,如下图所示:

图106-2

创建好platform bus设备之后,使用platform_device_add函数将platform_device结构体添加到platform总线中进行注册,代码实现如下所示:

图106-3

至此,注册总线之前要先注册设备实验分析完毕。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分析可被划分为4个重要的类别

1、描述型:发生了什么? 全面、准确、实时的数据有效的可视化 2、诊断型:为什么会发生? 能够深入了解问题的根本原因隔离所有混淆信息的能力 3、预测型:可能发生什么? 通过历史数据来预测特定的结果通过…

中国5米分辨率坡度数据

中国5米分辨率坡度数据 坡度是地表单元陡缓的程度,通常把坡面的垂直高度和水平距离的比值称为坡度。坡度的表示方法有百分比法、度数法、密位法和分数法四种,其中以百分比法和度数法较为常用。 中国5米分辨率坡度数据集,利用5米分辨率DEM数据…

【C初阶——指针1】鹏哥C语言系列文章,基本语法知识全面讲解——指针(1)

长城之上是千亿的星空,星空之上是不畏的守望。 本文由睡觉待开机原创,转载请注明出处。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 文章目录 前言1.内存和地址2.指针变量和地址2.1指针…

探索LinkedIn:使用TypeScript和jsdom库的高级内容下载器

概述 LinkedIn是一个专业的社交网络平台,拥有超过7亿的用户和数以亿计的职位、公司和教育机构的信息。对于数据分析师、市场营销人员、招聘人员和其他对LinkedIn数据感兴趣的人来说,能够从LinkedIn上获取和分析这些信息是非常有价值的。 因此&#xff0…

java设计模式学习之【策略模式】

文章目录 引言策略模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用计算示例代码地址 引言 设想你正在玩一个策略游戏,每一个决策都会导致不同的游戏结局。同样地,在软件开发中,我们常常需要根据不同的场景或条件选择不同…

centos7.9安装ftp服务(vsftpd)

准备工作 1、centos 卸载vsftpd 删除原有的vsftpd [rootlocalhost ~]# systemctl stop vsftpd [rootlocalhost ~]# rpm -aq vsftpd [rootlocalhost ~]# rpm -aq vsftpd [rootlocalhost ~]# vsftpd-2.0.5-16.el5_5.1 2、验证是否删除完成warning: /etc/vsftpd/user_list sa…

【管理】如何正确与员工沟通

目录 一、沟通5个层次二、沟通4个要素三、沟通5个技巧系列文章版本记录 一、沟通5个层次 1、我不说你不问距离 2、我问了你不说隔阂 3、我问了你说了尊重 4、你想说我想问默契 5、我不问你说了信任 二、沟通4个要素 1先讲对方想听的话 2再讲对方听得进的话 3然后讲你应该讲的话…

Windows 下用 C++ 调用 Python

文章目录 Part.I IntroductionChap.I InformationChap.II 预备知识 Part.II 语法Chap.I PyRun_SimpleStringChap.II C / Python 变量之间的相互转换 Part.III 实例Chap.I 文件内容Chap.II 基于 Visual Studio IDEChap.III 基于 cmakeChap.IV 运行结果 Part.IV 可能出现的问题Ch…

银河麒麟桌面版开机后网络无法自动链接

下载并上传nm_3.0.1-1kylin77_arm64.deb 包。 下载链接:链接: https://pan.baidu.com/s/1rGPD8qJfjRui6lCC6QjHVw?pwdeeaf 提取码: eeaf 使用管理员命令运行安装sudo dpkg -i nm_3.0.1-1kylin77_arm64.deb 然后运行重启网卡命令sudo systemctl restart NetworkM…

react / antd ProTable - 高级表格 合并行,子表头

ProTable - 高级表格 合并行,以及ProTable的用法 key React.key 确定这个列的唯一值,一般用于 dataIndex 重复的情况 dataIndex React.key | React.key[] 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b valueType ProFieldValueType 数据的渲染方式,我们自带了一部…

《深入理解C++11:C++11新特性解析与应用》笔记六

第六章 提高性能及操作硬件的能力 6.1 常量表达式 6.1.1 运行时常量性与编译时常量性 大多数情况下,const描述的是运行时常量性,也即是运行时数据的不可更改性。但有时候我们需要的却是编译时的常量性,这是const关键字无法保证的。例如&am…

「许战海战略文库」佳隆股份:2亿级别的调味品公司如何应对增长难题

自2002年以来,佳隆食品逐步向集团化方向发展,2010年11月2日在深圳证券交易所成功挂牌上市。 2009年-2022年,公司营收增长并不明显,基本维持在2-3亿之间。尤其是2022年,营收出现亏损的情况,在运营和增长战略…

接口测试基础知识总结

一、HTTP 1、http请求头和响应头包含那些内容? 请求头信息 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 2、常用的请求报头如下: Accept:浏览器可接受的MIME类型。 l MIME用于设定某种扩展名的文件用哪种应…

静态S5在项目管理中的应用与案例分享

静态S5作为一种强大的数据分析工具,不仅在数据处理和可视化方面表现出色,还在项目管理中发挥着重要作用。本篇将通过实际案例分享,探讨静态S5在项目管理中的应用与优势。 一、静态S5在项目管理中的应用 项目进度管理:静态S5通过…

计算机网络 综合(习题)

【计算机网络习题】系列文章目录 计算机网络 第一章 绪论(习题) 计算机网络 第二章 计算机网络体系结构(习题) 计算机网络 第三章 应用层(习题) 计算机网络 第四章 运输层(习题) 计算机网络 第五章 网络层(习题) 计算机网络 第六章 数据链路层(习题) 计算机网络 第七章 物…

第三方软件测试机构可提供哪些服务类型?如何收费?

随着高新技术的快速发展,软件企业将测试工作交由第三方软件测试机构进行已经成为了行业趋势,因为企业自身的大多精力都投入在产品开发上,第三方软件测试机构的存在也就极大的提供了便利。 第三方软件测试机构是区别于软件企业与软件需求方的…

书客、孩视宝、明基护眼台灯好不好用?护眼灯测评对比!

现在一些家长对自家孩子的健康也是特别的重视,从小时开始的儿童枕;再到保护眼睛的护眼台灯、OK眼镜;再到青少年时期的生长激素...可以说是穷出不尽,但是关于孩子使用的东西又不能马虎,每次要帮孩子选东西的时候可是一阵…

《代码整洁之道之程序员的职业素养》-专业主义

专业主义有很深的含义,它不但象征着荣誉和骄傲,而且明确意味着责任和义务担当责任,“为了按时交付软件,没测例行程序,测试例行程序需要几个小时,当时必须交付软件,因为故障修复部分都不涉及例行…

在Docker中安装Tomact

目录 前言: 一.安装Tomact 查找指定的tomact版本 下载tomact9.0 查看该镜像是否安装成功 安装成功之后就开始运行镜像了 ps(用于列出正在运行的Docker容器) ​编辑 测试(虚拟机ip:8080) ​编辑 解决措施 ​编辑 完成以上步骤&…

k8s 1.23.5版本安装ingress1.6.4

1、背景 网上找了好几个ingress 文件,可能是版本没对,ingress都没有安装成功,最后查了相关资料,手动安装了。 下面是版本的匹配列表 github中ingress 地址:https://github.com/kubernetes/ingress-nginx 1.23.5版本支…