前幾天寫了篇“基於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卡塊設備註冊過程
三、request及數據傳輸的實現