OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6940|回复: 6

读取SD卡Sector0,返回的数据是0

[复制链接]

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-6-9
在线时间
2 小时
发表于 2015-8-24 11:12:11 | 显示全部楼层 |阅读模式
5金钱
在407的开发板上调试SDIO,无论用1bit还是4bit、轮询方式或者DMA方式,读取Sector0时返回的数据都是0,只有最后两个字节正确,有人遇到这个问题吗?

我用原子的示例程序,读出的数据还是不对。


这个是用WinHEX打开SD卡,读出的Sector0的512个字节数据,




这个是SDIO读出的512字节数据,前面全是0,下面的82 03 00 0B等数据在WINHEX应该是0,但SDIO返回了数据。

最佳答案

查看完整内容[请看2#楼]

回复【2楼】aozima: --------------------------------- aozima, 十分感谢,果然是我搞错了物理扇区0和逻辑扇区0的区别,STM32读出来的是物理扇区0,这是MBR,从这里可以看到逻辑分区的起始地址。我顺着MBR信息去读取逻辑分区起始扇区,就能读出正确的逻辑扇区0的信息了;而WinHex显示的是逻辑扇区0的数据。 另外这篇文章帮助很大 http://blog.csdn.net/mjx91282041/article/details/8904705
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-6-9
在线时间
2 小时
 楼主| 发表于 2015-8-24 11:12:12 | 显示全部楼层
回复【2楼】aozima:
---------------------------------
aozima,

十分感谢,果然是我搞错了物理扇区0和逻辑扇区0的区别,STM32读出来的是物理扇区0,这是MBR,从这里可以看到逻辑分区的起始地址。我顺着MBR信息去读取逻辑分区起始扇区,就能读出正确的逻辑扇区0的信息了;而WinHex显示的是逻辑扇区0的数据。

另外这篇文章帮助很大 http://blog.csdn.net/mjx91282041/article/details/8904705
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2015-8-24 11:40:13 | 显示全部楼层
物理0扇区
or
分区的0扇区
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-6-9
在线时间
2 小时
 楼主| 发表于 2015-8-24 12:32:43 | 显示全部楼层
回复【2楼】aozima:
---------------------------------
是SD卡的物理扇区,我还没有使用fatfs,直接读SD卡的原始数据。
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2015-8-24 15:47:10 | 显示全部楼层
回复【3楼】tw919:
---------------------------------
winhex读取的末必是物理扇区呀
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-6-9
在线时间
2 小时
 楼主| 发表于 2015-8-24 15:56:26 | 显示全部楼层
aozima,

我用WinHex的“打开磁盘”功能,打开SD卡,截图如下,Offset = 0x00000000的地方应该就是Sector0的起始位置吧?我的理解在WinHex里显示的offset 0x00000000 ~ 0x00000200这512个字节应该就是Sector0。请问这样理解对吗?

STM32里SD_ReadBlock函数的Addr我赋值为0,我分析了这个函数,发现它会把这个绝对地址变成Sector编号,所以我请求0x00000000处的数据,应该就是Sector0的数据吧。

回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-6-9
在线时间
2 小时
 楼主| 发表于 2015-8-24 15:59:25 | 显示全部楼层
回复【4楼】aozima:
---------------------------------
另外我看了原子的这个帖子http://www.openedv.com/posts/list/0/43376.htm#332100,读出的数据和我的类似,也是很多0,并且原子提供的FatFS示例程序我也无法正常运行,因为检查SD分区类型时读不到FAT三个字母,所以无法识别SD卡的分区类型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 07:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表