電子工程網
標題:
一個關于FATFS 讀SDHC的問題
[打印本頁]
作者:
chichu9825
時間:
2010-5-28 08:57
標題:
一個關于FATFS 讀SDHC的問題
我在STM32上移植了一個FATFS R0.07c的文件系統,一直工作正常,手里的兩個SD卡都沒問題。昨天我買了一個新的SD卡,發現識別不出來。
檢查一番發現,我的兩張卡,都是2G的,一張V1.1的 ,一張V2.0,而新的是2.0SDHC的。
我在PC機上對這張卡進行了幾次格式化,也是同樣的現象。
我跟蹤代碼發現:返回錯誤的地方在auto_mount 里調用的 check_fs函數
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55){ /* Check record signature (always placed at offset 510 even if the sector size is >512) */
return 2;
}
這里返回的如果是0xAA55
但現在卻不是
哪位兄弟知道是怎么回事,請告訴一下,謝謝了
作者:
chichu9825
時間:
2010-5-28 10:10
disk_read(fs->drive, fs->win, sect, 1)
fs->win[BS_55AA];
fs->win[BS_55AA+1];
第一次讀出來的是55AA
第二次就是0000,
這是啥問題呢
作者:
lhj200304
時間:
2010-5-28 11:19
玩過fatfs 這個問題還真沒有碰到過
作者:
老郭
時間:
2010-5-28 15:09
樓主如果發帖子的時候把分類選為“提問”,那么此帖就顯示在最新100貼頂端,大家就都能看到了。(這個我幫你做了)
如果在加上懸賞分,那大家都搶著回答你的問題了(發懸賞貼的話系統會獎勵你分數,所以不必擔心自己被扣分,自己還能落下點)
1.jpg
作者:
chichu9825
時間:
2010-5-28 15:21
謝謝版主,我第一次提問,不懂啊。
關于這個問題,到現在為止,我把問題范圍縮小了一些,
文件系統掛載時,先讀第一個扇區MBR和DPT,這一步,我手頭所有的卡都能得到數據。
下一步,文件系統要根據DPT的第一分區的一道信息去讀DBR
沒問題的卡,都能都會正確的信息,在510和511位置 為0xAA和0x55
但出問題的SDHC卡,讀回來的就是一個空白的數據包
我肯定懷疑DBR的位置不對,
另外2張卡 DBR的地址分別為0x000000F3 和 0x00000087
我兩張出問題的SDHC 卡,DBR的地址都是 0x00002000
卡我都在PC上多次格式化了,拷貝刪除都沒問題。
我對這方面的知識只是一知半解,邊學邊干,哪個同學能看出問題在哪,請多多指教,我會不斷把我的進展添加上來,也能讓后來者少走彎路吧。
作者:
ttlasong
時間:
2010-5-29 19:46
謝謝學
作者:
ttlasong
時間:
2010-5-29 19:46
要好好學習
作者:
ttlasong
時間:
2010-5-29 19:54
要好好學習
作者:
ttlasong
時間:
2010-5-29 19:54
要好好學習
作者:
chichu9825
時間:
2010-6-4 11:26
問題已解決,在于SD1.1 SD2.0 SDHC 三種卡的引導區位置不同,導致讀取的數據錯誤。寫驅動,必須要親自看一遍手冊,我就是圖快,移植的代碼沒有經過研究。
作者:
jieer191
時間:
2010-11-19 20:21
回復
10樓
chichu9825
:
我也碰到同樣的問題,樓主能詳細的介紹一下解決的思路嗎?
謝謝謝謝!
作者:
thjym
時間:
2012-9-4 14:02
我最近在移植到FATFS到NAND FLASH上,發現這個0XAA55是什么時候寫進去的?跟SD卡還是有很大不同,不知道哪位仁兄移植成功的,可否分享一下心得!謝謝,我QQ:34224308。
歡迎光臨 電子工程網 (http://www.portaltwn.com/)
Powered by Discuz! X3.4
精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