Linux kernel mmc 框架说明,包括mmc_test使用方法

1.Linux 总线模型

        Linux下的任何驱动在内核中最终都抽象为bus, driver以及device三者间的相互作用。

        总线是处理器和一个或多个设备之间的通道,在设备模型中,所有的设备都通过总线相连接。总线将设备和驱动绑定,在系统每注册一个设备的时候,会遍历该总线上的driver list,通过busmath函数寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会便利该总线上的device 寻找与之匹配的设备,而匹配由总线的match函数完成。一但匹配,则会调用总线的probe函数。

        在此模型下,如果存在实际总线当然很好,比如mmc总线,i2c总线和spi总线,相应的devicedriver都可以直接注册在总线上。但是总是有一些设备和总线无关,为此,linux kernel引入了platform 虚拟总线,

Platform总线是一种虚拟的总线,相应的设备则为platform_device,通过platform_driver_register;而驱动则为platform_driver通过platform_driver_register 注册。内核中该总线定义如下:

struct bus_type platform_bus_type = {

       .name            = "platform",

       .dev_groups= platform_dev_groups,

       .match          = platform_match,

       .uevent         = platform_uevent,

       .pm        = &platform_dev_pm_ops,

};

    platform_总线match采用名称匹 配的方式,即driverdevice两者的name一样则认为该device对应该driver,详见下图:


 

2.MMC 简介

MMC

MMC全称MultiMedia Card,由西门子公司和SanDisk公司1997年推出的多媒体记忆卡标准。MMC卡尺寸为32mm x24mm x 1.4mm,它将存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。

MMC卡具有MMCSPI两种工作模式,MMC模式是默认工作模式,具有MMC的全部特性。而SPI模式则是MMC协议的一个子集,主要用于低速系统。

 

SD

        SD卡全称Secure DigitalMemory Card,由松下、东芝和SanDisk公司于19998月共同开发的新一代记忆卡标准,已完全兼容MMC标准。SD卡比MMC卡多了一个进行数据著作权保护的暗号认证功能

        SD卡尺寸为32mm x 24mm x2.1mm,长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持向上兼容,也就是说,MMC卡可以被新的设有SD卡插槽的设备存取,但是SD卡却不可以被设有MMC插槽的设备存取。

 

SDIO

        SDIO全称Secure DigitalInput and Output CardSDIO是在SD标准上定义了一种外设接口,它使用SDI/O接口来连接外围设备,并通过SD上的I/O数据接口与这些外围设备传输数据。现在已经有很多手持设备支持SDIO功能,而且许多SDIO外设也被开发出来,目前常见的SDIO外设有:WIFI CardGPS Card Bluetooth Card等等。

 

eMMC

        eMMC全称Embedded MultiMediaCard,是MMC协会所制定的内嵌式存储器标准规格,主要应用于智能手机和移动嵌入式产品等。eMMC是一种嵌入式非易失性存储系统,由闪存和闪存控制器两部分组成,它的一个明显优势是在封装中集成了一个闪存控制器,它采用JEDEC标准

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值