自学内容网 自学内容网

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十九章 平台总线总结回顾

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、


第四十九章 平台总线总结回顾

本章内容对应视频讲解链接(在线观看):

平台总线模型总结和回顾  https://www.bilibili.com/video/BV1Vy4y1B7ta?p=23

本章节我们来对之前学到的知识进行一个回顾和总结,我们通过之前的学习,我们已经学习了平台总线的概念,那么它和我们之前讲的字符设备和杂项设备又是什么关系呢?俗话说得好,温故而知新嘛,本章节带领大家一起回顾和总结一下。

为了方便大家的理解,作者画了框图,如下图所示。

通过这个框图,我们可以掌握平台总线模型和杂项设备和字符设备之间的关系,我们来看下图的左上角,平台总线模型分为两个部分,第一部分是driver部分,放的是和驱动相关的代码;第二部分是device部分,放的都是和硬件相关的一些描述,比如一些寄存器和一些其他的硬件资源,当driver和device通过名字进行匹配成功之后,就会进入到probe函数里面,在probe函数里面我们可以拿到device里面描述的硬件资源,然后再probe里面注册杂项设备和字符设备,这样就可以完成一个以平台总线模型设计的驱动,左上角框图如下所示: 

框图左下角和右下角是probe函数里面要完成的内容,如下图所示。 

注册完杂项设备或者字符设备就可以通过file_operation来操作我们的硬件设备的,如框图右上角所示:

那么我们为什么要学习平台总线模型呢?因为我们linux里面驱动都是以平台总线模型进行设计的。如果你不了解平台总线模型这个概念,那么等你以后自己学习linux内核源码是看不懂的,所以我们要了解平台总线的概念。

那么平台总线模型有什么好处呢?平台总线模型将驱动分为driver和device,那么就可以提高驱动代码的重用性了,而且也可以大量减少重复性代码,这个也是平台总线模型的优点,并且linux系统都将驱动挂载到总线上是很方便管理的。我们学习至此,脑海里面应该构建了这个框图,如果我们再回头看我们写过的驱动代码,那么我相信你肯定一通百通了。Linux有非常成熟的框架,我们只要按照这个框架进行编程就可以了。


原文地址:https://blog.csdn.net/BeiJingXunWei/article/details/140636126

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