FAT文件系统原理

来源:互联网 发布:涂涂乐源码 编辑:程序博客网 时间:2024/05/16 18:44

来自逍遥居的笔记,感觉有用,贴过来.

       有一个想记录下来的就是关于写文件时写FAT表的情况.开始我以为写文件的过程中就会去写FAT表(直接改定FLASH;或是在内存中开一段BUFFER来存取一段FAT表,在内存中修改FAT表,然后再写回FLASH),但是后来觉得这样也在逻辑上不合理,如果写文件失败处理起来岂不是很麻烦.而且如果是直接写FLASH,速度上肯定是不允许的;如果是在内存中开BUFFER来写FAT表,很明显空间上至少要用掉一个SECTOR,这在嵌入式软件开发上是很浪费的.后来问了做文件系统的哥们儿,发现一个做法是很巧妙的.只是在内存中开一个20来个字节的BUFFER,这个BUFFER的使用是按Bit展开的,每一个Bit对应FAT表中的一个SECTOR,如果该SECTOR中有FAT表项被使用,则对应的Bit置1,否则置0.写文件的过程中,只是在FAT表中搜索有没有空表项可以使用,而并不去修改FAT表,待文件写完进行关闭的时候,才去修改FAT表.从头开如按照BUFFER中的Bit情况将FAT表中的空项用拉链的方式链接起来.我觉得这个方法很不错,重要的是这种处理问题的思路,不是以惯常的思路来处理问题,我觉得这个很重要.自己在这方面做的不是很好,解决问题总会不自然的按那些很惯常的思维想方法,以后在这方面应该多注意一些.