自学内容网 自学内容网

RK3568平台 平台总线模型Platform

一.平台总线模型介绍

编写了一个独立的驱动程序,但这样编写出来的驱动程序在重用性和可移植性上是很低的,无论之后要编写一个同类型的驱动还是将该驱动更换一个平台,都要花费时间重新修改驱动代码,而驱动的分离和分层这一软件思路的提出。

平台总线(Platform bus)是 Linux 内核中提供的一种虚拟总线,用于管理和组织与特定硬件平台相关的设备和驱动。它充当了平台设备(platform device)和平台驱动(platformdriver)之间的桥梁,负责将它们进行匹配和绑定。

当系统注册一个平台驱动时,平台总线会寻找与之匹配的平台设备。它会遍历已注册的平台设备列表,尝试与每个平台设备进行匹配,直到找到与平台驱动匹配的设备为止。一旦找到匹配的设备,平台总线会将平台设备与平台驱动进行绑定,使得驱动可以管理和控制与该设备相关的操作。

二.平台总线的优势

我们编写的驱动程序将驱动和设备相关的内容放在一起,但是当涉及到多个相同类型的设备时,这种方法会引发一系列问题。举个例子,假设我们有一个硬件平台,该硬件平台上存在了 500 个模块,这些模块都使用了 LED 灯。如果我们使用杂项设备来编写驱动,虽然相比字符设备,杂项设备的代码量较少,但我们仍旧需要编写500 份类似的代码,从而生成相应的设备节点,以供上层应用在不同模块上控制 LED 灯。编写 500 份重复的代码会带来两个问题。首先,会造成大量重复劳动。其次,代码的重用性较差。如果我们需要将这些驱动从一个平台移植到另一个平台,就需要逐个修改驱动代码,尽管只需修改与硬件相关的部分,但仍旧是一个很大的工作量而在引入了平台总线模型后,这些问题就得到了很好地解决。通过使用平台总线模型,将设备驱动和平台设备进行了分离。这样一来,我们只需编写一份通用的驱动代码即可,然后针对不同的平台设备进行配置,这就大大减少了重复编写代码的工作量,并提高了驱动代码的重用性。当我们需要将驱动移植到不同的平台时,只需对硬件相关的部分进行适配即可,其他部分可以保持不变。

待更新。。。。。。。。。


原文地址:https://blog.csdn.net/weixin_49303682/article/details/135515396

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!