基于S3C2410的SD卡linux驱动工作原理(二)

作者: 刘洪涛

 

   “基于S3C2410的SD卡linux驱动工作原理(一)”,说了下脱离操作系统如何在S3C2410上 实现SD卡的读写。了解了脱离操作系统的工作原理后,现在可以思考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卡

二、SD卡块设备注册过程

DMA写

三、request及数据传输的实现

DMA读

end

你可能感兴趣的:(C++,c,linux,工作,C#)