iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等
第四十九章 平台总线总结回顾
本章内容对应视频讲解链接(在线观看):
平台总线模型总结和回顾 → 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有非常成熟的框架,我们只要按照这个框架进行编程就可以了。