是否有可能在没有MBR的情况下格式化小SD卡?

时间:2016-06-24 00:48:00

标签: embedded partitioning sd-card mbr

我试图为嵌入式系统实现只读FAT16 / 32文件系统库,读取SD卡(为了教育目的而重新发明轮子)。

似乎有没有MBR格式化的卡片;只是没有任何分区表的FAT。

我已经阅读了FAT文档和MBR文档,并学习了如何读取具有MBR和FAT的SD卡。

我需要我的C ++库来支持在没有MBR的情况下读取SD卡。

我目前的做法如下:

  
      
  1. 尝试读取第一个扇区,假设它包含FAT BPB(Boot   参数块)。
  2.   
  3. 检查信息是否有效。
  4.   
  5. 如果是,请继续阅读根目录。
  6.   
  7. 否则假设它有MBR。
  8.   
  9. 从0x1BE开始读取分区表。
  10.   
  11. 如果支持的分区类型可用,请尝试将其第一个扇区读为FAT。
  12.   
  13. 如果读取的信息有效,请继续阅读根目录。
  14.   
  15. 否则返回ERROR_CODE
  16.   

有更好的方法吗?例如,是否有任何可以识别的幻数或特定模式?

1 个答案:

答案 0 :(得分:0)

  
      
  1. 检查偏移量为0x52的文本FAT32。
  2.   
  3. 如果失败,请检查0x36
  4. 处的FAT12或FAT16   
  5. 如果失败,假设第一个扇区是MBR。
  6.   

感谢@Clifford