OpenEdv-开源电子网

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

读SD卡出现check_fs返回2,读启动扇区数据和Winhex读出的不对应

[复制链接]

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
发表于 2021-1-8 17:13:39 | 显示全部楼层 |阅读模式
100金钱
check_fs返回2说明SD卡初始化是没问题的,但是读启动扇区的数据就出问题了,启动扇区地址为0,但是读出来的数据和用Winhex读出来的是不一样的。即使挂不挂载文件系统读出来的数据都是有问题的,读出来的数据前面几百个字节都是0,最后两个字节确又是aa 55,这是为什么?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2021-1-8 17:33:31 | 显示全部楼层
这两天学习了一下文件系统,通过调试代码验证,终于搞清楚两者的关系了,他们是不同的两个扇区。
长话短说,整个SD卡的结构如下图所示,
1.PNG
其中,MBR就是SD卡的第一个扇区,也就是用串口读回来的512个字节数据,DBR就是文件系统的启动扇区,也就是用Winhex看到的512个字节数据。
当然保留区还有其他一些扇区,接着就是FAT表,再接着就是数据区,这些详细信息可以查看文件系统资料。
不过,也可以将DBR当做SD卡的一个扇区,这时是不能做启动引导盘的,仅仅是存储数据,Flash磁盘就是这样的。
2.jpg
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-1-9 02:21:15 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 07:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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