flash数据的保存方法、系统、计算机设备及存储介质技术方案

技术编号:27317708 阅读:21 留言:0更新日期:2021-02-10 09:53
本申请涉及一种flash数据的保存方法、装置、计算机设备和存储介质。其中,方法包括以下步骤:配置A、B两个扇区,将每个扇区分为n组;读取A和B扇区中同一组数据的有效标记值,根据两个扇区中同一组数据的有效标记值寻找上次数据记录的位置;结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据;新数据由上次数据记录的位置的下一组写入。本申请技术方案通过每组的有效标记值寻找上次数据记录的位置,并且判断两个扇区中的无效扇区,写入数据前删除无效扇区的数据,同时,数据从上次数据记录位置的下一组写入,提升有效写入地址,减少扇区擦除操作,提升时效性。提升时效性。提升时效性。

【技术实现步骤摘要】
flash数据的保存方法、系统、计算机设备及存储介质


[0001]本申请涉及深度相机
,特别是涉及一种flash数据的保存方法、系统、计算机设备及存储介质。

技术介绍

[0002]现如今的计算机系统里面,挂载几个flash芯片,以达到能够永久保存更多数据的做法,已经不是什么新鲜事了。存储芯片的容量越做越大,也意味着其保存的数据也越来越多,这样一来,如何高效安全的读写flash芯片,显得尤为重要。此外,嵌入式设备越做越小,越难以植入UPS供电系统,此时flash芯片的异常掉电处理,同样值得关注。
[0003]在当前的flash数据写入过程,一般是分为两个步骤,即先擦除指定地址所在的扇区,再在指定地址上写入数据。当一些数据需要频繁的写入,以这种粗暴的操作方式会导致以下问题:每次读写都在一个固定的地址,但是flash可读写次数是固定的,这样会导致flash过早损坏,同时,每次写数据前,都要擦除整个扇区,当程序需要频繁的往flash中写数据时,擦除过程将会耗费极大的时间,严重影响程序的时效性。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种flash数据的保存方法。
[0005]一种flash数据的保存方法,包括以下步骤:
[0006]配置A、B两个扇区,将每个扇区分为n组;
[0007]读取A和B扇区中同一组数据的有效标记值,根据两个扇区中同一组数据的有效标记值寻找上次数据记录的位置;
[0008]结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据;
[0009]新数据由上次数据记录的位置的下一组写入。
[0010]在一个实施例中,还包括以下步骤:
[0011]根据上次数据记录的位置,读取其下一组的数据;
[0012]判断读取的该组数据是否存在;
[0013]若数据存在,则表征上次掉电导致数据写入失败,并记录上次写入失败标记。
[0014]在一个实施例中,所述根据两个扇区中同一组数据的有效标记值寻找上次数据记录的位置,具体包括以下步骤:
[0015]读取A扇区和B扇区的第一组数据的有效标记值;
[0016]根据两个第一组数据的有效标记值寻找上次数据记录的位置。
[0017]在一个实施例中,所述根据两个第一组数据的有效标记值寻找上次数据记录的位置,具体包括以下步骤:
[0018]A扇区第一组数据记为A1,B扇区第一组数据记为B1;
[0019]分为读取A1和B1内的有效标记值,A1的有效标记值记为X,B1的有效标记值记为Y,同时,有效标记值的数值为0xFF时表征该组数据无效,有效标记值的数值为0x7F时表征该
组数据有效;
[0020]若X、Y都等于0xFF,则表征A扇区和B扇区的数据均无效,默认An或Bn为上次数据记录的位置,下次读取数据时读取An或Bn的数据,An为A扇区的最后一组数据,Bn为B扇区的最后一组数据;
[0021]若X、Y都等于0x7F,则须再读取An内的有效标记值Z,若Z等于0xFF,则上次数据记录的位置在A1;若Z不等于0xFF,则上次数据记录的位置在B1;
[0022]若X等于0xFF,Y等于0x7F,则从B扇区的最后一组数据往前读取,寻找第一个有效标记值为0x7F的组数据Bt即为上次数据记录的位置,Bt表示为B扇区第t组的数据;
[0023]若X等于0x7F,Y等于0xFF,则从A扇区的最后一组数据往前读取,寻找第一个有效标记值为0x7F的组数据At即为上次数据记录的位置,At表示为A扇区第t组的数据。
[0024]在一个实施例中,所述结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据,具体包括以下步骤:
[0025]当X、Y都等于0x7F,则须再读取An内的有效标记值Z,若Z等于0xFF,则擦除B扇区内所有数据;若Z不等于0xFF,则擦除A扇区内所有数据。
[0026]在一个实施例中,还包括以下步骤:
[0027]判断上次掉电中是否存在擦除扇区失败;
[0028]若上次数据记录的位置在A扇区,则读取Bn的有效标记值;当Bn的有效标记值不等于0xFF时,则重新擦除B扇区;
[0029]若上次数据记录的位置在B扇区,则读取An的有效标记值;当An的有效标记值不等于0xFF时,则重新擦除A扇区。
[0030]在一个实施例中,还包括以下步骤:
[0031]新数据写入操作时,解析上次写入失败标记的值;
[0032]若上次写入失败标记表征为失败时,则需跳过上次写入操作失败的组别;
[0033]若上次写入失败标记表征为成功时,则正常判断写入。
[0034]在一个实施例中,所述若上次写入失败标记表征为失败时,则需跳过上次写入操作失败的组别,具体包括以下步骤:
[0035]若读取的组别为扇区的最后一组,则擦除另一扇区的数据,写入时,切换至刚擦除的扇区的第一组进行写入,写入完成后擦除之前写满的扇区;
[0036]若读取的组别为扇区的倒数第二组,则写入时,切换至另一扇区的第一组进行写入,写入完成后擦除之前写满的扇区;
[0037]若读取的组别为除上述两种情况外的任意一组,则写入读取组别的下一组;
[0038]除上述情况外,所述若上次写入失败标记表征为成功时,则正常判断写入,具体包括以下步骤:
[0039]若读取的组别为扇区的最后一组,则写入时,切换至另一扇区的第一组进行写入,写完后擦除之前写满的扇区;
[0040]若读取的组别是不为最后一组的任意一组,则写入读取组别的下一组。
[0041]一种flash数据的保存系统,包括:
[0042]配置模块,用于配置A、B两个扇区,将每个扇区分为n组;
[0043]寻找模块,用于读取A和B扇区中同一组数据的有效标记值,根据两个扇区中同一
组数据的有效标记值寻找上次数据记录的位置;
[0044]擦除模块,用于结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据;及
[0045]写入模块,用于新数据由上次数据记录的位置的下一组写入。
[0046]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现flash数据的保存方法的步骤。
[0047]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现flash数据的保存方法的步骤。
[0048]上述方法采用一种flash内存空间分区管理办法,在内存中,将所需要存储特定数据的存储空间划分为两个扇区大小进行管理,每个扇区依据特定数据的大小,划分为各个组次,flash的读写均以组为单位进行操作;写入操作时,先读取扇区内的信息,判断本次写入的地址,数据写入时,数据末尾外加一个特定的有效标记值,用于表示此组数据是否有效,防止数据写入一半时掉电,导致数据不可靠。同时,写入完成后,立本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种flash数据的保存方法,其特征在于,包括以下步骤:配置A、B两个扇区,将每个扇区分为n组;读取A和B扇区中同一组数据的有效标记值,根据两个扇区中同一组数据的有效标记值寻找上次数据记录的位置;结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据;新数据由上次数据记录的位置的下一组写入。2.根据权利要求1所述的flash数据的保存方法,其特征在于,还包括以下步骤:根据上次数据记录的位置,读取其下一组的数据;判断读取的该组数据是否存在;若数据存在,则表征上次掉电导致数据写入失败,并记录上次写入失败标记。3.根据权利要求1或2所述的flash数据的保存方法,其特征在于,所述根据两个扇区中同一组数据的有效标记值寻找上次数据记录的位置,具体包括以下步骤:读取A扇区和B扇区的第一组数据的有效标记值;根据两个第一组数据的有效标记值寻找上次数据记录的位置。4.根据权利要求3所述的flash数据的保存方法,其特征在于,所述根据两个第一组数据的有效标记值寻找上次数据记录的位置,具体包括以下步骤:A扇区第一组数据记为A1,B扇区第一组数据记为B1;分为读取A1和B1内的有效标记值,A1的有效标记值记为X,B1的有效标记值记为Y,同时,有效标记值的数值为0xFF时表征该组数据无效,有效标记值的数值为0x7F时表征该组数据有效;若X、Y都等于0xFF,则表征A扇区和B扇区的数据均无效,默认An或Bn为上次数据记录的位置,下次读取数据时读取An或Bn的数据,An为A扇区的最后一组数据,Bn为B扇区的最后一组数据;若X、Y都等于0x7F,则须再读取An内的有效标记值Z,若Z等于0xFF,则上次数据记录的位置在A1;若Z不等于0xFF,则上次数据记录的位置在B1;若X等于0xFF,Y等于0x7F,则从B扇区的最后一组数据往前读取,寻找第一个有效标记值为0x7F的组数据Bt即为上次数据记录的位置,Bt表示为B扇区第t组的数据;若X等于0x7F,Y等于0xFF,则从A扇区的最后一组数据往前读取,寻找第一个有效标记值为0x7F的组数据At即为上次数据记录的位置,At表示为A扇区第t组的数据。5.根据权利要求4所述的flash数据的保存方法,其特征在于,所述结合特定组的有效标记值判断无效扇区,擦除无效扇区的数据,具体包括以下步骤:当X、Y都等于0x7F,则须再读取An内的有效标记值Z,若Z等于...

【专利技术属性】
技术研发人员:方利红柳振强包建意陈波徐韡
申请(专利权)人:杭州艾芯智能科技有限公司
类型:发明
国别省市:

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

1