EDA365电子工程师网
标题:
关于SD读操作与FAT文件系统的问题
[打印本页]
作者:
mengzhuhao
时间:
2008-4-8 20:49
标题:
关于SD读操作与FAT文件系统的问题
一个文件可能由多个簌组成,这些簌可能分布磁盘的不同位置(考虑文件可能不是连续分布在磁盘)从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表大小,根目录,再自动吧隐藏区的扇区加上就是数据区的首扇区了吧
作者:
mengzhuhao
时间:
2008-4-8 21:03
512字节系统区截图
512字节的系统区.jpg
(268.49 KB, 下载次数: 6)
下载附件
保存到相册
2008-4-8 21:03 上传
作者:
salseguo
时间:
2011-2-21 16:44
学习了
欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/)
Powered by Discuz! X3.2