CN118093275B - 数据保护方法、电子设备及计算机可读存储介质 - Google Patents
数据保护方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118093275B CN118093275B CN202410505533.9A CN202410505533A CN118093275B CN 118093275 B CN118093275 B CN 118093275B CN 202410505533 A CN202410505533 A CN 202410505533A CN 118093275 B CN118093275 B CN 118093275B
- Authority
- CN
- China
- Prior art keywords
- area
- data
- memory
- address
- starting address
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 description 14
- 238000004146 energy storage Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种数据保护方法、电子设备及计算机可读存储介质。该方法包括:上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中第一区域的第一类数据,第一区域为第一类数据的主存储区;若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中第二区域的第一类数据,第二区域为第一类数据的备份存储区;若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种数据保护方法、电子设备及计算机可读存储介质。
背景技术
电可擦可编程只读存储器(electrically erasable programmable read onlymemory,EEPROM)是一种常见的掉电后数据不丢失的存储芯片,因而在各领域(例如储能领域)被广泛应用。随着软件的升级,EEPROM对应的结构体中的数据会增加。然而在一些情况中(比如掉电),EEPROM中的数据可能不会相应地增加。这会导致上电后EEPROM与对应的结构体的长度不一致,引起读取错误并使结构体恢复默认值,从而造成数据丢失。
发明内容
本申请实施例提供了一种数据保护方法、电子设备及计算机可读存储介质。
第一方面,本申请实施例提供了一种数据保护方法,该方法应用于电可擦可编程只读存储器,该包括:
上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中第一区域的第一类数据,第一区域为第一类数据的主存储区;
若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中第二区域的第一类数据,第二区域为第一类数据的备份存储区;
若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;
若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
可选的,将第一区域或第二区域的第一类数据写入存储器对应的结构体中包括:
判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
若第一类数据的长度与结构体的长度相同,则将第一类数据写入结构体中;
若第一类数据的长度小于结构体的长度,则将第一类数据写入结构体中,并用默认值补全结构体的长度。
可选的,方法还包括:
读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
可选的,若存储器对应的结构体更新,则该方法还包括:
判断结构体的数据需要写入存储器中的地址;
判断存储器中地址对应的数据与结构体中需要写入地址的数据是否相同;
若地址对应的数据与需要写入地址的数据不相同,则在地址中写入需要写入地址的数据,并将地址对应的数据的校验值增加;
若地址对应的数据与需要写入地址的数据相同,则将地址对应的数据的校验值增加;
更新存储器中的校验值。
可选的,存储器中主存储区的写入在备份存储区之前。
可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。
可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。
第二方面,本申请实施例提供了一种电子设备,包括第一处理单元和电可擦可编程只读存储器,第一处理单元用于:
上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中的第一区域的第一类数据,第一区域为第一类数据的主存储区;
若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中的第二区域的第一类数据,第二区域为备份存储区;
若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;
若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
可选的,第一处理单元还包括第二处理单元,用于:
判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
若第一类数据的长度与结构体的长度相同,则将第一类数据写入结构体中;
若第一类数据的长度小于结构体的长度,则将第一类数据写入结构体中,并用默认值补全结构体的长度。
可选的,第一处理单元还包括第三处理单元,用于:
读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
可选的,第一处理单元还包括第四处理单元,用于在存储器对应的结构体更新时:
判断结构体的数据需要写入存储器中的地址;
判断存储器中地址对应的数据与结构体中需要写入地址的数据是否相同;
若地址对应的数据与需要写入地址的数据不相同,则在地址中写入需要写入地址的数据,并将地址对应的数据的校验值增加;
若地址对应的数据与需要写入地址的数据相同,则将地址对应的数据的校验值增加;
更新存储器中的校验值。
可选的,存储器中主存储区的写入在备份存储区之前。
可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。
可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。
第三方面,本申请实施例提供了一种电子设备,包括存储器、至少一个处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
基于本申请,可以通过EEPROM中主存储区和备份存储区中的校验值而不是数据长度,校验EEPROM中的数据,有助于避免软件升级导致EEPROM与对应的结构体的长度不一致而导致的数据丢失问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的数据保护方法的流程示意图。
图2是本申请实施例提供的EEPROM的结构示意图。
图3是本申请一实施例提供的数据保护方法的示例图。
图4是本申请另一实施例提供的数据保护方法的示例图。
图5是本申请一实施例提供的电子设备的结构示意图。
图6是本申请另一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行描述。
在当前的储能产业中,储能机器的功能复杂性日益提高,灵活、个性化的客户需求千差万别。而且市场竞争全球化,客户对机器的设置各不相同,所以一些设置数据需要掉电存储,避免客户每次开机都设置一遍。
EEPROM是一种常见的掉电后数据不丢失的存储芯片,因而在各领域(尤其是储能领域)被广泛应用。随着软件的升级,EEPROM对应的结构体中的数据会增加。然而在一些情况中(比如掉电),EEPROM中的数据可能不会相应地增加。这会导致上电后EEPROM与对应的结构体的长度不一致,引起读取错误并使结构体恢复默认值,从而造成数据丢失。
基于此,图1所示为本申请实施例提供了一种数据保护方法,该方法可以应用于电可擦可编程只读存储器,即EEPROM。
如图1所示,该方法包括步骤S110-S140。
在步骤S110,上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中第一区域的第一类数据,第一区域为第一类数据的主存储区。第一区域起始地址是主存储区的起始地址,可以通过EEPROM中的相关字节确定。例如,第一区域起始地址可以写在EEPROM最前面的字节中。值得注意的是,EEPROM中可以存储多种类型的数据,第一类数据可以是其中任意类型的数据。
在步骤S120,若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中第二区域的第一类数据,第二区域为第一类数据的备份存储区。第二区域起始地址是备份存储区的起始地址,也可以通过EEPROM中的相关字节确定。例如,第二区域起始地址也可以写在EEPROM最前面的字节中。
在步骤S130,若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值。
在步骤S140,若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
即在本申请实施例提供的数据保护方法中,对EEPROM进行分区,每个类型的数据的存储区域分为主存储区(或称“主区”)和备份存储区(或称“备份区”)。当上电后,首先对每类数据的主存储区的数据进行读取和校验。如果主存储区的数据通过校验,则将主存储区的数据写入EEPROM存储器对应的结构体中。如果主存储区的数据未通过校验,则对备份存储区的数据进行读取和校验。如果备份存储区的数据通过校验,则将备份存储区的数据写入EEPROM存储器对应的结构体中。如果备份存储区的数据未通过校验,则将EEPROM存储器对应的结构体恢复为默认值。值得注意的是,这里的校验可以是对主存储区或备份存储区的数据的校验值进行校验,校验方式本申请不进行限定。例如,这里的校验方式可以是和校验,主存储区或备份存储区的数据的校验值可以是通过和校验生成的。
基于本申请,可以通过EEPROM中主存储区和备份存储区中的校验值而不是数据长度,校验EEPROM中的数据,有助于避免软件升级导致EEPROM与对应的结构体的长度不一致而导致的数据丢失问题。
可选的,将第一区域或第二区域的第一类数据写入存储器对应的结构体中包括:
判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
若第一区域或第二区域的第一类数据的长度与结构体的长度相同,则将数据写入结构体中;
若第一区域或第二区域的第一类数据的长度小于结构体的长度,则将数据写入结构体中,并用默认值补全结构体的长度。
即当从EEPROM中读取出来的数据通过校验,但是数据长度小于对应的结构体的数据长度时,可以将读取出来的数据写入结构体并通过默认值补全缺少的数据。基于此,可以进一步防止结构体恢复默认值。
可选的,图1所示的方法还包括:
读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
即当上电后程序重新为每类数据分配的EEPROM区域地址与读取出的该类数据的EEPROM区域地址(主存储区地址或备份存储区地址)不同时,可以在读取原来全部该类数据后,把最新的区域地址更新到EEPROM中,并根据最新的区域地址把该类数据写入EEPROM中。基于此,可以灵活地更新数据在EEPROM中的存储地址,有助于避免数据的结构体长度增加时EEPROM对应位置存放不下的情况。
可选的,若存储器对应的结构体更新,则图1所示的方法还包括:
判断结构体的数据需要写入存储器中的地址;
判断存储器中该地址对应的数据与结构体中需要写入该地址的数据是否相同;
若该地址对应的数据与需要写入该地址的数据不相同,则在该地址中写入需要写入该地址的数据,并将该地址对应的数据的校验值增加;
若该地址对应的数据与需要写入该地址的数据相同,则将该地址对应的数据的校验值增加;
更新存储器中的校验值。
即当EEPROM对应的结构体更新,则在对EEPROM的数据进行更新之前,可以先判断EEPROM中是否已经存在需要更新的数据。当EEPROM中已经存在需要更新的数据,则不对EEPROM中的数据进行更新,有助于减少EEPROM的写入次数,延长EEPROM的使用寿命。
可选的,存储器中主存储区的写入在备份存储区之前。即当根据结构体更新EEPROM中的数据时,可以先写入主存储区,后写入备份存储区。基于此,有助于保证至少一个区域的数据可以通过校验。
可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。即每类数据的主存储区和备份存储区中可以分别包括相应的数据长度字节,用于表示该区域存储的数据的长度,数据长度字节可以位于相应数据之前。当然,数据长度字节也可以位于其他位置。数据长度字节的长度不进行限定,例如可以是两个字节。基于数据长度字节,可以明确需要读取的数据的长度,有助于更便捷地读取数据。
可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。即每类数据的主存储区和备份存储区中可以分别包括相应的校验值字节,用于表示该区域存储的数据的校验值,校验值字节可以紧接在相应数据之后。当然,校验值字节也可以位于其他位置。校验值字节的长度不进行限定,例如可以是两个字节。基于校验值字节,可以明确数据的校验值,有助于更便捷地校验数据。
下面结合图2-图4,以使用EEPROM的储能机器为例,对本申请实施例的数据保护方法进行举例介绍。
例如图2所示,储能机器可以对EEPROM区域进行分区,不同类型的数据存在不同的区域。每个类型的数据的存储区域可以进一步分为主存储区与备份存储区,每个分区的数据长度会放在最前面两个字节存储,对数据进行校验后(以和校验为例),把两个字节的校验值紧接在数据的后面存储,每个分区的区域起始地址都写在EEPROM的最前面。读取EEPROM每组数据时,会先读取每组数据最前面两个字节来获取长度,这样可以缩短读取时间,不用把整个EEPROM区域都读取一遍,提高了效率。
如图3所示,为储能机器对EEPROM的读取过程。
在步骤S310,设备启动后,先读取EEPROM中最前面的数据的区域起始地址来获取各类数据在EEPROM中的存储地址。
在步骤S320,读取EEPROM中各类数据的主存储区的前两位,得到数据长度。
在步骤S330,根据得到的长度,读取数据并进行校验。
在步骤S340,判断计算的校验值与读取的校验值是否相同。如果计算的校验值与读取的校验值不相同,则进入步骤S350。如果计算的校验值与读取的校验值相同,则进入步骤S360。
在步骤S350,读取EEPROM中各类数据的备份存储区的前两位,得到数据长度。
在步骤S351,根据得到的长度,读取数据并进行校验。
在步骤S352,判断计算的校验值与读取的校验值是否相同。如果计算的校验值与读取的校验值不相同,则进入步骤S353。如果计算的校验值与读取的校验值相同,则进入步骤S360。
在步骤S353,结构体数据恢复默认值。
在步骤S360,判断读取的数据长度是否与对应的结构体长度相同。如果相同,则进入步骤S361。如果不相同,则进入步骤S362。
在步骤S361,把读取的数据写入对应的结构体中。
在步骤S362,把读取的数据写入对应的结构体中,结构体中新增的长度用默认值填充。
在步骤S370,判断所有区域是否已读取。若所有区域已读取,则进入步骤S380。若并非所有区域已读取,则回到步骤S320。
在步骤S380,判断各类数据的地址是否发生了改变。如果发生改变,则进入步骤S381。如果没有发生改变,则进入步骤S382。
在步骤S381,根据新地址更新EEPROM中的长度、数据与校验值。
在步骤S382,更新EEPROM中的长度、数据与校验值。
基于图3所示的方法,有助于避免软件升级导致EEPROM与对应的结构体的长度不一致而导致的数据丢失问题。还可以灵活地更新数据在EEPROM中的存储地址,有助于避免数据的结构体长度增加时EEPROM对应位置存放不下的情况。
值得注意的是,如果结构体中的数据更新,则相应地更新EEPROM中的数据。在写入EEPROM数据时,可以先写入主存储区再写入备份存储区。
如图4所示,为储能机器向EEPROM写入数据的过程。
在步骤S401,判断结构体判断数据需要写入的Eeprom地址。
在步骤S402,读取Eeprom中主存储区的前两位,得到数据长度。
在步骤S403,根据得到的长度,读取数据。这里可以用循环来读取数据,例如for循环。
在步骤S404,判断读取的数值与需要写入的数值是否相同。如果不相同,则进入步骤S405。如果相同,则进入步骤S406。
在步骤S405,将新数据写入Eeprom中。
在步骤S406,对数据的校验值进行累加。
在步骤S407,判断主存储区的数据的读取是否完成。如果完成,则进入步骤S408。如果没完成,则回到步骤S403。
在步骤S408,更新Eeprom中数据的校验值。
至此,已完成主存储区数据的更新,接下来对备份存储区的数据进行更新。
在步骤S409,读取Eeprom中备份存储区的前两位,得到数据长度。
在步骤S410,根据得到的长度,读取数据。这里也可以用循环来读取数据,例如for循环。
在步骤S411,判断读取的数值与需要写入的数值是否相同。如果不相同,则进入步骤S412。如果相同,则进入步骤S413。
在步骤S412,将新数据写入Eeprom中。
在步骤S413,对数据的校验值进行累加。
在步骤S414,判断备份存储区的数据的读取是否完成。如果完成,则进入步骤S415。如果没完成,则回到步骤S410。
在步骤S415,更新Eeprom中数据的校验值。
至此,备份存储区的数据更新也已完成。
基于图4所示的方法,可以提高效率同时减少EEPROM的写入次数,延长EEPROM的使用寿命,并且保证了至少一个区域的数据是校验正确的。
上面对本申请实施例提供的方法进行了详细介绍,下面结合附图对本申请实施例提供的装置进行详细介绍。
参见图5,为本申请实施例提供的一种电子设备的结构示意图。如图5所示的电子设备500,可包括第一处理单元510和电可擦可编程只读存储器520,第一处理单元用于510:
上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中的第一区域的第一类数据,第一区域为第一类数据的主存储区;
若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中的第二区域的第一类数据,第二区域为第一类数据的备份存储区;
若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;
若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
可选的,第一处理单元510还包括第二处理单元511,用于:
判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
若第一区域或第二区域的第一类数据的长度与结构体的长度相同,则将数据写入结构体中;
若第一区域或第二区域的第一类数据的长度小于结构体的长度,则将数据写入结构体中,并用默认值补全结构体的长度。
可选的,第一处理单元510还包括第三处理单元512,用于:
读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
可选的,第一处理单元510还包括第四处理单元513,用于在存储器对应的结构体更新时:
判断结构体的数据需要写入存储器中的地址;
判断存储器中地址对应的数据与结构体中需要写入该地址的数据是否相同;
若该地址对应的数据与需要写入该地址的数据不相同,则在该地址中写入需要写入该地址的数据,并将该地址对应的数据的校验值增加;
若该地址对应的数据与需要写入该地址的数据相同,则将该地址对应的数据的校验值增加;
更新存储器中的校验值。
可选的,存储器中主存储区的写入在备份存储区之前。
可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。
可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。
本申请实施例还提供了一种电子设备。如图6所示,该电子设备600包括:至少一个处理器601、存储器602以及存储在该存储器602中并可在该至少一个处理器601上运行的计算机程序603,该处理器601执行计算机程序603时实现本申请提供的信道选择方法。
示例性的,计算机程序603可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器602中,并由处理器601执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在电子设备600中的执行过程。
本领域技术人员可以理解,图6仅仅是电子设备600的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备600还可以包括输入输出设备、网络接入设备、总线等。
处理器601可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(接入点plication specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器602可以是电子设备600的内部存储单元,例如电子设备600的硬盘或内存。存储器602也可以是电子设备600的外部存储设备,例如电子设备600上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flashcard)等。进一步地,存储器602还可以既包括电子设备600的内部存储单元也包括外部存储设备。存储器602用于存储计算机程序以及电子设备600所需的其它程序和数据。存储器602还可以用于暂时地存储已经输出或者将要输出的数据。
本实施例提供的电子设备600可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、ROM(read-only memory,只读存储器)、RAM(random access memory,随机存取存储器)、CD-ROM(compact disc read-only memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (7)
1.一种数据保护方法,其特征在于,所述方法应用于电可擦可编程只读存储器,包括:
上电后,根据所述存储器中第一类数据的第一区域起始地址,读取所述存储器中第一区域的所述第一类数据,所述第一区域为所述第一类数据的主存储区;
若所述第一区域的所述第一类数据的校验值未通过校验,根据所述存储器中所述第一类数据的第二区域起始地址,读取所述存储器中第二区域的所述第一类数据,所述第二区域为所述第一类数据的备份存储区;
若所述第二区域的所述第一类数据的校验值未通过校验,则将所述存储器对应的结构体恢复为默认值;
若所述第一区域或所述第二区域的所述第一类数据的校验值通过校验,则将所述第一区域或所述第二区域的所述第一类数据写入所述存储器对应的结构体中;
读取上电后程序为所述第一类数据分配的第三区域起始地址和第四区域起始地址;
判断所述第一区域起始地址与所述第三区域起始地址是否相同,或所述第二区域起始地址与所述第四区域起始地址是否相同;
若所述第一区域起始地址与所述第三区域起始地址不同,或所述第二区域起始地址与所述第四区域起始地址不同,根据所述第三区域起始地址更新所述存储器中所述第一类数据的所述第一区域起始地址,或根据所述第四区域起始地址更新所述存储器中所述第一类数据的所述第二区域起始地址;
根据更新后的所述第一区域起始地址或所述第二区域起始地址,重新写入所述第一区域或所述第二区域的所述第一类数据;
若所述存储器对应的所述结构体更新,则:
判断所述结构体的数据需要写入所述存储器中的地址;
判断所述存储器中所述地址对应的数据与所述结构体中需要写入所述地址的数据是否相同;
若所述地址对应的数据与所述需要写入所述地址的数据不相同,则在所述地址中写入所述需要写入所述地址的数据,并将所述地址对应的数据的校验值增加;
若所述地址对应的数据与所述需要写入所述地址的数据相同,则将所述地址对应的数据的校验值增加;
更新所述存储器中的所述校验值;
其中,所述存储器中所述第一类数据的校验值基于所述第一区域或所述第二区域中的校验值字节确定,所述校验值字节位于所述第一区域或所述第二区域的第一类数据之后。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一区域或所述第二区域的所述第一类数据写入所述存储器对应的结构体中包括:
判断所述第一区域或所述第二区域的所述第一类数据的长度是否与所述结构体的长度相同;
若所述第一类数据的长度与所述结构体的长度相同,则将所述第一类数据写入所述结构体中;
若所述第一类数据的长度小于所述结构体的长度,则将所述第一类数据写入所述结构体中,并用默认值补全所述结构体的长度。
3.根据权利要求2所述的方法,其特征在于,所述存储器中所述主存储区的写入在所述备份存储区之前。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述存储器中所述第一类数据的长度基于所述第一区域或所述第二区域中的数据长度字节确定,所述数据长度字节位于所述第一区域或所述第二区域的开始处。
5.一种电子设备,其特征在于,包括第一处理单元和电可擦可编程只读存储器,所述第一处理单元用于:
上电后,根据所述存储器中第一类数据的第一区域起始地址,读取所述存储器中的第一区域的所述第一类数据,所述第一区域为所述第一类数据的主存储区;
若所述第一区域的所述第一类数据的校验值未通过校验,根据所述存储器中所述第一类数据的第二区域起始地址,读取所述存储器中的第二区域的所述第一类数据,所述第二区域为所述第一类数据的备份存储区;
若所述第二区域的所述第一类数据的校验值未通过校验,则将所述存储器对应的结构体恢复为默认值;
若所述第一区域或所述第二区域的所述第一类数据的校验值通过校验,则将所述第一区域或所述第二区域的所述第一类数据写入所述存储器对应的结构体中;
读取上电后程序为所述第一类数据分配的第三区域起始地址和第四区域起始地址;
判断所述第一区域起始地址与所述第三区域起始地址是否相同,或所述第二区域起始地址与所述第四区域起始地址是否相同;
若所述第一区域起始地址与所述第三区域起始地址不同,或所述第二区域起始地址与所述第四区域起始地址不同,根据所述第三区域起始地址更新所述存储器中所述第一类数据的所述第一区域起始地址,或根据所述第四区域起始地址更新所述存储器中所述第一类数据的所述第二区域起始地址;
根据更新后的所述第一区域起始地址或所述第二区域起始地址,重新写入所述第一区域或所述第二区域的所述第一类数据;
若所述存储器对应的所述结构体更新,则:
判断所述结构体的数据需要写入所述存储器中的地址;
判断所述存储器中所述地址对应的数据与所述结构体中需要写入所述地址的数据是否相同;
若所述地址对应的数据与所述需要写入所述地址的数据不相同,则在所述地址中写入所述需要写入所述地址的数据,并将所述地址对应的数据的校验值增加;
若所述地址对应的数据与所述需要写入所述地址的数据相同,则将所述地址对应的数据的校验值增加;
更新所述存储器中的所述校验值;
其中,所述存储器中所述第一类数据的校验值基于所述第一区域或所述第二区域中的校验值字节确定,所述校验值字节位于所述第一区域或所述第二区域的第一类数据之后。
6.一种电子设备,包括存储器、至少一个处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410505533.9A CN118093275B (zh) | 2024-04-25 | 2024-04-25 | 数据保护方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410505533.9A CN118093275B (zh) | 2024-04-25 | 2024-04-25 | 数据保护方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118093275A CN118093275A (zh) | 2024-05-28 |
CN118093275B true CN118093275B (zh) | 2024-06-21 |
Family
ID=91155184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410505533.9A Active CN118093275B (zh) | 2024-04-25 | 2024-04-25 | 数据保护方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093275B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342571A (zh) * | 2021-05-26 | 2021-09-03 | 南京中科神光科技有限公司 | 一种应用于嵌入式系统的eeprom数据掉电不丢失方法 |
CN114490185A (zh) * | 2022-01-26 | 2022-05-13 | 西安开天电气可靠性实验室有限公司 | Fpga系统参数备份方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016149051A (ja) * | 2015-02-13 | 2016-08-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 |
-
2024
- 2024-04-25 CN CN202410505533.9A patent/CN118093275B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342571A (zh) * | 2021-05-26 | 2021-09-03 | 南京中科神光科技有限公司 | 一种应用于嵌入式系统的eeprom数据掉电不丢失方法 |
CN114490185A (zh) * | 2022-01-26 | 2022-05-13 | 西安开天电气可靠性实验室有限公司 | Fpga系统参数备份方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118093275A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US6330634B1 (en) | External storage apparatus having redundant boot blocks, and data processing method therefor | |
US6883060B1 (en) | Microcomputer provided with flash memory and method of storing program into flash memory | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
TW200537565A (en) | Semiconductor device and method for activating the same | |
US20160217068A1 (en) | Data storing method and embedded system | |
US20150370653A1 (en) | Replacement of a corrupt driver variable record | |
CN105242879A (zh) | 一种数据存储方法以及协议服务器 | |
CN112540725A (zh) | 非易失性数据存储方法、嵌入式系统以及存储介质 | |
US11199970B2 (en) | Data storage device and method for rewriting parameters thereof | |
CN110297726B (zh) | 具有串行存在检测数据的计算机系统及内存模块控制方法 | |
CN118093275B (zh) | 数据保护方法、电子设备及计算机可读存储介质 | |
CN109491951B (zh) | 一种配置数据的方法以及计算设备 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN110618828B (zh) | 一种数据更新方法及装置 | |
CN110865772A (zh) | 保护系统数据物理块擦除计数值的方法、装置、计算机设备及存储介质 | |
JP3651886B2 (ja) | 電子システム | |
CN114968297A (zh) | Ota升级方法、电子设备及芯片系统 | |
CN112261170B (zh) | 一种mac地址的读取方法、系统、设备以及介质 | |
US7849279B2 (en) | Method for the secure updating data areas in non volatile memory, device to perform such a method | |
CN113409867B (zh) | 非易失性存储器编程方法、装置、电子设备及存储介质 | |
JP5435647B2 (ja) | コンピュータシステム、メモリ初期化方法、及びプログラム | |
CN114201320B (zh) | 系统块升级方法、装置、可读存储介质及电子设备 | |
CN112463071B (zh) | 一种选择性清除非易失存储的方法及装置 | |
JP5708228B2 (ja) | Icカード及びicカードのリフレッシュ方法 |
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 | ||
GR01 | Patent grant |