免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1129 | 回复: 0
打印 上一主题 下一主题

SD 卡 linux 驱动分析 流程图 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-09 09:26 |只看该作者 |倒序浏览
转自 :
http://www.embedu.org/Column/Column18.htm

文件:
复件 sd linux 驱动 流程图.rar
大小:
95KB
下载:
下载
基于S3C2410的SD卡linux驱动工作原理(一)
作者:刘洪涛,
华清远见嵌入式培训中心
高级讲师,ARM公司授权ATC讲师。
我在讲嵌入式Linux驱动开发班的时候,发现不少学员对SD卡驱动这块比较感兴趣,课下来找我探讨。而在很多技术论坛,也有不少人问这方面的问题,所以就想写一下这方面的内容,希望对大家的学习能有所帮助。想了解SD卡的工作原理,首先需要了解的就是SD卡协议了,这个在网上可以轻松的下载到。在了解协议后,就可以看看下面的一些开发思路了。

    首先看下脱离操作系统如何在S3C2410上实现SD卡的读写。过程可以分为3个大的步骤:初始化sd卡、写sd卡、读sd卡;下面的过程是我通过realview-MDK环境测试过的。

一、初始化sd卡



二、写sd卡

写sd卡可以分为3种方式:POLL、中断、DMA

(1)  POLL写



(2)中断写




(3)DMA写



三、读sd卡

读sd卡也可分为3中方式:POLL、中断、DMA

(1)  POLL读



(2)中断读


\
(3) DMA读


了解了脱离操作系统的工作原理后,现在可以思考linux是如何管理管理SD卡的了。Linux中SD驱动可以分为3层:块设备层(mmc_block.c ,mmc_sysfs.c,mmc_queue.c)、mmc协议层(mmc.c)、sd驱动层(s3c2410_sdi.c)。

下面从以下几个方面理解驱动:
      1、s3c2410_sdi.c代码初始化过程;
      2、SD卡块设备注册过程;
      3、request及数据传输的实现。

下面介绍的过程参考的代码是我们华清远见培训中心在教学中使用的一套代码,内核版本是2.6.8,其它版本过程类似。

一、s3c2410_sdi.c代码初始化过程

二、SD卡块设备注册过程



三、request及数据传输的实现






本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93821/showart_1895079.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP