新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C2410的SD卡linux驅動工作原理

        基于S3C2410的SD卡linux驅動工作原理

        作者: 時間:2016-10-08 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/201610/305843.htm

        首先看下脫離操作系統如何在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及數據傳輸的實現



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳城县| 镇安县| 永丰县| 惠水县| 陇川县| 海安县| 三门峡市| 永寿县| 望都县| 滦南县| 德化县| 华容县| 长治市| 东至县| 太原市| 大洼县| 类乌齐县| 平山县| 长武县| 鄂州市| 双城市| 临猗县| 西安市| 宣恩县| 元氏县| 师宗县| 仙游县| 甘谷县| 南丰县| 临沧市| 陈巴尔虎旗| 镇沅| 姜堰市| 永宁县| 宁都县| 萍乡市| 盐亭县| 定结县| 麦盖提县| 敦化市| 榆树市|