没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
Wi-Fi SDIO
化良玉
北京艾威梯互联技术有限公司
MMC-SD-SDIO
MMC 子系统
MMC ( Mul media Card ) (24mm*32mm*1.mm)
Linux kernel 把 mmc,sd 以及 sdio 三者的驱动代码整合在一起,俗称 mmc 子系统。源码位于
kernel_imx/drivers/mmc 下。其下有三个子目录,分别是:
card 用于构建一个块设备作为上层与 mmc 子系统沟通的桥梁;
core 抽象了 mmc,sd,sdio 三者的通用操作;
host 是各类平台上的 host 驱动代码
区块层
l
按照 LINUX 块设备驱动程序的框架实现一个卡的块设备驱动,在 block.c 当中我们可以看到写
一个块设备驱动程序时需要的 block_device_operaons 结构体变量的定义,其中有
open/release/request 函数的实现,文件 queue.c 则是对内核提供的请求队列的封装,一个块设备需
要一个请求队列就可以了。
核心层
核心层封装了 MMC/SD 卡的命令,例如 sd 卡的识别、设置和读写的命令,这些流程都是必须
要有的,只是具体对于不同的卡会有一些各自特有的操作。 Core.c 文件是由 sd.c 、 mmc.c 两个文
件支撑的, core.c 把 MMC 卡、 SD 卡的共性抽象出来,它们的差别由 sd.c 和 sd_ops.c 、 mmc.c
和 mmc_ops.c 来完成。
主机控制器层
主机控制器则是依赖于不同的平台的,例如 s3c2410 的卡控制器和 atmel 的卡控制器必定是
不一样的,所以要针对不同的控制器来实现。以 s3cmci.c 为例,它首先要进行一些设置,例如中断
函数注册,全能控制器等等。然后它会向 core 层注册一个主机( host ),用结构 mmc_host_ops
描述,这样核心层就可以拿着这个 host 来操作 s3c24xx 的卡控制器了,而具体是 s3c24xx 的卡控制
器还是 atmel 的卡控制器, core 层是不用知道的。
剩余40页未读,继续阅读
sheldon_cs
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5