Linux内核有一类特殊的用户,就是系统管理员,这些用户需要对内核有一定的了解,并对内核进行相应的设置。Linux内核也要满足性能需求,需要更快、更高、更强。内核和驱动开发人员需要Linux内核提供基本功能和框架的支持。......
2023-11-22
MMC(即multimedia card)已经成为嵌入式存储设备的最重要的连接标准。它于1997年由西门子与SanDisk共同开发,技术基于NAND技术,随后又有不同的发展,现如今已经形成MMC、SD、eMMC、SDIO等不同的形式,而连接的设备也是多种多样的,从MMC Card、SD Card、microSD Card等存储设备,到SDIO WLAN、SDIO GPS等设备。总之设备形态以存储设备为主,相应的SDIO总线可以支持不同功能的设备。
MMC的架构如图7-8所示。图7-8引自《MMC规范》。
图7-8 MMC架构图
从图7-8可见,MMC连接除了CLK和VDD之外还有CMD和DAT信号,其中CMD信号用于命令交互,而DAT信号用于数据交互,DAT信号可以有多个。MMC内部会有一些寄存器,这些寄存器记录了MMC的能力等属性,可用于与总线控制器协商。需要根据这些控制器的属性值正确地操作MMC设备。
MMC的信号传输特点如图7-9所示。图7-9引自《DM 3730芯片手册》中第3384页框图。(www.chuimin.cn)
图7-9 MMC信号传输特点
图7-9以单一的读操作为例,可见MMC的信号主要通过CMD传送命令,并且需要响应,通过DAT信号传送数据。为了能正确地识别MMC设备,并正确地传输数据,MMC规范规定了不同的模式及命令用于不同的功能,通过命令可以在不同的状态转换。这些都属于规范中状态及状态转换的内容,能正确地支持。
MMC总线可以连接不同协议标准的设备,如MMC、SD、SDIO,这些都需要在框架中进行支持。另外由于MMC连接的设备可能会以卡的形式存在,这就需要能够支持对设备插入的检测,在系统级别也需要能够对设备插拔进行支持。
总体上来说,MMC总线驱动的需求就是要能实现总线的各种功能,并且满足总线的各种无关性需求。
有关深入剖析Linux内核与设备驱动的文章
Linux内核有一类特殊的用户,就是系统管理员,这些用户需要对内核有一定的了解,并对内核进行相应的设置。Linux内核也要满足性能需求,需要更快、更高、更强。内核和驱动开发人员需要Linux内核提供基本功能和框架的支持。......
2023-11-22
通常的分类方式是将设备分为字符设备、块设备和网络设备。这样的分类方式只是在高级抽象层中对主设备相关的分类,对具体的设备究竟如何划分并没有涉及。谈到设备分类,还会想到Linux内核中的drivers目录,drivers目录下的子目录本身就是对设备驱动的分类。图3-12驱动层次看过Webcam的例子后,再重新考虑设备分类的问题,硬件通过各种总线实现层次扩展。那么按照这种层次的需要进行设备分类,一定会有全新的视角。......
2023-11-22
USB的设计为非对称式的,它是主从式总线,任何USB事务都是由主机引发的。USB总线拓扑如图7-12所示。图7-12引自《USB2.0规范》。USB总线已经成为使用最广泛的设备连接标准。每个USB设备至少有两个端点/管道,分别是进和出两个方向,编号为0,用于控制总线上的设备。总体上来说,系统对USB总线驱动的需求就是要能按规范实现总线的各种功能,并且满足总线的各种无关性的需求。......
2023-11-22
图6-4分辨率指标从图6-4可见,目前各种显示分辨率,不仅大小不同,长宽比也是各种各样的,这些分辨率主要有两种不同的标准,一种是4∶3的PC相关的显示器标准,另外一种是16∶9的TV相关的标准。对显示驱动基本的需求就是能够支持这些各种不同分辨率和长宽比的显示设备,并对这些设备进行相应的控制,使得系统能有较好的输出效果。......
2023-11-22
首先来看看MMC子系统的初始化mmc_init。MMC整体框架如图7-10所示。MMC总线整体框架主要实现了这些功能。MMC设备的管理框架提供了相应的创建和注册接口。......
2023-11-22
音频设备还有可能有多路数据源,而在设备内部作混音,所以在考虑控制需求的时候,同样要考虑相关的应用以及混音通路的设置。这样更进一步要求控制流能够和数据流分离。然而控制流和数据流不仅要考虑分离又要考虑关联,毕竟控制部分同样需要能够获取数据流格式等相关的信息。......
2023-11-22
SPI是一种高速、全双工、同步总线。这样就允许单个SPI总线上连接多个SPI从设备。对于SPI总线从设备并没有固化的地址,而是通过CS信号区分不同的设备。另外因为SPI总线频率最高可以达到70MHz,所以需要较大吞吐量的操作方案进行数据传输,通常使用DMA进行操作。总体上来说,系统对于SPI总线驱动的需求就是要能实现总线的各种功能,并且满足类似于I2C总线的各种无关性需求。图7-5SPI总线数据传输信号规范......
2023-11-22
Linux内核作为目前最成功以及发展最快的开源项目之一,在实际应用中取得的巨大成功是举世瞩目的。Linux Foundation于2013年9月发布了《Who Writes Linux》报告,公布了最新的不同组织对Linux内核贡献的情况,见表1-1。表1-1不同组织对Linux内核贡献贡献前30名的公司中半导体厂商就有11家,约占三分之一,如果算上硬件相关的公司会超过20家,贡献总量超过了60%。可见硬件厂商对Linux内核的贡献是很大的,对Linux内核的影响也是巨大的。......
2023-11-22
相关推荐