打印

关于SD读操作与FAT文件系统的问题

[复制链接]
961|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LMQQ|  楼主 | 2013-8-1 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 GoldSunMonkey 于 2013-8-1 22:15 编辑

一个文件可能由多个簌组成,这些簌可能分布磁盘的不同位置(考虑文件可能不是连续分布在磁盘)从FAT表中可以读取到该文件的所有簌位置 假如第一个簌地址就是02,其对应的扇区=4+2+500+32=538 那么在读指令的地址参数就填入538对应的二进制数,这样就可以读本扇区的数据了既然一个簌包含连续的32扇区那么在接收完第一个单512字节数据完成后,SD状态机应该返回到stand-by状态等待下一个读指令的发出吧(这时地址就自动累加538+1),直到538+31为止一个簌块读取结束。然后获取FAT表中下个簌的地址并换算为对应的扇区号,操作一样等读到文件最后一个簌区的时候,是不是根据文件大小来确定最终读指令操作结束(也就是在文件读完毕的时候应该有个系统响应信号给控制器吧) 【在阅读规格书的过程中,里面另一个就是多块读指令,在指令发出去以后它应该是不间断的发送512字节数据块,终止次操作要靠CMD12;那这个多块读指令发出去之后,SD卡应该是默认按照连续簌来自动读扇区吧?或者通过此办法来累积32次,表示一个簌读完,如果下一个簌不是连续的则发CMD12指令终止然后再发新簌的首个的扇区地址,如果是连续的则重新计数,如此反复,这样是否也可行呢】 那么在实际的操作过程中就可以这样操作吧:读取512字节的系统区,用一个计数器把关键字节的数据提取出来作为数据区偏移的依据,例如保留区,隐藏区,FAT表大小,根目录(默认就是32个扇区)记录下拉,这样首个数据区地址就可以定了,后面的地址只是在这个基础上的累加 【FAT表的疑惑】我用一个磁盘读取工具读格式化的FAT16文件系统,在分区表那块怎与一些文档介绍的不同?隐藏区的扇区用磁盘读取工具无法读出来吗?是不是计算数据区的位置在保留区,fat表大小,根目录,再自动吧隐藏区的扇区加上就是数据区的首扇区了吧

相关帖子

沙发
GoldSunMonkey| | 2013-8-1 22:15 | 只看该作者
不错,感谢

使用特权

评论回复
板凳
GoldSunMonkey| | 2013-8-1 22:15 | 只看该作者
感谢分享啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

401

帖子

1

粉丝