最近移植了一個SD卡的文件系統,用掉兩週多的時間。
硬件環境:
s3c44b0平臺,SD卡接口用SPI模式,IO口模擬SPI通訊。
編譯環境:
ADS,uCosII平臺
步驟:
1、評估了幾個SD卡驅動的源代碼。
網上的SD卡的驅動源代碼很多,魚龍混雜,做的比較不錯的有周立功公司的(我找到的是05年1月的V1.0版本),條理很清晰,但個人感覺不完善。
另外一個,也是我用到的,是一個開源項目,網址:
http://www.roland-riegel.de/sd-reader/index.html
AVR平臺下的SD卡驅動和FAT文件系統。
只是使用ANSI-C99標準,編譯器不支持,變量須做修改,所以,只使用了它的SD卡驅動部分。
使用到的文件有:
sd_raw.c // SD卡驅動
sd_raw.h // SD卡頭文件
sd_raw_config.h // SD卡設置文件
byteordering.c // 類型轉換
byteordering.h
2、SD卡驅動底層函數移植
在sd_raw_config.h文件中,定義了使用到的IO口:
在sd_raw.c文件中,修改瞭如下函數:
測試了sd_raw_read()函數,可以正確讀出SD卡block0的數據,移植完成