基于NOR flash的高可靠性文件系统设计方法技术方案

技术编号:25802361 阅读:18 留言:0更新日期:2020-09-29 18:36
本发明专利技术提供了一种基于NOR flash的高可靠性文件系统设计方法,flash闪存是一种非易失性存储器,NOR flash在进行写入扇区操作之前必须先执行擦除,当擦除的时候,如果扇区内容还没有更新,遇到突然断电情况,会造成扇区内容丢失,针对这个问题,设计了高可靠文件系统。该文件系统是针对NOR flash扇区内容更新的特点,对重要数据保护的一种设计方法。该方法是在NOR flash器件中划定部分扇区作为参数扇区,参数扇区采用每个主扇区对应一个备份扇区的设计方法,每次更新关键数据时,分别将关键数据依次写入对应主备扇区中,在读写这些关键数据时,文件系统会自动对主备扇区进行比较,自动恢复没有及时保存的数据,解决关键数据在NOR flash下的高可靠性存储和更新问题。

【技术实现步骤摘要】
基于NORflash的高可靠性文件系统设计方法
本专利技术涉及计算机
,特别涉及基于NORflash的高可靠性文件系统设计方法,该方法也可以应用于嵌入式系统中。
技术介绍
flash存储器(FlashMemory)是一种电子可擦除存储器,允许在操作中被多次擦或写,是非易失性的存储器,又称为闪存。NORflash由多个扇区组成,提供完整的寻址与数据总线,允许随机存取存储器上的任何区域。NORflash的更新原理都是只能将1写为0,而不能将0写为1,所以在NORflash更新之前,必须将对应的扇区擦除,而擦除的过程就是把所有位都写为1的过程。所以NORflash写入操作比较慢。例如,NORflash需要约520ms左右擦除一个128KB扇区,每个扇区更新都需要很长的时间进行擦写时间。因此NORflash在进行写操作时,会出现内容更新失败的情况。扇区内容更新过程中,由于掉电等异常情况出现,造成更新扇区内容失败,扇区内容变成全1,处于内容被擦除状态,不能恢复,这种写操作异常非常致命,会造成关键数据的缺失。
技术实现思路
本专利技术提供了一种基于NORflash的高可靠性文件系统设计方法,能避免NORflash的写操作异常情况,实现了关键文件的高可靠性更新和存储,重要参数内容不会被异常擦除。具体步骤如下:步骤a1:根据目标系统NORflash的扇区情况,将所有的关键文件生成自定义FAT信息;步骤a2:利用扇区工具,将FAT和关键文件一起生成扇区映射数据;步骤a3:将扇区映射数据写入参数扇区;步骤a4:在目标系统中使用havfs的文件接口访问关键文件;步骤a5:havfs通过FAT确定关键文件的扇区信息;步骤a6:havfs更新关键文件时,先更新对应主扇区的内容,然后在更新对应备份扇区的内容;步骤a7:更新扇区内容的动作是先擦除,再写入;步骤a8:havfs在读写关键文件时,要对主备扇区进行判断,是否损坏,如果损坏,则用对应扇区进行覆盖恢复;步骤a9:havfs能始终保证有一个正确的扇区可用,从而实现了关键文件的高可靠性读写。所述步骤a1中采用的是自定义FAT,就是通过指定扇区大小,确定每个文件所处扇区的位置、大小等属性信息,每个文件的属性信息构成了文件分配表内容。所述步骤a2中的扇区映射数据包含FAT信息和所有关键文件内容,按照FAT条目的顺序,FAT表和关键文件内容顺序存放到映射数据中,便于参数扇区的烧写。所述步骤a5是通过自定义FAT表中相关条目,寻找关键文件的扇区信息。所述步骤a6说明了havfs文件系统,对主备扇区的读写方法,在更新关键文件时,先通过FAT表找到对应的扇区,然后先擦除主扇区内容,并更新扇区内容,再擦除备份扇区,更新备份扇区内容。具体包括以下步骤:步骤b1:先将主扇区需要更新的内容复制到内存(一个扇区大小);步骤b2:擦除主扇区;步骤b3:将内存中更新的数据写到主扇区;步骤b4:擦除备份扇区;步骤b5:将内存中更新的数据写到备份扇区。所述步骤a8说明了havfs对错误扇区的恢复方法,在读取关键文件时,先判断对应扇区的好坏,如果发现写操作异常,则通过备份扇区对主扇区进行恢复,反之亦然。所述步骤a9说明了havfs关键文件读写的可靠性原理,始终会保证有一个扇区可用,不会出现写操作异常。上述专利技术中的有益效果为:NORflash保存的重要内容,在更新时,一旦发生掉电,很可能会影响内容的完整性,造成关键信息的缺失,havfs文件系统很好的解决了这个问题,能高可靠的更新关键文件,而不会出现写操作异常的情况。附图说明图1havfs主备扇区使用示意。图2havfs中对扇区的描述。图3havfs中FAT表与关键文件对应关系。图4havfs中扇区映射文件示意。具体实施方式针对本专利技术实现的技术创新特征和目的功效便于理解,结合图示和列举实例,进行阐述本专利技术。一、参数扇区的使用:havfs所使用的NORflash扇区,称之为参数扇区,参数扇区必须是偶数,且每个扇区的大小要一致。Havfs主备扇区如图1所示。主扇区都是在前半部分,备份扇区都是在后半部分,且主备一一对应。在图1示中,第三扇区和第一扇区的内容完全一致,第二扇区和第四扇区的内容完全一致。每个扇区的格式如图2所示,扇区格式描述分为扇区头和扇区体。扇区头,描述该扇区的基本情况,扇区头的C语言结构定义如下所示:structsector_head{unsignedintsector_crc;unsignedintmagic;intsect_size;intconfig_sectors;intfile_num;intgroup_size;intgenerate_time;intreserved;};其中sector_crc是扇区内容的CRC32的值,magic是标识havfs文件系统所使用的参数扇区,sect_size指示扇区大小,config_sectors指示havfs文件系统一共有多少个参赛扇区,file_num指示当前扇区保存了多少个关键文件,group_size指示文件分组大小,generate_time指示生产参数扇区映射文件的时间信息,reserved为保留字段。参数扇区的C语言定义如下所示:structsector_info{structsector_headhead;unsignedcharcontents[SECTOR_DATA_SIZE];};每个参数扇区都是由扇区头和扇区体组成,扇区体的大小为扇区大小减去扇区头的长度。二、文件分配表的定义havfs通过文件分配表来索引所有关键文件的位置信息。文件分区表保存在第一个参数扇区的扇区内容的头部,文件分配表和文件对应关系如图3所示。自定义FAT表有多个条目组成,每个关键文件一个条目,文件分配条目的C语言定义如下所示:structvfs_fat{unsignedcharvalid;//是否有效unsignedcharwhich_sector;//wheresectorsunsignedcharneed_code;//是否加密unsignedcharmulti_sectors;unsignedintreal_size;//文件长度unsignedintcode_len;//占用空间unsignedintsect_offset;unsignedcharin_cfg_sect;unsignedcharreserved[3];charfilename[FILE_NAME_LENTH];};其本文档来自技高网...

【技术保护点】
1.基于NOR flash的高可靠性文件系统设计方法,其特征在于,包含以下步骤:/n步骤a1:根据目标系统NOR flash的扇区情况,将所有的关键文件生成自定义FAT内容;/n步骤a2:利用扇区工具,将FAT内容和关键文件一起生成扇区映射数据;/n步骤a3:将扇区映射数据写入参数扇区;/n步骤a4:在目标系统中使用havfs的文件接口访问关键文件;/n步骤a5:havfs通过FAT确定关键文件的扇区信息;/n步骤a6:havfs更新关键文件时,先更新对应主扇区的内容,然后在更新对应备份扇区的内容;/n步骤a7:更新扇区内容的动作是先擦除,再写入;/n步骤a8:havfs在读写关键文件时,要对主备扇区进行判断,是否损坏,如果损坏,则用对应扇区进行覆盖恢复;/n步骤a9:havfs能始终保证有一个正确的扇区可用,从而实现了关键文件的高可靠性读写。/n

【技术特征摘要】
1.基于NORflash的高可靠性文件系统设计方法,其特征在于,包含以下步骤:
步骤a1:根据目标系统NORflash的扇区情况,将所有的关键文件生成自定义FAT内容;
步骤a2:利用扇区工具,将FAT内容和关键文件一起生成扇区映射数据;
步骤a3:将扇区映射数据写入参数扇区;
步骤a4:在目标系统中使用havfs的文件接口访问关键文件;
步骤a5:havfs通过FAT确定关键文件的扇区信息;
步骤a6:havfs更新关键文件时,先更新对应主扇区的内容,然后在更新对应备份扇区的内容;
步骤a7:更新扇区内容的动作是先擦除,再写入;
步骤a8:havfs在读写关键文件时,要对主备扇区进行判断,是否损坏,如果损坏,则用对应扇区进行覆盖恢复;
步骤a9:havfs能始终保证有一个正确的扇区可用,从而实现了关键文件的高可靠性读写。


2...

【专利技术属性】
技术研发人员:郑重刘海涛贺相洋
申请(专利权)人:北京天御云安科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1