knight_lxf 发表于 2014-1-8 20:50:32

关于SD卡 FAT32文件系统 逻辑0扇区与物理0扇区的理解

理解如下,敬请指正。
环境:STM32+SDHC卡

在FAT32 文件系统中的引导区(MBR)是指逻辑0扇区。
在程序代码中
SDReadSingleBlock(0,Buff_For_Test);
读取的为物理0扇区的内容,如下:

而在winhex工具中看到的为物理0扇区,如下:

因此,两者不一样。
但是,在物理0扇区的第0x1C6--0x1C9四个字节存储有逻辑0扇区的偏移地址(小端)。
因此,要想在程序代码中读取逻辑0扇区内容,代码如下:
SDReadSingleBlock(0x2000,Buff_For_Test);
读取结果,如下图:


因此,逻辑0扇区=物理0扇区+保留扇区

问题,如下:
        1、这里的保留扇区(也就是物理0扇区到逻辑0扇区之间的空间),作用是什么?仅仅是计算逻辑0扇区的偏移地址?
        2、这里的保留扇区是FAT32协议所要求的,还是各个SD卡厂商自己决定的
        3、对逻辑0扇区的理解。FAT32文件系统,只认逻辑0扇区,当FAT32文件系统访问SD卡的时候,SD卡的control就将逻辑0扇区+保留区之后的物理扇区,映射为逻辑0扇区给FAT32文件系统。
刚接触FAT32及SD卡不久,理解错误之处,敬请指教,不胜感激!!

knight_lxf 发表于 2014-1-8 20:53:55

代码读取物理0扇区,如下图:

winhex读取逻辑0扇区,如下图:
页: [1]
查看完整版本: 关于SD卡 FAT32文件系统 逻辑0扇区与物理0扇区的理解