[发明专利]一种在NOR Flash上建立FAT文件系统的优化方法有效
申请号: | 201710015957.7 | 申请日: | 2017-01-10 |
公开(公告)号: | CN106844583B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 张鹏 | 申请(专利权)人: | 厦门雅迅网络股份有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18;G06F16/13 |
代理公司: | 厦门市新华专利商标代理有限公司 35203 | 代理人: | 朱凌 |
地址: | 361009 福建省厦*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 nor flash 建立 fat 文件系统 优化 方法 | ||
1.一种在NOR Flash上建立FAT文件系统的优化方法,其特征在于包括如下步骤:
步骤1、FAT文件系统的文件数据包括定位表、数据块使用情况信息表、FAT表、根目录,当FAT表、根目录或数据块使用情况信息表擦写次数累加到阈值次数时,寻找磨损程度较低的数据块继续记录,建立定位表用于记录定位FAT表、根目录及数据块使用情况信息表分别在哪个数据块中;
步骤2、定位表占用一个数据块,第一次初始化为全“0xFF”,预留最后8个字节写入标识符供校验用,该定位表以8个字节为单位,整合数据块使用情况信息表、FAT表、根目录所在的数据块序号,从头写入定位表所在的数据块中,当FAT表、根目录或数据块使用情况信息表更换至磨损程度较低的数据块继续记录时,更新定位表,更新定位表采用只写入数据而不擦除数据的方式,一直添加到定位表所在的数据块写满为止,再重新擦写;预留多个备份数据块供定位表循环使用,如果出现坏块,写入下一个备份数据块中,当终端上电时,从预留区最后一个数据块判断标识符,确认定位表所在数据块,然后读取定位表所在数据块的标识符,校验成功后从数据块读取非“0xFF”最后8字节的数据,便可获得数据块使用情况信息表、FAT表、根目录所在数据块信息;
步骤3、为了解决均衡磨损的问题,建立数据块使用情况信息表,用于记录所有数据块的当前状态和已擦除次数,该当前状态包括空闲、正在准备写入数据、已写入有效数据、已被删除的数据、坏块;
所述数据块使用情况信息表占用一个数据块,依次对每个数据块的当前状态及已擦除次数信息用8个字节来记录;每个数据块的记录包括当前状态及已擦除次数信息,分成3个部分,该已擦除次数记录分成两个部分:32个bit位作为单次擦除计数,用2Byte长度的计数器记录擦除32次的倍数,即通过低位四个字节包含32个bit位作为单次擦除计数,初始化为“1”,当对应的数据块产生擦除操作时,将最低位的“1”变为“0”来计数,此时将“1”变为“0”可以直接写入而不需要擦除,若对应的数据块产生擦除操作满32次,意味着上述32个bit位被全部清“0”;第3、4这两个字节长度记录擦除32次的倍数,即当上述32个bit位被全部清“0”时,倍数计数加1,而最高两个字节,则表示对应数据块的当前状态;
步骤4、FAT文件系统开始初始化,判断应用层是否需要修改文件数据,若需要,先判断是否需要修改FAT表,若是,则擦写FAT表,若否,则进一步判断是否需要擦写数据块使用情况信息表,若是,擦写数据块使用情况信息表,若否,进一步判断数据块使用情况信息表、FAT表或者根目录所在的数据块号是否变化,若是,就往定位表中添加记录,若定位表已满,擦写定位表,FAT文件系统初始化结束;
步骤5、当需要将某个文件数据更换数据块或添加某个文件数据至新的数据块时,先将数据块使用情况信息表读入内存,根据数据块使用情况信息表查找擦除次数较少的当前状态为“空闲”或“已删除”的数据块,将该数据块的当前状态改为“正在准备写入”;再依次检查根目录、FAT表和数据块使用情况信息表是否需要修改且被擦除次数过多,如果是,则同样查找新数据块并修改其状态标志,而后依次写入文件数据,更新最终数据块状态写入数据块使用情况信息表。
2.根据权利要求1所述的一种在NOR Flash上建立FAT文件系统的优化方法,其特征在于:采用双备份的方式保存定位表、数据块使用情况信息表、FAT表、根目录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710015957.7/1.html,转载请声明来源钻瓜专利网。