首页> 中国专利> 非易失性数据存储方法、嵌入式系统以及存储介质

非易失性数据存储方法、嵌入式系统以及存储介质

摘要

本申请公开一种非易失性数据存储方法、嵌入式系统以及存储介质,方法包括:获取属于非易失性数据的初始系统参数;执行循环存储步骤,包括:判断系统参数是否有更新,是则获取更新后系统参数;针对每次系统参数的更新,执行如下步骤:若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,第一存储区域和第二存储区域为不同的存储区域。通过将更新后系统参数在第一存储区域和第二存储区域互为备份,这样即使在嵌入式系统读写数据时遇到异常复位或断电,也不至于影响到另一块数据,解决数据读写过程中遭遇系统异常复位或者断电时,导致数据不完整或者异常的问题。

著录项

  • 公开/公告号CN112540725A

    专利类型发明专利

  • 公开/公告日2021-03-23

    原文格式PDF

  • 申请/专利权人 深圳腾视科技有限公司;

    申请/专利号CN202011353433.7

  • 发明设计人 刘凯;谢兮煜;

    申请日2020-11-26

  • 分类号G06F3/06(20060101);G06F11/14(20060101);

  • 代理机构44542 深圳市恒程创新知识产权代理有限公司;

  • 代理人张小容

  • 地址 518052 广东省深圳市南山区高新南9道深圳湾生态科技园2301室

  • 入库时间 2023-06-19 10:22:47

说明书

技术领域

本发明涉及数据存储技术领域,尤其涉及一种非易失性数据存储方法、嵌入式系统以及存储介质。

背景技术

嵌入式系统由硬件和软件组成,是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。

在嵌入式系统中,现有的技术方法一般都是将非易失性数据存储在片外EEPROM(英文全称为Electrically Erasable Programmable Read Only Memory,译为电子抹除式可复写只读存储器)或者FLASH存储器(快闪存储器)中,由于系统对片外存储介质的读写速度比较慢,当数据量比较大时,刷写的时间就比较长,如果在数据写入的过程中遇到系统异常复位或者断电时,很难保证数据的完整性和正确性。

上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。

发明内容

本申请实施例通过提供一种非易失性数据存储方法、嵌入式系统以及存储介质,本申请旨在解决现有的嵌入式系统在数据写入的过程中遇到系统异常复位或者断电时,很难保证数据的完整性和正确性的问题。

本申请实施例提供了一种非易失性数据存储方法,用于嵌入式系统内非易失性数据的存储,所述方法包括:

获取属于非易失性数据的初始系统参数;

执行循环存储步骤,所述循环存储步骤包括:

判断系统参数是否有更新,是则获取更新后系统参数;

针对每次系统参数的更新,执行如下步骤:

若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。

在一些实施例中,所述获取属于非易失性数据的初始系统参数,包括:

读取嵌入式系统的外部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

在一些实施例中,所述获取属于非易失性数据的初始系统参数,包括:

读取嵌入式系统的内部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

在一些实施例中,所述获取属于非易失性数据的初始系统参数,包括:

判断系统是否为首次上电,若是则给系统参数赋予初始系统参数,获取赋值后的初始系统参数。

在一些实施例中,所述若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,包括:

若更新后系统参数与初始系统参数不同,在第一存储区域对更新后系统参数进行写入操作,达到设定时间阈值后,在第二存储区域对更新后系统参数进行写入操作。

在一些实施例中,所述第一存储区域为外部存储器的存储区域,所述第二存储区域为内部存储器的存储区域。

在一些实施例中,所述第一存储区域和所述第二存储区域分别为内部存储器的不同存储区域。

在一些实施例中,所述第一存储区域和所述第二存储区域分别为外部存储器的不同存储区域。

本申请还提出一种嵌入式系统,所述嵌入式系统包括处理器、与所述处理器电连接的存储器及存储在所述存储器上并可在所述处理器上运行的非易失性数据存储程序;所述非易失性数据存储程序被所述处理器执行时实现所述的非易失性数据存储方法的步骤。

本申请还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的非易失性数据存储方法的步骤。

本申请的实施例通过分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。通过将更新后系统参数在第一存储区域和第二存储区域互为备份,这样即使在嵌入式系统读写数据时遇到异常复位或断电,也不至于影响到另一块数据。本申请的实施例能很好的解决数据读写过程中遭遇系统异常复位或者断电时,导致数据不完整或者异常的问题。

附图说明

图1为本申请的嵌入式系统的一实施例的硬件架构图;

图2为本申请的非易失性数据存储方法的一实施例的流程框图;

图3为本申请的非易失性数据存储方法的另一实施例的流程框图;

图4为本申请的非易失性数据存储方法的又一实施例的流程框图;

图5为本申请的非易失性数据存储方法的再一实施例的流程框图。

具体实施方式

为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在嵌入式系统中,现有的技术方法一般都是将非易失性数据存储在片外EEPROM或者FLASH中,由于系统对片外存储介质的读写速度比较慢,当数据量比较大时,刷写的时间就比较长,如果在数据写入的过程中遇到系统异常复位或者断电时,很难保证数据的完整性和正确性。

因此,需要在系统异常复位或者断电时,保证非易失性数据的完整性和正确性,本申请提出一种非易失性数据存储方法、嵌入式系统以及存储介质。

请参照图1,下面介绍一种嵌入式系统,该嵌入式系统可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的嵌入式系统结构并不构成对嵌入式系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及非易失性数据存储程序。其中,操作系统是管理和控制嵌入式系统硬件和软件资源的程序,支持非易失性数据存储程序以及其它软件或程序的运行。

在图1所示的嵌入式系统中,网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行如上所述的非易失性数据存储方法的步骤。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

获取属于非易失性数据的初始系统参数;

执行循环存储步骤,所述循环存储步骤包括:

判断系统参数是否有更新,是则获取更新后系统参数;

针对每次系统参数的更新,执行如下步骤:

若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述获取属于非易失性数据的初始系统参数,包括:

读取嵌入式系统的外部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述获取属于非易失性数据的初始系统参数,包括:

读取嵌入式系统的内部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述获取属于非易失性数据的初始系统参数,包括:

判断系统是否为首次上电,若是则给系统参数赋予初始系统参数,获取赋值后的初始系统参数。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,包括:

若更新后系统参数与初始系统参数不同,在第一存储区域对更新后系统参数进行写入操作,达到设定时间阈值后,在第二存储区域对更新后系统参数进行写入操作。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述第一存储区域为外部存储器的存储区域,所述第二存储区域为内部存储器的存储区域。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述第一存储区域和所述第二存储区域分别为内部存储器的不同存储区域。

在一些实施例中,处理器1001可以用于调用存储器1005中存储的非易失性数据存储程序,并执行以所述非易失性数据存储方法包括:

所述第一存储区域和所述第二存储区域分别为外部存储器的不同存储区域。

本实施例的嵌入式系统通过本申请的实施例通过分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。通过将更新后系统参数在第一存储区域和第二存储区域互为备份,这样即使在嵌入式系统读写数据时遇到异常复位或断电,也不至于影响到另一块数据。本实施例能很好的解决数据读写过程中遭遇系统异常复位或者断电时,导致数据不完整或者异常的问题。

请参照图2,基于上述嵌入式系统的硬件架构,下面提出本申请的非易失性数据存储方法,用于嵌入式系统内非易失性数据的存储,所述非易失性数据存储方法包括:

S100、获取属于非易失性数据的初始系统参数;

其中,嵌入式系统的非易失性数据可以包括不需经常变更的程序或数据。如系统固件、SN(Serial Number的缩写,即产品序列号)、设备重启次数及其他一些需要配置的差异化参数。非易失性数据一般存储在外部存储器或内部存储器内。这里的外部存储器可选用只读存储器(英文全称为Read-OnlyMemory,简写为ROM)或者快闪存储器(即flashmemory)。进一步地,只读存储器可以包括可抹除可编程只读存储器(英文全称为ErasableProgrammable Read Only Memory,简写为EPROM),或者电子抹除式可复写只读存储器(英文全称为Electrically Erasable Programmable Read Only Memory,简写为EEPROM)。

在本实施例中,结构体(struct)指的是一种数据结构,是由相同类型或不同类型的数据构成的数据集合,常被用来封装一些属性组成新类型以简化运算。上述对系统非易失性数据进行结构体整合,可以是按照特定结构体格式对系统非易失性数据进行结构体整合,即按照特定结构体格式打包。对非易失性数据采用以下结构体缓存,格式具体为结构体内的数据字节长度、结构体内具体数据,例如:第1个参数parameter1至第N个参数parameterN、生成纵向冗余检验校验DevLRC,计算从parameter1开始到parameterN的数据的纵向冗余校验值。

具体地,在一些实施例中,可通过在外部存储器中读取初始系统参数,读取嵌入式系统的外部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

这里对初始系统参数进行循环冗余校验有利于校验初始系统参数的正确性和完整性。从外部存储器中读取的初始系统参数可能因为在上一次的写入操作中存在系统异常复位或者断电等原因,导致存储的初始系统参数有误,因此通过循环冗余校验可以对初始系统参数进行筛选,排除掉有误的初始系统参数。

通过对初始系统参数进行校验即可以得到初始系统参数的正确性和完整性。具体地,在一些实施例中,可以只通过仅校验特征码的前6字节来实现对初始系统参数进行循环冗余校验。例如通过以下代码对特征码的前6字节的检验。然后获取通过循环冗余校验的初始系统参数。

在其他的实施例中,可通过在内部存储器中读取初始系统参数。这里的内部存储器可选用嵌入式系统内部的快闪存储器。读取嵌入式系统的内部存储器中属于非易失性数据的初始系统参数,对所述初始系统参数进行循环冗余校验,获取验证通过的所述初始系统参数。

这里对初始系统参数进行循环冗余校验有利于校验初始系统参数的正确性和完整性。从内部存储器中读取的初始系统参数可能因为在上一次的写入操作中存在系统异常复位或者断电等原因,导致存储的初始系统参数有误,因此通过循环冗余校验可以对初始系统参数进行筛选,排除掉有误的初始系统参数。

通过对初始系统参数进行校验即可以得到初始系统参数的正确性和完整性。具体地,在一些实施例中,可以只通过仅校验特征码的前6字节来实现对初始系统参数进行循环冗余校验。例如通过以下代码对特征码的前6字节的检验。然后获取通过循环冗余校验的初始系统参数。

当在从外部存储器和内部存储器中获取的初始系统参数均校验不通过时,说明外部存储器和内部存储器中存储的初始系统参数有误。此时还应该判断系统是否为首次上电,若是则给系统参数赋予初始系统参数,获取赋值后的初始系统参数。

需要理解的是,本实施例中从外部存储器和内部存储器中获取的初始系统参数的顺序也可改变,例如先从内部存储器中获取的初始系统参数,并进行循环冗余校验。如果验证不通过则从外部存储器中获取的初始系统参数,并进行循环冗余校验。如果还不通过此时应该判断系统是否为首次上电,若是则给系统参数赋予初始系统参数,获取赋值后的初始系统参数。

如图2所示,执行循环存储步骤,所述循环存储步骤包括:

S210、判断系统参数是否有更新,是则获取更新后系统参数;

S220、针对每次系统参数的更新,执行如下步骤:

若更新后系统参数与初始系统参数不同,则分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。

比较更新后系统参数与初始系统参数,若更新后系统参数与初始系统参数不同,此时说明系统中属于非易失性数据的初始系统参数发生了更新,因此需要对更新后系统参数进行及时的备份。由于系统对片外存储介质的读写速度比较慢,当数据量比较大时,刷写的时间就比较长,如果在数据写入的过程中遇到系统异常复位或者断电时,很难保证数据的完整性和正确性。因此,在本申请的实施例中,分别在第一存储区域和第二存储区域对更新后系统参数进行备份,所述第一存储区域和所述第二存储区域为不同的存储区域。通过将更新后系统参数在第一存储区域和第二存储区域互为备份,这样即使在嵌入式系统读写数据时遇到异常复位或断电,也不至于影响到另一块数据。本实施例能很好的解决数据读写过程中遭遇系统异常复位或者断电时,导致数据不完整或者异常的问题。

请参照图3所示,具体的,所述第一存储区域为外部存储器的存储区域,所述第二存储区域为内部存储器的存储区域。此时外部存储器可以是EEPROM(即电子抹除式可复写只读存储器),内部存储器可以是FLASH(即快闪存储器)。

当更新后系统参数与初始系统参数不同时,在外部的EEPROM对更新后系统参数进行写入操作,达到设定时间阈值后,在内部的FLASH对更新后系统参数进行写入操作。从而,无论在嵌入式系统读写数据时遇到异常复位或断电,始终有外部的EEPROM或内部的FLASH的系统参数处于正常状态,不受异常复位或断电的影响,保证非易失性数据的完整性和正确性。

请参照图4所示,在其他一些实施例中,所述第一存储区域和所述第二存储区域分别为内部存储器的不同存储区域。具体地,第一存储区域和所述第二存储区域可以分别为同一快闪存储器内不同的块。

快闪存储器(即FLASH)具有能单独被清除的、能用实际存储块号进行寻址的存储块,通过借助分配器表(Zuordnertabelle)的地址转换,能将这些存储块从逻辑块号分别寻址到实际的存储块号之一。当更新后系统参数与初始系统参数不同时,在内部FLASH的第一存储块对更新后系统参数进行写入操作,达到设定时间阈值后,在内部FLASH的第二存储块对更新后系统参数进行写入操作。从而,无论在嵌入式系统读写数据时遇到异常复位或断电,始终有内部FLASH的某一块的系统参数处于正常状态,不受异常复位或断电的影响,保证非易失性数据的完整性和正确性。

请参照图5所示,在其他一些实施例中,所述第一存储区域和所述第二存储区域分别为外部EEPROM内的不同存储区域。

当更新后系统参数与初始系统参数不同时,在外部EEPROM的第一存储区域对更新后系统参数进行写入操作,达到设定时间阈值后,在外部EEPROM的第二存储区域对更新后系统参数进行写入操作。从而,无论在嵌入式系统读写数据时遇到异常复位或断电,始终有外部EEPROM的某一存储区域的系统参数处于正常状态,不受异常复位或断电的影响,保证非易失性数据的完整性和正确性。

值得注意的是,上述的设定时间阈值可以根据实际情况设置,例如可设置为1S,3S,5S等。应理解,这里提出的具体时间阈值是为了本领域技术人员理解本申请技术方案作出的举例,不应理解为对本申请技术方案的限制。本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的非易失性数据存储方法、嵌入式系统以及存储介质中的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号