新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C2410的SD卡linux驅(qū)動(dòng)工作原理

基于S3C2410的SD卡linux驅(qū)動(dòng)工作原理

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

我在講嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)班的時(shí)候,發(fā)現(xiàn)不少學(xué)員對(duì)SD卡驅(qū)動(dòng)這塊比較感興趣,課下來(lái)找我探討。而在很多技術(shù)論壇,也有不少人問(wèn)這方面的問(wèn)題,所以就想寫(xiě)一下這方面的內(nèi)容,希望對(duì)大家的學(xué)習(xí)能有所幫助。想了解SD卡的工作原理,首先需要了解的就是SD卡協(xié)議了,這個(gè)在網(wǎng)上可以輕松的下載到。在了解協(xié)議后,就可以看看下面的一些開(kāi)發(fā)思路了。

本文引用地址:http://m.butianyuan.cn/article/201610/305843.htm

首先看下脫離操作系統(tǒng)如何在S3C2410上實(shí)現(xiàn)SD卡的讀寫(xiě)。過(guò)程可以分為3個(gè)大的步驟:初始化sd卡、寫(xiě)sd卡、讀sd卡;下面的過(guò)程是我通過(guò)realview-MDK環(huán)境測(cè)試過(guò)的。

一、初始化sd卡

二、寫(xiě)sd卡

寫(xiě)sd卡可以分為3種方式:POLL、中斷、DMA

(1) POLL寫(xiě)

(2)中斷寫(xiě)

(3)DMA寫(xiě)

三、讀sd卡

讀sd卡也可分為3中方式:POLL、中斷、DMA

(1) POLL讀

(2)中斷讀

(3) DMA讀

了解了脫離操作系統(tǒng)的工作原理后,現(xiàn)在可以思考linux是如何管理管理SD卡的了。Linux中SD驅(qū)動(dòng)可以分為3層:塊設(shè)備層(mmc_block.c ,mmc_sysfs.c,mmc_queue.c)、mmc協(xié)議層(mmc.c)、sd驅(qū)動(dòng)層(s3c2410_sdi.c)。

下面從以下幾個(gè)方面理解驅(qū)動(dòng):

1、s3c2410_sdi.c代碼初始化過(guò)程;

2、SD卡塊設(shè)備注冊(cè)過(guò)程;

3、request及數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)。

下面介紹的過(guò)程參考的代碼是我們?nèi)A清遠(yuǎn)見(jiàn)培訓(xùn)中心在教學(xué)中使用的一套代碼,內(nèi)核版本是2.6.8,其它版本過(guò)程類(lèi)似。

一、s3c2410_sdi.c代碼初始化過(guò)程

二、SD卡塊設(shè)備注冊(cè)過(guò)程

三、request及數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