SD卡讀寫扇區注意事項(轉)


源:http://blog.163.com/zhaojun_xf/blog/static/30050580201151410635516/

       在調試SD卡時,大家都喜歡使用扇區進行驗證。也就是說,一般都是通過讀寫扇區數據進行比較,或者讀取第0扇區的數據,在通過WinHex軟件打開啟動扇區進行比較。這種方法對於1G的SD卡或部分2G的SD卡可能是對的,但是對於有些2G的SD卡和大於2G的SD卡來說就不一定對了。

      對於小容量的SD卡來說,一般沒有MBR,所以讀第0扇區就是在WinHex軟件里邊查看的啟動扇區,所以很容易進行驗證。但是對於大容量的SD卡來說,由於里邊有MBR,而一般讀取第0扇區,讀出的就是MBR的內容;而在WinHex里邊一般都隱藏了MBR部分,而直接顯示啟動扇區。所以讀取的第0扇區和啟動扇區的數據當然是不對的,所以容易讓實驗者認為讀取是數據有誤。

1. 那么怎樣使用WinHex軟件查看SD卡有沒有MBR呢:

SD卡讀寫扇區主要事項 - 我心永恆 - ARM-實踐者

       如果打開磁盤時選擇的是邏輯驅動器,那么是看不到MBR的,只能看到數據從啟動扇區開始的信息;如果采用物理磁盤方式打開,就可以查看分區信息了。

2. 打開一張Kingston 2G的SD卡的MBR

SD卡讀寫扇區主要事項 - 我心永恆 - ARM-實踐者

       我們需要注意的是畫線的64個字節數據,一個有4個分區表,但是除了第1個分區外,其他數據為零,也就是說只有一個分區。這個分區的啟動扇區在上圖棕色方框里,即:0x0000003F的地方,所以,我們讀取0x0000003F就能讀取啟動扇區了。

3. 打開啟動扇區

SD卡讀寫扇區主要事項 - 我心永恆 - ARM-實踐者

    用SD卡讀取0x0000003F扇區進行比較就可以了。SDReadSingleBolck(0x3F, SDBuf); 讀取的數據如下:

SD卡讀寫扇區主要事項 - 我心永恆 - ARM-實踐者

 4. 打開一個Kingston 1G SD卡,從圖可以看出,此卡沒有MBR,第0扇區就是啟動扇區。

SD卡讀寫扇區注意事項 - 我心永恆 - ARM-實踐者 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM