一种嵌入式系统的数据存取方法及计算机可读存储介质与流程

文档序号:17859777发布日期:2019-06-11 22:47阅读:151来源:国知局

本发明涉及一种嵌入式系统的数据存取技术,尤其涉及在采用传统文件系统的环境下,为防止意外掉电对系统中的数据造成破坏,而设计的嵌入式系统的数据存取方法及计算机可读存储介质。



背景技术:

嵌入式系统在应用过程中,不可避免地会出现突然掉电等意外情况发生,造成系统中当前读写数据的损坏,而现有技术中为解决此类问题,通常会以增加“备份”的方式,额外增加存储介质备份相关系统数据,从而实现对系统的备份恢复。但相应的此类系统的硬件成本便会上升。



技术实现要素:

本发明的主要目的在于提供一种嵌入式系统的数据存取方法及计算机可读存储介质,以实现在无需增加额外存储介质的条件下,确保嵌入式系统断电后目标数据的有效性,以对嵌入式系统进行恢复,避免断电后系统奔溃。

为了实现上述目的,根据本发明的一个方面,提供了一种嵌入式系统的数据存取方法,步骤包括:s1文件系统执行在目标存储介质中存储数据任务,包括获取目标数据的数据长度,确定写顺序号,及进行目标数据的校验计算,以定义目标数据身份,形成关键数据;s2根据第一存取规则,分别写入关键数据至目标存储介质的第一及第二文件数据中;s3文件系统执行在目标存储介质中读取数据任务,包括依次对第一及第二文件数据中的关键数据进行合法性检验及校验计算;s4根据第二存取规则,读取第一及第二文件数据中的其一。

在优选实施方式中,该关键数据包括:校验数据及目标数据,该校验数据包括:目标数据的数据长度、校验值及写顺序号数据。

在优选实施方式中,该第一存取规则包括:文件系统读取各文件数据,择一做出判断:当发现有其中一个文件数据无效时,定义其为第一文件数据;当发现所有文件数据都有效但写顺序号不同时,以写顺序号较小的文件数据作为第一文件数据;当发现所有文件数据都无效或都有效时,任选其一定义为第一文件数据。

在优选实施方式中,该第二存取规则包括:文件系统对各文件数据的有效性进行判断,择一读取:当仅有一个文件数据有效的,则读取该文件数据;当各个文件数据都有效的,根据顺序号择一读取;当各个文件数据都有效的,顺序号相同的,择任一读取;当各个文件数据都无效的,执行s2,s3,s4步骤。

在优选实施方式中,该合法性检验及校验计算步骤包括:检查校验数据中的数据长度字段的合法性;对目标数据进行校验计算,验证校验值。

在优选实施方式中,该校验计算为crc循环冗余校验计算。

在优选实施方式中,该数据长度、校验值及写顺序号数据为4字节。

在优选实施方式中,该校验数据还包括:4字节的保留字段。

在优选实施方式中,该校验数据中的,该数据长度、校验值、保留字段及写顺序号数据采用大端方法保存,以高位字节数据在前,低位字节数据在后排列。

为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时,实现如上述该嵌入式系统的数据存取方法的步骤。

通过本发明提供的该嵌入式系统的数据存取方法及计算机可读存储介质,解决了相关技术中需要额外增加存储介质的问题,进而降低了此类嵌入式系统的生产成本,从而在无需增加额外存储介质的条件下,确保了此类嵌入式系统断电后目标数据的有效性,以对嵌入式系统进行恢复,解决了断电后系统奔溃的问题,提高了此类嵌入式系统的可靠性。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明的嵌入式系统的数据存取方法构架示意图;

图2为本发明的嵌入式系统的数据存取方法流程示意图;

文中表1为关键数据的数据结构表。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

为了使本领域的技术人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“s1”、“s2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

本发明提供的该嵌入式系统的数据存取方法,主要解决在嵌入式系统中,在采用通用文件系统的环境下,防止突然掉电对系统中的目标数据的破坏问题,从而给出了一种对该目标数据采取校验加特定步骤的双文件保存方案,来实现既能检测出文件中数据是否有效,又能确保至少有一个文件数据中保存的关键数据的有效性。

具体来说,请参阅图1至图2,本发明提供的该嵌入式系统的数据存取方法,主要步骤包括:s1文件系统执行在目标存储介质中存储数据任务,包括获取目标数据的数据长度,确定写顺序号,及进行目标数据的校验计算,以定义目标数据身份,形成关键数据。

请参阅表1,其中该关键数据主要包括:校验数据及目标数据,该校验数据主要包括:4字节的目标数据的数据长度、4字节的校验值及4字节的写顺序号数据。而在优选实施方式下,为了提高该关键数据的可识别性及扩展性,还可以包括4字节的保留字段,从而形成16个字节的校验数据。而在优选实施方案中,该校验数据中的,该数据长度、校验值、保留字段及写顺序号数据采用大端方法保存,以高位字节数据在前,低位字节数据在后排列。

表1为关键数据的数据示例结构:

表1

其中该校验数据中的该4字节的数据长度是该目标数据的长度。而该校验值数据在计算时,则是以校验值数据字段为0时,对该校验数据及目标数据进行校验计算后得出,具体来说,本发明的校验计算优选以循环冗余校验计算(crc)来进行示例说明,本领域技术人员应当理解,该示例仅用于说明本发明方案的可实现性,因此任何可以实现该校验计算相同目的的校验算法皆属于本发明的揭示范围。

