本发明涉及一种fiash文件系统,具体是一种yaffs文件系统掉电乱码保护方法。
背景技术:
1、yaffs(yet another flash file system)是一种fiash文件系统,它是一种日志结构的文件系统,当前norflash闪存的应用越来越多,yaffs文件系统在磨损均衡和掉电保护方面有独特优势,将yaffs文件系统应用到norflash闪存的应用场景时,会将norflash闪存分为多个块(block),每个块划分为多个页(page),页又会划分成两个区域,数据区域(data area)和空闲区域(spare area)。这种应用方式在频繁掉电的应用场景或者偶发掉电的场景,会出现yaffs文件系统乱码和目录丢失等情况,这样会导致系统无法正常启动或者重要文件丢失,造成了严重的经济损失。
2、因此,本领域技术人员提供了一种yaffs文件系统掉电乱码保护方法,以解决上述背景技术中提出的问题。
技术实现思路
1、本发明的目的在于提供一种yaffs文件系统掉电乱码保护方法,通过使用yaffs文件系统,对norflash进行page划分并结合软件ecc功能,加强了数据区域和空闲区域的校验,避免了系统掉电对文件系统产生乱码,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:
3、一种yaffs文件系统掉电乱码保护方法,包括以下步骤:
4、区域划分,将norflash闪存划分为多个块,每个块内又分为多个页,再将单个块的最后一页作为保留页,此保留页的内部划分为两个作用域,第一作用域为坏块标志域,第二作用域为页的ecc校验值域;
5、写操作,在执行写操作时,先通过算法计算当前页的软件ecc值,然后写入到当前块的最后一个页的正确位置中,最后才将页写入到norflash中;
6、读操作,在执行读操作时,先获取页数据,进而获取正确的ecc,最后将页数据计算的ecc与获取的ecc值进行比较,如果不相等,则说明之前写入操作时出现过掉电情况,此时会清零获取到的页数据,同时返回页读取错误码,比较过程中采用ecc处理模块,通过连续的读取请求有效减少从norflash闪存读取数据所需的时间;
7、标记坏块,如果读取出错时,则要将对应的块标记为坏块;
8、擦除操作,针对被标记的坏块,进行擦除处理。
9、作为本发明进一步的方案:所述ecc值进行比较的具体过程为:
10、综合特征生成模块使用从数据区域读取的使用者数据与空闲区域读取的奇偶校验码生成综合特征以确定是否存在错误;
11、将生成的综合特征输入到线性反馈移位寄存器中,线性反馈移位寄存器对综合特征进行数字计数以此得到错误存在数量;
12、错误查找定位模块针对存在的错误查找定位相应的页;
13、数据校正模块对输出数据进行校正,得到校正后的数据。
14、作为本发明再进一步的方案:在所述写操作中,将ecc值写入到当前块的最后一个页中的正确位置时,根据页计算索引,从而将此页的ecc写入到正确位置。
15、作为本发明再进一步的方案:在所述读操作中,获取正确的ecc是根据页计算索引,通过页索引位置获取正确的ecc。
16、作为本发明再进一步的方案:所述标记坏块时将保留页的第一作用域之坏块标志域的前两个字节清零,以表示此块为坏块。
17、作为本发明再进一步的方案:所述擦除操作的具体过程为:进行坏块检查,即检查是否存在坏块标记,若存在则将此块进行擦除处理。
18、与现有技术相比,本发明的有益效果是:
19、本发明通过使用yaffs文件系统,对norflash进行page划分并结合软件ecc功能,加强了数据区域和空闲区域的校验,避免了系统掉电对文件系统产生乱码,相比较现有的方法,将数据区域进行ecc校验,保存到空闲区的方式,本发明则可以将数据区域和空闲区域,都进行校验保护,任何一个域出错,都会产生校验错误,彻底解决了系统随机掉电情况下,对文件系统产生的破坏,导致系统文件丢失或者产生乱码问题,此外,该技术方案能够最大化的兼容现有软件,更改应用极为方便,增强了系统的安全和稳定性。
1.一种yaffs文件系统掉电乱码保护方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种yaffs文件系统掉电乱码保护方法,其特征在于,所述ecc值进行比较的具体过程为:
3.根据权利要求1所述的一种yaffs文件系统掉电乱码保护方法,其特征在于,在所述写操作中,将ecc值写入到当前块的最后一个页中的正确位置时,根据页计算索引,从而将此页的ecc写入到正确位置。
4.根据权利要求1所述的一种yaffs文件系统掉电乱码保护方法,其特征在于,在所述读操作中,获取正确的ecc是根据页计算索引,通过页索引位置获取正确的ecc。
5.根据权利要求1所述的一种yaffs文件系统掉电乱码保护方法,其特征在于,所述标记坏块时将保留页的第一作用域之坏块标志域的前两个字节清零,以表示此块为坏块。
6.根据权利要求1所述的一种yaffs文件系统掉电乱码保护方法,其特征在于,所述擦除操作的具体过程为:进行坏块检查,即检查是否存在坏块标记,若存在则将此块进行擦除处理。