<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201610/305843.htm

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

          一、初始化sd卡

          二、寫sd卡

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

          (1) POLL寫

          (2)中斷寫

          (3)DMA寫

          三、讀sd卡

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

          (1) POLL讀

          (2)中斷讀

          (3) DMA讀

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

          下面從以下幾個方面理解驅(qū)動:

          1、s3c2410_sdi.c代碼初始化過程;

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

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

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

          一、s3c2410_sdi.c代碼初始化過程

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

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



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();