因此在本实施例中,该校验数据和目标数据一起以crc-32方式进行计算,同时在计算crc-32时要将crc字段本身的值默认为0,由此正确得出该crc校验值;而该写顺序号初始化时值应设为1,之后每写一次目标数据则在原值的基础上增加1;而该保留字段可以由用户指定使用,而在本实施例中以不使用为例进行说明,因此该4字节的保留字段可以设置为0。

籍此,该文件系统在执行上述s1的步骤后,即可获取对应的关键数据,从而根据上述处理步骤获取的该校验数据,则可以证明与之对应的目标数据的身份,并为后续存取步骤提供判断依据。

s2根据第一存取规则,分别写入关键数据至目标存储介质的第一及第二文件数据中。具体来说,该第一存取规则的执行步骤主要包括:由文件系统读取存储介质中已存在的各文件数据,择一做出判断:i.当发现有其中一个文件数据无效时,定义其为第一文件数据;ii.当发现所有文件数据都有效但写顺序号不同时,以写顺序号较小的文件数据作为第一文件数据;iii.当发现所有文件数据都无效或都有效时,任选其一定义为第一文件数据。

需要解释的是,因为写入文件数据时,断电可能导致正在写入的文件数据无效,所以则必须保证两个文件数据中至少一个有效。因此根据本发明的方案进行循环操作状态下,当其中一个文件数据无效,另一个文件数据有效时,则必然要先写无效的文件数据。如假设当一个文件数据无效,另一个文件数据有效时,如果先写有效的文件数据,若此时又断电了,则会导致原来有效的文件数据也会变成无效,这样系统中的两个文件数据都将会丢失无效,造成系统奔渍。所以当写好/替换了这个无效的文件数据使其有效后,再写入/替换另一个原来就有数据的文件数据,就可确保不会产生此类风险。

进一步来说,在上述方案下进行实际操作中,该上述第一存取规则的执行步骤,主要用于确定需要第一个写入/替换的原有存储介质中的文件数据是哪个。执行步骤如:该文件系统读取该存储介质时,若发现两个文件数据中,有一个文件数据无效的,则将该文件数据作为第一个要写入/替换的文件数据;若两个文件数据都有效而该写顺序号不同的,则将该写顺序号较小的那个文件数据作为第一个要写入/替换的文件数据;若两个文件数据都有效或都无效,但写顺序号无法分辨差异的,则将其中任一个作为第一个要写入/替换的文件数据,而另一个文件数据则作为第二个要写入/替换的文件数据。

而后将该关键数据根据前述判断结果,写入/替换该第一文件数据,并在确保已经写到存储介质中后,再将相同的关键数据再次写入/替换到第二个文件数据中,同时亦确保第二文件数据中的内容已经写到存储介质中后为止。

s3文件系统执行在目标存储介质中读取数据任务,包括依次对第一及第二文件数据中的关键数据进行合法性检验及校验计算。其中,该合法性检验及校验计算步骤包括:检查校验数据中的数据长度字段的合法性;对目标数据进行校验计算,验证校验值。

具体来说,即在该嵌入式系统进行数据读取任务时,需依次对第一及第二文件数据进行读取,并检验数据的正确性,具体步骤包括:每读取一个文件数据,首先要检查该校验数据中的该数据长度字段的合法性,其次通过按照写入数据时计算crc的同样方法计算出crc值,若该计算出的crc值与当前读取的文件数据给出的crc值相同,则认为该文件数据有效,之后再读出写顺序号。

而后执行s4根据第二存取规则,来判断读取第一及第二文件数据中的其一作为最终读取的数据。其中需要说明的是,该第二存取规则包括:文件系统对各文件数据的有效性进行判断,择一读取:当仅有一个文件数据有效的,则读取该文件数据;当各个文件数据都有效的,根据顺序号择一读取;当各个文件数据都有效的,顺序号相同的,择任一读取;当各个文件数据都无效的,则执行s2,s3,s4步骤。

举例来说,该文件系统在执行第二存取规则时,会首先比价两个文件数据的的有效性,若只有一个文件数据有效,则采用并读取有效的该文件数据;若两个文件数据都有效,比较写顺序号,若写顺序号不同,则采用写顺序号较大/较小的文件数据,若写顺序号相同,则可读取任一文件数据都可以。

但若两个文件都无效的情况下,则只有一种情况,即是在存储介质中第一次写入关键数据时,第一文件数据还没有写完就掉电了,这种情况下,只需在系统重启后将其按照上述数据写入的方法,再次执行写入数据的步骤就可以了,即执行s2,s3,s4步骤。之后若有一次至少一个文件数据写成功后,就不再会出现两个文件数据都无效的情况了。

此外根据本发明的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时,实现如上述该嵌入式系统的数据存取方法的步骤。

其中本发明所示例的上述该嵌入式系统(embeddedsystem),可以是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。

综上所述,本发明提供的该嵌入式系统的数据存取方法及计算机可读存储介质,解决了相关技术中需要额外增加存储介质的问题,进而降低了此类嵌入式系统的生产成本,从而在无需增加额外存储介质的条件下,确保了此类嵌入式系统断电后目标数据的有效性,以对嵌入式系统进行恢复,解决了断电后系统奔渍的问题,提高了此类嵌入式系统的可靠性。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1