一种动态规划的掉电存储方法及终端技术

技术编号:35913517 阅读:16 留言:0更新日期:2022-12-10 10:54
本发明专利技术提供的一种动态规划的掉电存储方法,包括:S1、创建有效数据区;S2、判断所述有效数据区的源数据块是否变化,若是,则记录变化位置及变化数据块得到临时文件,并创建临时数据区,将所述变化数据块存储在所述临时数据区;S3、判断是否接收到掉电重启信号,若是,则将所述临时数据区内的所述变化数据块更新到有效数据区中,并删除所述临时数据区;本发明专利技术以动态规划的方式将有变化的局部数据块存储至临时数据区,即可实现数据掉电保持,不需要更新整片有效数据区,减小了flash的擦除次数,并且有效数据区与临时数据区存储数据不同,减小了内存资源的浪费;此外,针对有效数据区和临时数据区内的数据进行数据校验,保证了数据的完整性和准确性。的完整性和准确性。的完整性和准确性。

【技术实现步骤摘要】
一种动态规划的掉电存储方法及终端


[0001]本专利技术涉及数据存储
,尤其涉及一种动态规划的掉电存储方法及终端。

技术介绍

[0002]嵌入式的工控设备面临一个常见问题:在往设备写入数据时,如果设备遇到突发掉电的情况,往往会导致设备内存数据缺失、乱码等异常情况。重启设备后,加载异常数据则会造成设备的运行逻辑混乱甚至崩溃。目前解决此类数据掉电保持问题的主要方法是在应用程序开辟两片容量大小相同的数据区,分别是临时数据区和有效数据区,两片数据区都有一个数据控制头,用于记录数据区的容量、实际有效数据长度以及写标志位,其业务流程如下:1、向设备写入数据时,先根据数据控制头将数据写入临时数据区,写入完成后将控制头的写入标志置位(如可设定写入完成后将写入标志置位为1),然后同步更新有效数据区的控制头;2、重启设备,判断临时数据区与有效数据区的数据控制头是否一致,若一致,则说明数据掉电保持有效,将临时数据区数据更新到有效数据区;若不一致,则说明数据掉电保持异常,弃用临时数据区的数据,直接加载有效数据区的数据。
[0003]但是这种方法存在以下问题:1、开辟两片相同容量大小的数据区用于存放同一数据,实际上浪费了设备内存资源;2、在更新数据区时,是更新整片数据区,并非局部更新,因此增加了不必要的flash(闪存)擦除,减少了flash的使用寿命;3、只是根据数据区的数据控制头标志来判断数据是否有效,缺少数据校验过程,不能真正保证数据的完整性和准确性。

技术实现思路

