CN118069419A - 一种Flash掉电保护方法、装置、设备以及存储介质 - Google Patents
一种Flash掉电保护方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN118069419A CN118069419A CN202410182572.XA CN202410182572A CN118069419A CN 118069419 A CN118069419 A CN 118069419A CN 202410182572 A CN202410182572 A CN 202410182572A CN 118069419 A CN118069419 A CN 118069419A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- target
- target data
- flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 125000004122 cyclic group Chemical group 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 19
- 238000011084 recovery Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种Flash掉电保护方法、装置、设备以及存储介质,所述方法包括:当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;判断目标数据块内的数据是否完整;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为存储目标数据块的备份数据的数据块;判断备份数据块内的数据是否完整;若完整,则对目标数据块中的所有数据进行擦除,并将备份数据块内的所有数据写入目标数据块。通过本发明可以在设备发生掉电情况时,对设备丢失的数据进行恢复。
Description
技术领域
本发明涉及非易失性存储器设计领域,尤其涉及一种Flash掉电保护方法、装置、设备以及存储介质。
背景技术
随着智能硬件的迅速发展,各种嵌入式设备对于非易失性存储的需求越来越多,对存储容量的要求也越来越大。Flash存储由于具有容量大、价格便宜、读取速度快等各种优点,成为非易失性存储的主流选择,被广泛应用于各种计算机及嵌入式设备。
Flash存储设备是以数据块的形式对数据进行存储的,每次往Flash器件写入数据前,必须先对整块数据进行擦除,将该数据块的数据全部擦除成0xff后,再对擦除完的数据块进行编程写入。由于单个数据块的数据较多,整个数据块擦除写入耗时较多,如果在数据块擦除写入的过程中设备突然掉电,将会导致数据写入失败,原数据块的数据有可能会丢失。如果这些数据是一些关键数据例如系统运行参数或者工作模式设置,那数据的丢失会进一步导致设备工作异常,甚至错误操作,造成更大的损失。
为了避免Flash器件在数据擦写时设备掉电而导致关键数据丢失,通常会采取一些技术措施防止这种情况的出现。目前常用的处理方式是增加系统掉电检测电路和后备供电系统,当设备掉电发生时,利用掉电检测电路检测到掉电事件,然后启用后备供电系统,确保flash数据擦写操作能够正常完成。虽然这种处理方式能够有效地防止设备掉电引起的数据丢失,但是会引入额外的硬件电路,增加整个设备的综合成本和系统复杂程度。
发明内容
本发明提供了一种Flash掉电保护方法、装置、设备以及存储介质,以解决设备掉电而导致数据丢失的技术问题。
为了解决上述技术问题,本发明实施例提供了一种Flash掉电保护方法,包括:
当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
判断目标数据块内的数据是否完整;
若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
判断备份数据块内的数据是否完整;
若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
作为优选方案,所述获取Flash设备的目标数据块,包括:
当Flash设备中只有一个数据块用于存储系统关键数据时,直接获取目标数据块;
当Flash设备中有多个数据块用于存储系统关键数据时,获取Flash设备的第一数据块;其中,所述第一数据块为:存储目标数据块所对应的地址信息的数据块;
判断第一数据块内的数据是否完整;
若不完整,则结束操作;若完整,则根据所述第一数据块中的地址信息,获取目标数据块。
作为优选方案,Flash设备通过以下方式进行数据写入:
获取待写入Flash设备的目标数据;其中,所述目标数据为系统关键数据;
获取备份数据块,对备份数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入备份数据块;
在确定所述目标数据完全写入备份数据块之后,若Flash设备中只有一个数据块用于存储系统关键数据,则获取目标数据块,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;
若Flash设备中有多个数据块用于存储系统关键数据,则获取目标数据块和第一数据块,对第一数据块中的所有数据进行擦除,并在擦除完成后将目标数据块所对应的地址信息写入第一数据块;当确定所述地址信息完全写入第一数据块时,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;
当确定所述目标数据完全写入目标数据块时,结束数据写入操作。
作为优选方案,所述获取待写入Flash设备的目标数据,包括:
将目标数据块中的所有数据读取至设备的缓存中;其中,目标数据块中的数据包括:系统关键数据以及CRC校验数据;
对缓存中的系统关键数据进行更新;
对更新后的系统关键数据进行CRC校验,并根据CRC校验结果,对缓存中的CRC校验数据进行更新,得到第一CRC校验数据,将更新后的系统关键数据以及所述第一CRC校验数据作为待写入Flash设备的目标数据。
作为优选方案,所述将目标数据块所对应的地址信息写入第一数据块,包括:
将目标数据块所对应的地址信息读取至缓存中进行CRC校验,得到第二CRC校验数据,继而将所述第二CRC校验结果与所述地址信息写入第一数据块;
所述判断第一数据块内的数据是否完整,包括:
将第一数据块中的所有数据读取到缓存中;
对缓存中第一数据块的地址信息进行CRC校验,将CRC校验结果与缓存中的第二CRC校验数据进行比对,若比对一致,则判断第一数据块内的数据完整;若比对不一致,则判断第一数据块内的数据不完整。
作为优选方案,所述判断目标数据块内的数据是否完整,包括:
将目标数据块中的所有数据读取至缓存中;
对缓存中目标数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断目标数据块内的数据完整;若比对不一致,则判断目标数据块内的数据不完整。
作为优选方案,所述判断备份数据块内的数据是否完整,包括:
将备份数据块中的所有数据读取至缓存中;
对缓存中备份数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断备份数据块内的数据完整;若比对不一致,则判断备份数据块内的数据不完整。
在上述实施例的基础上,本发明另一实施例提供了一种Flash掉电保护装置,包括:目标数据块获取模块、备份数据块获取模块以及数据恢复模块;
所述目标数据块获取模块,用于当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
所述备份数据块获取模块,用于判断目标数据块内的数据是否完整;若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
所述数据恢复模块,用于判断备份数据块内的数据是否完整;若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
在上述实施例的基础上,本发明又一实施例提供了一种电子设备,所述设备包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述发明实施例所述的Flash掉电保护方法。
在上述实施例的基础上,本发明又一实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行上述发明实施例所述的Flash掉电保护方法。
相比于现有技术,本发明实施例具有如下有益效果:
在本发明中,当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;判断目标数据块内的数据是否完整;若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;判断备份数据块内的数据是否完整;若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
通过本发明,可以在不增加设备硬件成本的的前提下,实现了设备发生掉电情况时,对系统丢失数据的恢复,保证了系统关键数据的完整性和可靠性,避免系统关键数据缺失而影响设备正常工作的问题。本发明有效地支持目前使用Flash存储器件的设备,能够解决由于Flash器件擦写数据时间长,从而导致在设备掉电情况下系统关键数据易丢失的难题。
附图说明
图1是本发明一实施例提供的一种Flash掉电保护方法的流程示意图;
图2是Flash设备中一个目标数据块的存储结构示意图;
图3是Flash设备中多个目标数据块的存储结构示意图;
图4是本发明一实施例提供的一种Flash掉电保护装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参照图1,为本发明一实施例提供的一种Flash掉电保护方法的流程示意图,包括如下具体步骤:
(1)当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
优选的,Flash设备通过以下方式进行数据写入:获取待写入Flash设备的目标数据;其中,所述目标数据为系统关键数据;获取备份数据块,对备份数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入备份数据块;在确定所述目标数据完全写入备份数据块之后,若Flash设备中只有一个数据块用于存储系统关键数据,则获取目标数据块,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;若Flash设备中有多个数据块用于存储系统关键数据,则获取目标数据块和第一数据块,对第一数据块中的所有数据进行擦除,并在擦除完成后将目标数据块所对应的地址信息写入第一数据块;当确定所述地址信息完全写入第一数据块时,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;当确定所述目标数据完全写入目标数据块时,结束数据写入操作。
优选的,所述获取待写入Flash设备的目标数据,包括:将目标数据块中的所有数据读取至设备的缓存中;其中,目标数据块中的数据包括:系统关键数据以及CRC校验数据;对缓存中的设备关键数据进行更新;对更新后的系统关键数据进行CRC校验,并根据CRC校验结果,对缓存中的CRC校验数据进行更新,得到第一CRC校验数据,将更新后的系统关键数据以及所述第一CRC校验数据作为待写入Flash设备的目标数据。
优选的,所述将目标数据块所对应的地址信息写入第一数据块,包括:将目标数据块所对应的地址信息读取至缓存中进行CRC校验,得到第二CRC校验数据,继而将所述第二CRC校验结果与所述地址信息写入第一数据块;所述判断第一数据块内的数据是否完整,包括:将第一数据块中的所有数据读取到缓存中;对缓存中第一数据块的地址信息进行CRC校验,将CRC校验结果与缓存中的第二CRC校验数据进行比对,若比对一致,则判断第一数据块内的数据完整;若比对不一致,则判断第一数据块内的数据不完整。
由于数据块存储设备是以数据块为单位进行存储的,修改写入任何一个数据都需要对整个数据块进行擦除和重新写入。因此若在对系统的关键数据进行写入时,将存储系统关键数据的数据块进行数据擦除后,且还未完成数据的重新写入时设备发生了掉电,那么此时由于数据块中的内容已全被擦除,数据块中的系统关键数据就会发生缺失。又因为系统关键数据是系统的运行参数和工作模式设置参数等重要数据,当系统关键数据缺失时,就会导致设备无法正常工作。
本发明则是通过将要写入目标数据块的系统关键数据先备份到备份数据块中,再对目标数据块进行擦除和写入,这样就可以在目标数据块发生数据缺失时,利用备份数据块中的备份数据来对目标数据块进行数据恢复,避免系统关键数据缺失而影响设备正常工作的问题。
本发明分为两个环节:系统关键数据的写入环节以及设备掉电后的数据恢复环节。
在系统关键数据的写入环节中,当Flash设备中只有一个数据块用于存储系统关键数据时,需要用到用于存储Flash设备的系统关键数据的目标数据块,以及用于存储目标数据块的备份数据的备份数据块。
请参照图2,为Flash设备中一个目标数据块的存储结构示意图,系统关键数据同时保存在Flash器件的目标数据块和备份数据块上,两个数据块的存储内容完全相同。其中,备份数据块主要用于关键数据写入前的备份,当发生设备掉电时可用于关键数据的恢复;目标数据块内的关键数据则是设备实际使用的数据,设备正常工作需要的关键数据都是从这里读取。
数据块存储内容包括关键数据和CRC校验数据。关键数据包括系统运行参数和工作模式设置参数等影响设备运行的数据,CRC校验数据是根据CRC校验算法对关键数据进行哈希运算后得到的校验结果。嵌入式设备的CPU在读出数据块的内容后,可以对所有的关键数据进行CRC运算,如果得到的运算结果与数据块里面的CRC校验数据一致。则说明该数据块的内容正确,不存在擦写错误,关键数据完整无误。
其数据写入流程如下:
S101、将目标数据块中的全部数据读取至缓存中(一般是设备的内存单元),缓存与数据块的结构相同,大小一致;其中,目标数据块中的数据包括:设备关键数据以及CRC校验数据;
需要注意的是,在对数据块中的数据进行操作时(修改数据或者数据CRC校验),需要先将数据块中的所有数据读取到缓存中,再在缓存中进行相应的操作,下述的各数据写入流程和数据恢复流程均同理。
S102、在缓存中对关键数据进行修改,并在修改完成后对缓存中的所有关键数据重新进行CRC校验,得到第一CRC校验数据,将第一CRC校验数据写入缓存的相应数据区域,覆盖掉原来的CRC校验数据;
S103、擦除备份数据块中所有的数据,并在擦除完成后将缓存中的所有数据写入备份数据块;
S104、判断备份数据块的数据写入是否完成,当确定数据完全写入后进入S105;其中,Flash设备中有个提示写操作是否完成的状态寄存器,可以通过查询所述状态寄存器来判断数据是否写入完成;
S105、擦除目标数据块中所有的数据,并在擦除完成后将缓存中所有数据写入目标数据块;
S106、判断目标数据块数据写入是否完成,当数据完全写入后结束系统关键数据的写入流程。
请参照图3,为Flash设备中多个目标数据块的存储结构示意图,当Flash设备中有多个数据块用于存储系统关键数据时,系统关键数据保存在Flash器件的多个数据块上。其中,备份数据块主要用于系统关键数据写入前的备份,当发生设备掉电时可用于关键数据的恢复;第一数据块内主要用于存储即将写入的数据块地址。备份数据块和目标数据块的存储结构相同,包括系统关键数据和CRC校验数据,CRC校验数据是根据CRC校验算法对关键数据进行哈希运算后得到的校验结果。
其数据写入流程如下:
S201、将设备发生掉电时,系统关键数据所在的目标数据块中的全部数据读取到缓存中(一般是设备的内存单元);缓存与数据块的结构相同,大小一致;其中,目标数据块中的数据包括:系统关键数据以及CRC校验数据;
S202、在缓存中对系统关键数据进行修改,并在修改完成后对缓存中的所有系统关键数据重新进行CRC校验,得到第一CRC校验数据,将第一CRC校验数据写入缓存的相应数据区域,覆盖掉原来的CRC校验数据;
S203、擦除备份数据块中所有的数据,并在擦除完成后将缓存中的所有数据写入备份数据块;
S204、判断备份数据块的数据写入是否完成,当确定数据完全写入后进入S205;其中,Flash设备中有个提示写操作是否完成的状态寄存器,可以通过查询所述状态寄存器来判断数据是否写入完成;
S205、擦除第一数据块中所有的数据,并在擦除完成后将目标数据块的地址信息写入第一数据块,同时对该地址信息进行CRC校验,得到地址信息的CRC校验结果,将该结果写入第一数据块中的CRC校验数据区域;
S206、判断第一数据块数据写入是否完成,当确定数据完全写入后进入S107;
S207、擦除目标数据块中所有的数据,并在擦除完成后将缓存中所有数据写入目标数据块;
S208、判断目标数据块数据写入是否完成,当数据完全写入后结束系统关键数据的写入流程。
优选的,所述获取Flash设备的目标数据块,包括:当Flash设备中只有一个数据块用于存储系统关键数据时,直接获取目标数据块;当Flash设备中有多个数据块用于存储系统关键数据时,获取Flash设备的第一数据块;其中,所述第一数据块为:存储目标数据块所对应的地址信息的数据块;判断第一数据块内的数据是否完整;若不完整,则结束操作;若完整,则根据所述第一数据块中的地址信息,获取目标数据块。
若在数据写入过程中设备发生了掉电,这就可能会造成数据块内部的数据丢失。由于备份数据块和目标数据块中的系统关键数据是按照先后顺序擦除和写入的,所以这两个数据块存储的数据不会同时出现丢失。当设备重新上电后,目标数据块的数据恢复环节如下:
当Flash设备中只有一个数据块用于存储写入数据时,其数据恢复流程如下:
S301、将目标数据块中的全部数据读取至缓存中(一般是设备的内存单元),然后对关键数据进行CRC检验计算;
(2)判断目标数据块内的数据是否完整;若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
优选的,所述判断目标数据块内的数据是否完整,包括:将目标数据块中的所有数据读取至缓存中,对缓存中目标数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断目标数据块内的数据完整;若比对不一致,则判断目标数据块内的数据不完整。
S302、将S301中计算得到的CRC校验结果和缓存中的第一CRC校验数据进行比较;如果两者一致,则说明目标数据块内的数据完整,无需数据恢复,直接结束流程;如果得到的CRC校验结果与缓存中的CRC校验数据不一致,则说明目标数据块的数据丢失,进入步骤303;
S303、读取备份数据块中的全部数据到缓存,然后对所有的关键数据进行CRC检验计算;
(3)判断备份数据块内的数据是否完整;若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
优选的,所述判断备份数据块内的数据是否完整,包括:将备份数据块中的所有数据读取至缓存中,对缓存中备份数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断备份数据块内的数据完整;若比对不一致,则判断备份数据块内的数据不完整。
S304、将S303中计算得到的CRC检验结果和缓存中的第一CRC校验数据进行比较,判断备份数据块内的数据是否完整,如果完整,进入步骤305;如果该数据不完整,直接结束流程;
S305、擦除目标数据块中所有的数据,并在擦除完成后将缓存中的所有数据写入目标数据块;
S306、判断目标数据块数据写入是否完成,当数据完全写入后结束数据恢复流程。
当Flash设备中有多个数据块用于存储写入数据时,其数据恢复流程如下:
S401、将第一数据块中目标数据块的地址信息读取至缓存中(一般是设备的内存单元),然后对所述地址信息进行CRC检验计算;
S402、将上述S401中计算得到的CRC校验结果和缓存中的CRC校验数据进行比对;如果两者一致,则说明第一数据块内的地址信息数据完整,进入S403;
S403、根据第一数据块内的地址信息定位到目标数据块,将目标数据块中的全部数据读取至缓存中(一般是设备的内存单元),然后对目标数据块的关键数据进行CRC检验计算;
S404、将S403中计算得到的CRC校验结果和缓存中的第一CRC校验数据进行比较;如果两者一致,则说明目标数据块内的数据完整,无需数据恢复,直接结束流程;如果得到的CRC校验结果与缓存中的CRC校验数据不一致,则说明目标数据块的数据丢失,进入步骤405;
S405、读取备份数据块中的全部数据到缓存,然后对所有的关键数据进行CRC检验计算;
S406、将S405中计算得到的CRC检验结果和缓存中的第一CRC校验数据进行比较,判断数据块内的数据是否完整,如果完整,进入步骤407;如果该数据不完整,直接结束流程;
S407、擦除目标数据块中所有的数据,并在擦除完成后将缓存中的所有数据写入目标数据块;
S408、判断目标数据块数据写入是否完成,当数据完全写入后结束数据恢复流程。
由此可见,本发明提供了一种Flash掉电保护方法,通过本发明,可以在不增加设备硬件成本的的前提下,无需额外的检测电路和后备供电系统,就可以实现设备发生掉电情况时,对系统丢失数据的恢复,保证了系统关键数据的完整性和可靠性,避免系统关键数据缺失而影响设备正常工作的问题。且在当设备正常供电后,能够恢复到正常工作状态。
实施例二
请参照图4,为本发明一实施例提供的一种Flash掉电保护装置的结构示意图,该装置包括:目标数据块获取模块、备份数据块获取模块以及数据恢复模块;
所述目标数据块获取模块,用于当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
所述备份数据块获取模块,用于判断目标数据块内的数据是否完整;若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
所述数据恢复模块,用于判断备份数据块内的数据是否完整;若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
所述领域的技术人员可以清楚地了解到,为的方便和简洁,上述描述的装置的具体工作过程,可参考前述方法实施例中对应的过程,在此不再赘述。
实施例三
相应地,本发明实施例提供了一种电子设备,所述设备包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述发明实施例所述的Flash掉电保护方法。
所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述设备可包括但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分。
实施例四
相应地,本发明实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行上述发明实施例所述的Flash掉电保护方法。
所述存储器可用于存储所述计算机程序,所述处理器通过运行或执行存储在所述存储器内的计算机程序,以及调用存储在存储器内的数据,实现所述设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述存储介质为计算机可读存储介质,所述计算机程序存储在所述计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种Flash掉电保护方法,其特征在于,包括:
当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
判断目标数据块内的数据是否完整;
若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
判断备份数据块内的数据是否完整;
若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
2.如权利要求1所述的Flash掉电保护方法,其特征在于,所述获取Flash设备的目标数据块,包括:
当Flash设备中只有一个数据块用于存储系统关键数据时,直接获取目标数据块;
当Flash设备中有多个数据块用于存储系统关键数据时,获取Flash设备的第一数据块;其中,所述第一数据块为:存储目标数据块所对应的地址信息的数据块;
判断第一数据块内的数据是否完整;
若不完整,则结束操作;若完整,则根据所述第一数据块中的地址信息,获取目标数据块。
3.如权利要求2所述的Flash掉电保护方法,其特征在于,Flash设备通过以下方式进行数据写入:
获取待写入Flash设备的目标数据;其中,所述目标数据为系统关键数据;
获取备份数据块,对备份数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入备份数据块;
在确定所述目标数据完全写入备份数据块之后,若Flash设备中只有一个数据块用于存储系统关键数据,则获取目标数据块,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;
若Flash设备中有多个数据块用于存储系统关键数据,则获取目标数据块和第一数据块,对第一数据块中的所有数据进行擦除,并在擦除完成后将目标数据块所对应的地址信息写入第一数据块;当确定所述地址信息完全写入第一数据块时,对目标数据块中的所有数据进行擦除,并在擦除完成后将所述目标数据写入目标数据块;
当确定所述目标数据完全写入目标数据块时,结束数据写入操作。
4.如权利要求3所述的Flash掉电保护方法,其特征在于,所述获取待写入Flash设备的目标数据,包括:
将目标数据块中的所有数据读取至设备的缓存中;其中,目标数据块中的数据包括:系统关键数据以及CRC校验数据;
对缓存中的系统关键数据进行更新;
对更新后的系统关键数据进行CRC校验,并根据CRC校验结果,对缓存中的CRC校验数据进行更新,得到第一CRC校验数据,将更新后的系统关键数据以及所述第一CRC校验数据作为待写入Flash设备的目标数据。
5.如权利要求4所述的Flash掉电保护方法,其特征在于,所述将目标数据块所对应的地址信息写入第一数据块,包括:
将目标数据块所对应的地址信息读取至缓存中进行CRC校验,得到第二CRC校验数据,继而将所述第二CRC校验结果与所述地址信息写入第一数据块;
所述判断第一数据块内的数据是否完整,包括:
将第一数据块中的所有数据读取到缓存中;
对缓存中第一数据块的地址信息进行CRC校验,将CRC校验结果与缓存中的第二CRC校验数据进行比对,若比对一致,则判断第一数据块内的数据完整;若比对不一致,则判断第一数据块内的数据不完整。
6.如权利要求4所述的Flash掉电保护方法,其特征在于,所述判断目标数据块内的数据是否完整,包括:
将目标数据块中的所有数据读取至缓存中;
对缓存中目标数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断目标数据块内的数据完整;若比对不一致,则判断目标数据块内的数据不完整。
7.如权利要求4所述的Flash掉电保护方法,其特征在于,所述判断备份数据块内的数据是否完整,包括:
将备份数据块中的所有数据读取至缓存中;
对缓存中备份数据块的系统关键数据进行CRC校验,将CRC校验结果与缓存中的第一CRC校验数据进行比对,若比对一致,则判断备份数据块内的数据完整;若比对不一致,则判断备份数据块内的数据不完整。
8.一种Flash掉电保护装置,其特征在于,包括:目标数据块获取模块、备份数据块获取模块以及数据恢复模块;
所述目标数据块获取模块,用于当系统关键数据写入Flash设备时发生掉电,且检测到设备上电后,获取Flash设备的目标数据块;其中,所述目标数据块为:Flash设备发生掉电时,存储Flash设备所写入的系统关键数据的数据块;所述系统关键数据包括:系统运行参数,以及系统工作模式设置参数;
所述备份数据块获取模块,用于判断目标数据块内的数据是否完整;若完整,则结束操作;若不完整,则获取Flash设备的备份数据块;其中,所述备份数据块为:存储目标数据块的备份数据的数据块;
所述数据恢复模块,用于判断备份数据块内的数据是否完整;若不完整,则结束操作;若完整,则对目标数据块中的所有数据进行擦除,并在擦除完成后将备份数据块内的所有数据写入目标数据块。
9.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的Flash掉电保护方法。
10.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如权利要求1至7中任意一项所述的Flash掉电保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182572.XA CN118069419A (zh) | 2024-02-19 | 2024-02-19 | 一种Flash掉电保护方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182572.XA CN118069419A (zh) | 2024-02-19 | 2024-02-19 | 一种Flash掉电保护方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118069419A true CN118069419A (zh) | 2024-05-24 |
Family
ID=91106878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410182572.XA Pending CN118069419A (zh) | 2024-02-19 | 2024-02-19 | 一种Flash掉电保护方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118069419A (zh) |
-
2024
- 2024-02-19 CN CN202410182572.XA patent/CN118069419A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933545B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
JP3233079B2 (ja) | データ処理システム及びデータ処理方法 | |
US6516400B1 (en) | Data storage, data processing system and method | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
US20080046778A1 (en) | Memory controller and semiconductor memory device | |
KR20000023497A (ko) | 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시메모리에 프로그램을 저장하는 방법 | |
US9552287B2 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
CN109582332B (zh) | 互联网摄像机的系统升级方法及装置 | |
CN114721602B (zh) | 一种基于FreeRTOS的Nor Flash滚动存储方法及装置 | |
CN112270945B (zh) | 记录是否有擦除时掉电的方法、装置、存储介质和终端 | |
CN111104064B (zh) | Flash存储器写保护处理方法及装置、计算机设备、介质 | |
CN113467709A (zh) | 存储器系统及其操作方法 | |
CN110865772A (zh) | 保护系统数据物理块擦除计数值的方法、装置、计算机设备及存储介质 | |
CN118069419A (zh) | 一种Flash掉电保护方法、装置、设备以及存储介质 | |
KR100692982B1 (ko) | 배드 블럭 정보가 기록된 난드 타입의 플래시 메모리 | |
JPH10124403A (ja) | ブロック消去型フラッシュメモリの書込み方法 | |
CN115421657A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
JP4127307B2 (ja) | データ記憶装置、データ処理システム、データ処理方法及びデータ処理装置 | |
CN113778485A (zh) | 电子芯片的系统运行方法、装置、电子芯片和存储介质 | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP4266742B2 (ja) | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム | |
CN102591738A (zh) | 数据管理方法、存储器控制器与嵌入式存储器储存装置 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
CN114816833B (zh) | 一种flash数据的写入方法、装置以及系统 | |
US20050068842A1 (en) | Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |