完整的文件系统是个颇为复杂的项目,动态的文件链式存储很耗时,原因是你不能缓冲整个FAT表到ram中,fat表有个几百k或更大是很正常的。不能缓冲FAT带来的问题是访问一个簇后不得不切换到FAT表地址里验证下一个簇的地址在哪里,结果是你无法实施对文件的连续读取。pc机上有足够的内存缓冲,甚至能缓冲文件内容作延时写入,不一样的。网上很多例子都能支持FAT表操作,但是完整支持fat表所有功能是不现实的。fat最大的作用是让操作系统无差别的访问设备上的文件,比如存储卡,光盘,硬盘。。。
很感谢DJ狂人的指导,这个文档应该是振南的ZNFAT一书的一部分,可惜后面的章节没有了,写的很好很详细,由于本人没有任何的基础学习单片机的,所以对ZNFAT在SD卡和单片机上的理解和运用在AVR上将会花费更多的精力……
如果后续我理解和运用,到时候会和大家讨论怎么运用……
引用: dj狂人 发表于 2014-4-17 20:23
FAT文件?有这个说法吗,文件系统负责的是对SD卡进行读写数据然后返回给单片机,单片机再进行相应的处理。在这里文件系统对SD卡起到的是管理作用,比如当你想要用液晶显示SD卡里保存的一个文本文档的一句话时,那么先让单片机调用读数据函数:
“UINT32 znFAT_ReadData(struct FileInfo *pFI,UINT32 offset,UINT32 len,UINT8 *app_Buffer); ” app_Buffer 是这句话所在文本的路径,len 是这次操作要从SD卡读取数据的字节数,....... 文件系统得到数据后返回给单片机,单片机进行显示操作。
同学 你好,请问你有AVR平台 驱动SD的源代码吗?
楼上可以百度 ZNFAT32 这是振南写的一个文件系统。基于其他平台的代码移植的工作他都已经做好了。我记得有AVR的
在南哥的网站上,南哥还没有上传关于AVR平台的实验和一些驱动源代码。刚刚入门,求大神指导呀