[0004]本专利技术所要解决的技术问题是:提供一种动态规划的掉电存储方法,提高内存资源利用率,保证数据的完整性和准确性。
[0005]为了解决上述技术问题,本专利技术采用的技术方案为:
[0006]一种动态规划的掉电存储方法,包括:
[0007]S1、创建有效数据区;
[0008]S2、判断所述有效数据区的源数据块是否变化,若是,则记录变化位置及变化数据块得到临时文件,并创建临时数据区,将所述变化数据块存储在所述临时数据区;
[0009]S3、判断是否接收到掉电重启信号,若是,则将所述临时数据区内的所述变化数据块更新到有效数据区中,并删除所述临时数据区。
[0010]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0011]一种动态规划的掉电存储终端,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述一种动态规划的掉电存储方法的各个步骤。
[0012]本专利技术的有益效果在于:有效数据区实时监测和判断是否有数据块发生变化,若数据块发生变化,则将发生变化的位置和数据块进行记录得到临时文件,而临时数据区仅
用于写入发生变化的数据块,实现以动态规划的方式选取有变化的局部数据块;重启设备时,仅需加载临时数据区,并更新有效数据区中发生变化的局部数据块,即可实现数据掉电保持,同时不需要更新整片有效数据区,减小了flash的擦除次数,并且有效数据区与临时数据区存储数据不同,减小了内存资源的浪费;此外,针对有效数据区和临时数据区内的数据进行数据校验,保证了数据的完整性和准确性。
附图说明
[0013]图1为本专利技术实施例提供的一种动态规划的掉电存储方法的步骤流程图;
[0014]图2为本专利技术实施例提供的一种动态规划的掉电存储方法的程序流程图;
[0015]图3为本专利技术实施例提供的一种动态规划的掉电存储终端的结构示意图;
[0016]标号说明:
[0017]1、一种动态规划的掉电存储终端;2、存储器;3、处理器。
具体实施方式
[0018]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0019]请参照图1,本专利技术实施例提供了一种动态规划的掉电存储方法,包括:
[0020]S1、创建有效数据区;
[0021]S2、判断所述有效数据区的源数据块是否变化,若是,则记录变化位置及变化数据块得到临时文件,并创建临时数据区,将所述变化数据块存储在所述临时数据区;
[0022]S3、判断是否接收到掉电重启信号,若是,则将所述临时数据区内的所述变化数据块更新到有效数据区中,并删除所述临时数据区。
[0023]从上述描述可知,本专利技术的有益效果在于:有效数据区实时监测和判断是否有数据块发生变化,若数据块发生变化,则将发生变化的位置和数据块进行记录得到临时文件,而临时数据区仅用于写入发生变化的数据块,实现以动态规划的方式选取有变化的局部数据块;重启设备时,仅需加载临时数据区,并更新有效数据区中发生变化的局部数据块,即可实现数据掉电保持,同时不需要更新整片有效数据区,减小了flash的擦除次数,并且有效数据区与临时数据区存储数据不同,减小了内存资源的浪费;此外,针对有效数据区和临时数据区内的数据进行数据校验,保证了数据的完整性和准确性。
[0024]进一步的,所述S1包括:
[0025]创建所述有效数据区和所述有效数据区对应的有效数据区控制头;
[0026]计算所述有效数据区内数据的第一哈希值,并将所述第一哈希值存储在所述有效数据区控制头。
[0027]由上述描述可知,有效数据区控制头用于存放数据信息,便于查验数据的完整性;同时计算数据哈希值,通过哈希校验保证数据的准确性。
[0028]进一步的,所述S2包括:
[0029]判断所述有效数据区内的源数据块是否发生变化,若是,则记录全部变化位置及变化数据块得到临时文件;
[0030]将所述临时文件进行压缩处理后,得到临时数据及临时数据信息,并创建临时数
据区和所述临时数据区对应的临时数据区控制头;
[0031]将所述临时数据存储在所述临时数据区,并将所述临时数据信息存储在所述临时数据区控制头。
[0032]由上述描述可知,当数据出现变化时,将变化的位置和数据块进行记录得到临时文件,统计所有的变化数据块,从而将源数据块分类为未变化数据块和已变化数据块,所有已变化数据块压缩后存入临时数据区,减少数据块的占用内存;临时文件中记录该数据块在有效数据区中的位置,便于后期在有效数据区进行对应数据块的更新;创建临时数据区用于写入发生变化的所有数据块,临时数据区的大小是动态变化的,更加灵活多变,实现以动态规划数据区的方式存储有变化的局部数据块,避免有效数据区和临时数据区存储同一数据的同时,减小数据区的占用内存,从而减小内存资源的浪费。
[0033]进一步的,所述S2还包括:
[0034]计算所述临时数据的第二哈希值作为所述临时数据信息,并将所述第二哈希值存储在所述临时数据区控制头。
[0035]由上述描述可知,针对临时数据区和有效数据区内的数据均增加哈希校验,能够更好的提高数据的完整性和准确性。
[0036]进一步的,所述S3包括:
[0037]判断是否接收到掉电重启信号,若是,则判断所述有效数据区是否存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态规划的掉电存储方法,其特征在于,包括:S1、创建有效数据区;S2、判断所述有效数据区的源数据块是否变化,若是,则记录变化位置及变化数据块得到临时文件,并创建临时数据区,将所述变化数据块存储在所述临时数据区;S3、判断是否接收到掉电重启信号,若是,则将所述临时数据区内的所述变化数据块更新到有效数据区中,并删除所述临时数据区。2.根据权利要求1所述的一种动态规划的掉电存储方法,其特征在于,所述S1包括:创建所述有效数据区和所述有效数据区对应的有效数据区控制头;计算所述有效数据区内数据的第一哈希值,并将所述第一哈希值存储在所述有效数据区控制头。3.根据权利要求1所述的一种动态规划的掉电存储方法,其特征在于,所述S2包括:判断所述有效数据区内的源数据块是否发生变化,若是,则记录全部变化位置及变化数据块得到临时文件;将所述临时文件进行压缩处理后,得到临时数据及临时数据信息,并创建临时数据区和所述临时数据区对应的临时数据区控制头;将所述临时数据存储在所述临时数据区,并将所述临时数据信息存储在所述临时数据区控制头。4.根据权利要求3所述的一种动态规划的掉电存储方法,其特征在于,所述S2还包括:计算所述临时数据的第二哈希值作为所述临时数据信息,并将所述第二哈希值存储在所述临时数据区控制头。5.根据权利要求2所述的一种动态规划的掉电存储方法,其特征在于,所述S3包括:判断是否接收到掉电重启信号,若是,则判断所述有效数据区是否存在,若所述有效数据区存在,则计算所述有效数据区内数据的第三哈希值,判断所述第一哈希值和第三哈希值是否一致,若是,则加载所述有效数据区内的数据;将所述临时数据区内的所述变化数据块更新到有效数据区中,并删除...

【专利技术属性】
技术研发人员:林镇欧新木付春启洪慰陈宗梨李志煌项凯方小英
申请(专利权)人:福州富昌维控电子科技有限公司
类型:发明
国别省市:

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

1