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-实践者 

 
 
 
posted @ 2014-08-28 10:33  酒醉的Tiger  阅读(4426)  评论(0编辑  收藏  举报