关于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卡不久,理解错误之处,敬请指教,不胜感激!! 代码读取物理0扇区,如下图:
winhex读取逻辑0扇区,如下图:
页:
[1]