您现在的位置是:首页 > 技术资料 > eMMC驱动架构分析
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

eMMC驱动架构分析

更新时间:2020-03-29 17:45:31 大小:5M 上传用户:sun2152查看TA发布的资源 标签:eMMC 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

块设备是Linux最复杂的设备之一,但是作为固执于知其然的Geek,我们总会把代码翻个遍,把道理弄个透。当然了,快速地学习一种新的东西,方法是最重要的,个人觉得:内核当中MMC/SD卡驱动程序构架是学习EMMC驱动程序的重点,只有理解了它才能真正理解该块设备驱动程序,同时才能真正理解LINUX块设备驱动程序。

一.需要的基础知识:

UX设备驱动的基本结构。

2.块设备驱动程序的基本构架(相信研究过LDD3当中的sbull的人应该都不成问题,如果只是走马观花的话,那可得好好再补补了)

UX设备驱动模型。

C的原理,是Nand Flash的基础上加上一个负责:ECC、负载均衡和坏块管理功能的controler。

二.驱动程序分析

首先,说明一下EMMC驱动涉及到的文件。另外,我们重点是分析驱动程序的基本构架,所以不同内核版本的差异并不是很大。MMC/SD卡驱动程序位于drivers/mmc目录

LINUX当中对目录的划分是很有讲究的,这些文件被分布在3个目录下,正好对应MMC/SD驱动程序的3个层次(关于层的划分这里浏览一下,有个概念即可,当我们分析完了后再回头来看,你会觉得很形象):

(1)区块层

主要是按照LINUX块设备驱动程序的框架实现一个卡的块设备驱动,这block.c当中我们可以看到写一个块设备驱动程序时需要的block_device_operations结构体变量的定义,其中有open/release/request函数的实现,而queue.c则是对内核提供的请求队列的封装,我们暂时不用深入理解它,只需要知道一个块设备需要一个请求队列就可以了。

(2)核心层

核心层封装了MMC/SD卡的命令,例如存储卡的识别,设置,读写。例如不管什么卡都应该有一些识别,设置,和读写的命令,这些流程都是必须要有的,只是具体对于不同的卡会有一些各自特有的操作。Core.c文件是由sd.c、mmc.c两个文件支撑的,core.c把MMC卡、SD卡的共性抽象出来,它们的差别由sd.c和sd_ops.c、mmc.c和mmc_ops.c来完成。


部分文件列表

文件名 大小
eMMC驱动架构分析.pdf 5M

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载