瑞芯微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
至此,注册总线之前要先注册设备实验分析完毕。