本技术涉及数据存储领域,尤其涉及一种数据保护方法、电子设备及计算机可读存储介质。
背景技术:
1、电可擦可编程只读存储器(electrically erasable programmable read onlymemory,eeprom)是一种常见的掉电后数据不丢失的存储芯片,因而在各领域(例如储能领域)被广泛应用。随着软件的升级,eeprom对应的结构体中的数据会增加。然而在一些情况中(比如掉电),eeprom中的数据可能不会相应地增加。这会导致上电后eeprom与对应的结构体的长度不一致,引起读取错误并使结构体恢复默认值,从而造成数据丢失。
技术实现思路
1、本技术实施例提供了一种数据保护方法、电子设备及计算机可读存储介质。
2、第一方面,本技术实施例提供了一种数据保护方法,该方法应用于电可擦可编程只读存储器,该包括:
3、上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中第一区域的第一类数据,第一区域为第一类数据的主存储区;
4、若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中第二区域的第一类数据,第二区域为第一类数据的备份存储区;
5、若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;
6、若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
7、可选的,将第一区域或第二区域的第一类数据写入存储器对应的结构体中包括:
8、判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
9、若第一类数据的长度与结构体的长度相同,则将第一类数据写入结构体中;
10、若第一类数据的长度小于结构体的长度,则将第一类数据写入结构体中,并用默认值补全结构体的长度。
11、可选的,方法还包括:
12、读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
13、判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
14、若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
15、根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
16、可选的,若存储器对应的结构体更新,则该方法还包括:
17、判断结构体的数据需要写入存储器中的地址;
18、判断存储器中地址对应的数据与结构体中需要写入地址的数据是否相同;
19、若地址对应的数据与需要写入地址的数据不相同,则在地址中写入需要写入地址的数据,并将地址对应的数据的校验值增加;
20、若地址对应的数据与需要写入地址的数据相同,则将地址对应的数据的校验值增加;
21、更新存储器中的校验值。
22、可选的,存储器中主存储区的写入在备份存储区之前。
23、可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。
24、可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。
25、第二方面,本技术实施例提供了一种电子设备,包括第一处理单元和电可擦可编程只读存储器,第一处理单元用于:
26、上电后,根据存储器中第一类数据的第一区域起始地址,读取存储器中的第一区域的第一类数据,第一区域为第一类数据的主存储区;
27、若第一区域的第一类数据的校验值未通过校验,根据存储器中第一类数据的第二区域起始地址,读取存储器中的第二区域的第一类数据,第二区域为备份存储区;
28、若第二区域的第一类数据的校验值未通过校验,则将存储器对应的结构体恢复为默认值;
29、若第一区域或第二区域的第一类数据的校验值通过校验,则将第一区域或第二区域的第一类数据写入存储器对应的结构体中。
30、可选的,第一处理单元还包括第二处理单元,用于:
31、判断第一区域或第二区域的第一类数据的长度是否与结构体的长度相同;
32、若第一类数据的长度与结构体的长度相同,则将第一类数据写入结构体中;
33、若第一类数据的长度小于结构体的长度,则将第一类数据写入结构体中,并用默认值补全结构体的长度。
34、可选的,第一处理单元还包括第三处理单元,用于:
35、读取上电后程序为第一类数据分配的第三区域起始地址和第四区域起始地址;
36、判断第一区域起始地址与第三区域起始地址是否相同,或第二区域起始地址与第四区域起始地址是否相同;
37、若第一区域起始地址与第三区域起始地址不同,或第二区域起始地址与第四区域起始地址不同,根据第三区域起始地址更新存储器中第一类数据的第一区域起始地址,或根据第四区域起始地址更新存储器中第一类数据的第二区域起始地址;
38、根据更新后的第一区域起始地址或第二区域起始地址,重新写入第一区域或第二区域的第一类数据。
39、可选的,第一处理单元还包括第四处理单元,用于在存储器对应的结构体更新时:
40、判断结构体的数据需要写入存储器中的地址;
41、判断存储器中地址对应的数据与结构体中需要写入地址的数据是否相同;
42、若地址对应的数据与需要写入地址的数据不相同,则在地址中写入需要写入地址的数据,并将地址对应的数据的校验值增加;
43、若地址对应的数据与需要写入地址的数据相同,则将地址对应的数据的校验值增加;
44、更新存储器中的校验值。
45、可选的,存储器中主存储区的写入在备份存储区之前。
46、可选的,存储器中第一类数据的长度基于第一区域或第二区域中的数据长度字节确定,数据长度字节位于第一区域或第二区域的开始处。
47、可选的,存储器中第一类数据的校验值基于第一区域或第二区域中的校验值字节确定,校验值字节位于第一区域或第二区域的第一类数据之后。
48、第三方面,本技术实施例提供了一种电子设备,包括存储器、至少一个处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面中任一项所述的方法。
49、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的方法。
50、第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
51、基于本技术,可以通过eeprom中主存储区和备份存储区中的校验值而不是数据长度,校验eeprom中的数据,有助于避免软件升级导致eeprom与对应的结构体的长度不一致而导致的数据丢失问题。
1.一种数据保护方法,其特征在于,所述方法应用于电可擦可编程只读存储器,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一区域或所述第二区域的所述第一类数据写入所述存储器对应的结构体中包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,若所述存储器对应的所述结构体更新,则所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述存储器中所述主存储区的写入在所述备份存储区之前。
6.根据权利要求5所述的方法,其特征在于,所述存储器中所述第一类数据的长度基于所述第一区域或所述第二区域中的数据长度字节确定,所述数据长度字节位于所述第一区域或所述第二区域的开始处。
7.根据权利要求6所述的方法,其特征在于,所述存储器中所述第一类数据的校验值基于所述第一区域或所述第二区域中的校验值字节确定,所述校验值字节位于所述第一区域或所述第二区域的第一类数据之后。
8.一种电子设备,其特征在于,包括第一处理单元和电可擦可编程只读存储器,所述第一处理单元用于:
9.一种电子设备,包括存储器、至少一个处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
