初识--物理扇区与逻辑扇区
0赞
发表于 3/17/2011 4:25:37 PM
阅读(21745)
昨天在STM32板上试了一天SD读取扇区操作都是错误,代码中直接读取0扇区(我本意为0扇区是逻辑0扇区),因为要用到FAT文件系统,但是读取的扇区从串口输出都无法和WINHEX看到(逻辑扇区)的一样,也想不出原因。今天无意中找到问题的原因。是物理扇区和逻辑扇区的区别。
下面是用WINHEX查看SD卡的信息:

图1:物理0扇区
图1显示的数据就是代码读取到的数据,跟图3我要的数据完全不一样。
物理扇区与逻辑扇区关系:逻辑地址=物理地址+保留的扇区数
物理0扇区记录着保留扇区数,位置为物理0扇区的 0x1c6 有保留的扇区数,跳转到F7(247)扇区,显示如图2。

图2:物理247扇区的内容

图3:逻辑0扇区
图2.3内容是一样的。看来问题可以解决了,只要读取扇区的时候加上保留扇区数就可以读取正确了。
但是我就很奇怪,为什么会读到物理0扇区呢,为什么不是逻辑0扇区呢,那怎样才能指定读到物理扇区或是逻辑扇区呢
注:点击查看logical sector或physical sector

