CN106021002A - 一种嵌入式设备数据读写方法及装置 - Google Patents

一种嵌入式设备数据读写方法及装置 Download PDF

Info

Publication number
CN106021002A
CN106021002A CN201610281942.0A CN201610281942A CN106021002A CN 106021002 A CN106021002 A CN 106021002A CN 201610281942 A CN201610281942 A CN 201610281942A CN 106021002 A CN106021002 A CN 106021002A
Authority
CN
China
Prior art keywords
check value
data
reading
target data
default
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.)
Granted
Application number
CN201610281942.0A
Other languages
English (en)
Other versions
CN106021002B (zh
Inventor
徐炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Mxchip Information Technology Co Ltd
Original Assignee
Shanghai Mxchip Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Mxchip Information Technology Co Ltd filed Critical Shanghai Mxchip Information Technology Co Ltd
Priority to CN201610281942.0A priority Critical patent/CN106021002B/zh
Publication of CN106021002A publication Critical patent/CN106021002A/zh
Application granted granted Critical
Publication of CN106021002B publication Critical patent/CN106021002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Abstract

本发明公开了一种嵌入式设备的数据写入方法及装置,包括:计算目标数据的第一校验值;将目标数据和第一校验值写入主存储空间;从主存储空间读取目标数据,计算读取的目标数据的第二校验值,并在第一校验值、保存在主存储空间内的第一校验值与第二校验值相同时,将目标数据和第一校验值写入备份存储空间;从备份存储空间读取与目标数据相对应的备份数据,计算备份数据的第三校验值;若第一校验值、保存在备份存储空间内的第一校验值与第三校验值相同,则目标数据写入成功。可见,利用这种写入数据的方法,即使嵌入式设备在不稳定的电源环境中进行数据的写入,也能保证数据的正确性;本发明还公开了一种嵌入式设备的数据读取方法及装置。

Description

一种嵌入式设备数据读写方法及装置
技术领域
本发明涉及嵌入式系统技术领域,更具体地说,涉及一种嵌入式设备数据读写方法及装置。
背景技术
随着智能化系统的深入发展,越来越多的工业和民用装置开始采用计算机系统作为设备的中央控制系统。在大部分的超低功耗、低成本、小型化的设备上,通常采用嵌入式计算机系统来运行设备的控制程序,网络通讯和数据存储。在这些设备上,通常采用电池作为能源供应,这不是一个稳定的供电装置,即使使用固定电源,根据人们传统的使用习惯,也不会像普通的计算机系统一样在断电之前提供一定的关机时间来保存数据。如果设备在存储数据的过程中发生突然的断电事件,就有很大的可能导致数据的损毁。如果这些数据关系到设备工作的关键信息,就有可能导致设备无法工作,出现故障。
在传统的计算机系统中,通常采用以下的技术来保护设备运行的核心数据:使用硬件的电池管理系统,检测电池电量,在电池电量低至与定义的阈值时,保存数据并且关闭系统;通过文件系统保存数据,而文件系统提供了一些容错和备份机制;核心部分数据,如BIOS数据,通常不需要改变,所以维持这些数据的耗电量非常低,可以使用独立的可充电电池供电长达数年,在断电时持续保护数据,在使用外接电源供电时,对该电池充电;在断电前,通知用户采用固定的步骤:例如优盘在从PC上弹出之前,需要在PC系统上完成固定的弹出步骤,否则数据可能损坏。
但是在嵌入式设备上,以上的方法并不能解决问题。原因是,嵌入式设备没有统一的用户界面与使用者交互,完成完整的关机流程。低成本嵌入式设备的硬件比较简单,可用的存储器比较简单,大部分无法实现完整的、符合标准的安全文件系统,而是对Flash物理设备进行直接的读写;也没有完整的电源管理和后备电源硬件。
因此,如何保证嵌入式设备在不可靠的电源环境下,安全可靠的读写数据是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种嵌入式设备数据读写方法及装置,以实现嵌入式设备在不可靠的电源环境下,安全可靠的读写数据。
为实现上述目的,本发明实施例提供了如下技术方案:
一种嵌入式设备的数据写入方法,包括:
计算目标数据的第一校验值;
将所述目标数据和所述第一校验值写入主存储空间;
从所述主存储空间读取与所述目标数据对应的数据,计算读取的数据的第二校验值;
判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则将所述目标数据和所述第一校验值写入备份存储空间;
从所述备份存储空间读取与所述目标数据相对应的备份数据,计算所述备份数据的第三校验值;
判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
一种嵌入式设备的数据写入装置,包括:
第一计算模块,用于计算目标数据的第一校验值;
第一写入模块,用于将所述目标数据和所述第一校验值写入主存储空间;
第一读取模块,用于从所述主存储空间读取与所述目标数据对应的数据;
第二计算模块,用于计算读取的数据的第二校验值;
第一判断模块,用于判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则触发第二写入模块;
所述第二写入模块,用于将所述目标数据和所述第一校验值写入备份存储空间;
第二读取模块,用于从所述备份存储空间读取与所述目标数据相对应的备份数据;
第三计算模块,用于计算所述备份数据的第三校验值;
第二判断模块,用于判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
一种嵌入式设备的数据读取方法,包括:
从主存储空间读取目标数据和第四校验值;
计算所述目标数据的第五校验值;
判断所述第四校验值与所述第五校验值是否相同;若是,则从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
计算所述备份数据的第七校验值;
判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值相同,则将所述备份数据和所述第六校验值写入所述主存储空间;
从所述主存储空间读取备份数据,并计算读取的备份数据的第八校验值;
判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第四校验值与所述第五校验值相同,所述第六校验值与所述第七校验值不相同,则将所述目标数据和所述第四校验值写入所述备份存储空间;
从所述备份存储空间读取目标数据,并计算读取的目标数据的第九校验值;
判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值不相同,则从出厂默认数据存储空间读取与所述目标数据相对应的默认数据,并计算所述默认数据的第一默认数据校验值;
将所述默认数据和所述第一默认数据校验值写入主存储空间;
从所述主存储空间读取默认数据,计算读取的默认数据的第二默认数据校验值;
判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则将所述默认数据和所述第一默认数据校验值写入备份存储空间;
从所述备份存储空间读取与所述默认数据相对应的备份默认数据,计算所述备份默认数据的第三默认数据校验值;
判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
一种嵌入式设备的数据读取装置,包括:
第三读取模块,用于从主存储空间读取目标数据和第四校验值;
第四计算模块,用于计算所述目标数据的第五校验值;
第三判断模块,用于判断所述第四校验值与所述第五校验值是否相同;若是,则触发第四读取模块;
所述第四读取模块,用于从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
第五计算模块,用于计算所述备份数据的第七校验值;
第四判断模块,用于判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值相同,则触发第一校正模块;
所述第一校正模块包括:
第一写入单元,用于将所述备份数据和所述第六校验值写入所述主存储空间;
第一读取单元,用于从所述主存储空间读取备份数据;
第一计算单元,用于计算读取的备份数据的第八校验值;
第一判断单元,用于判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第三判断模块判定所述第四校验值与所述第五校验值相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第二校正模块;
所述第二校正模块包括:
第二写入单元,用于将所述目标数据和所述第四校验值写入所述备份存储空间;
第二读取单元,用于从所述备份存储空间读取目标数据;
第二计算单元,用于计算读取的目标数据的第九校验值;
第二判断单元,用于判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
其中,若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第三校正模块;
所述第三校正模块包括:
第三读取单元,用于从出厂默认数据存储空间读取与所述目标数据相对应的默认数据;
第三计算单元,用于计算所述默认数据的第一默认数据校验值;
第三写入单元,用于将所述默认数据和所述第一默认数据校验值写入主存储空间;
第四读取单元,用于从所述主存储空间读取默认数据;
第四计算单元,用于计算读取的默认数据的第二默认数据校验值;
第三判断单元,用于判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则触发第四写入单元;
所述第四写入单元,用于将所述默认数据和所述第一默认数据校验值写入备份存储空间;
第五读取单元,用于从所述备份存储空间读取与所述默认数据相对应的备份默认数据;
第五计算单元,用于计算所述备份默认数据的第三默认数据校验值;
第四判断单元,用于判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
通过以上方案可知,本发明实施例提供的一种嵌入式设备数据读写方法及装置,在写入数据时包括:首先将数据写入主存储空间,再将校验结果写入主存储空间;再从主存储空间中读取数据,计算校验值,然后与原始的校验数据和保存在主存储空间的校验数据进行比对,确保无误后,在对备份存储空间执行同样的操作。当要从存储空间读取数据时,首先读取主存储空间的数据和校验数据,根据数据计算校验结果,并与从主存储空间中的数据进行比对,将比对结果保存下来;然后按照同样的方法,读取备份存储空间中的数据,如果两个结果都是正确的,则完成了设备数据的读取。
可见,本实施例中的数据分别存储在主存储空间、备份存储空间和出厂默认数据存储空间之内,由于在对Flash的写入数据之前首先要对所在的扇区进行擦除操作,Flash设备仅能执行对扇区的整块的擦除,因此在本实施例中上述三个存储空间存放在不同的Flash扇区中,使得对一个空间的擦除操作不会影响到其他的数据空间;并且任何一个存储空间所使用的Flash扇区中不包任何存储数据无关的内容,防止对数据的擦除操作影响到其他无关的数据;并且,本方案无需大量的嵌入式软硬件资源即可实现功能,最大限度地将数据的错误限制在一个存储空间中,并且可以使用另一个存储空间中的数据恢复。即使全部出错,也能用出厂默认数据来恢复,防止出现无法预期的数据,从而导致设备运行异常。保证了嵌入式设备的数据的可靠性,从而保证嵌入式设备的数据在不稳定的电源环境下不会损毁从而导致设备损坏。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种嵌入式设备的数据写入方法流程示意图;
图2为本发明实施例公开的一种嵌入式设备的数据写入装置结构示意图;
图3为本发明实施例公开的一种嵌入式设备的数据读取方法流程示意图;
图4为本发明实施例公开的一种嵌入式设备的数据读取装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种嵌入式设备数据读写方法及装置,以实现嵌入式设备在不可靠的电源环境下,安全可靠的读写数据。
参见图1,本发明实施例提供的一种嵌入式设备的数据写入方法,包括:
S101、计算目标数据的第一校验值;
具体的,在本实施例中,对待写入的目标数据增加校验机制,校验算法可以使用通用的数据完整性算法。如:CRC-8,CRC-16,CRC-32,MD5,SHA等,在此并不做限定。
S102、将所述目标数据和所述第一校验值写入主存储空间;
具体的,由于校验结果和原始数据有极强的相关性,单独保存是没有意义的,因此将计算出的校验结果和原始数据一起存放在同一个存储空间中,即将第一校验值和目标数据一同写入主存储空间。
S103、从所述主存储空间读取与所述目标数据对应的数据,计算读取的数据的第二校验值;
S104、判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则将所述目标数据和所述第一校验值写入备份存储空间;
可以理解的是,由于不确定是否正确的将目标数据写入主存储空间,因此需要从主存储空间中重新读取刚刚写入的目标数据,并计算读取的目标数据的新的校验结果,即第二校验值,并通过与原始的校验数据即第一校验值和保存在主存储空间的第一校验值进行比对,确保无误后,再执行后续操作。若第一校验值、保存在主存储空间内的第一校验值与第二校验值不相同,则继续执行S102,即重新写入数据,直至第一校验值、保存在主存储空间内的第一校验值与第二校验值相同为止。
S105、从所述备份存储空间读取与所述目标数据相对应的备份数据,计算所述备份数据的第三校验值;
S106、判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
需要说明的是,为了保证数据的安全性,需要将目标数据和第一校验值存储在备份存储空间中。同样为了确保保存在备份存储空间中的数据的正确定,需要重新读取写入备份存储空间中的目标数据,即备份数据,并计算读取的备份数据的第三校验值,并通过与原始的校验数据即第一校验值和保存在备份存储空间的第一校验值进行比对,确保无误后,目标数据才算写入成功。若第一校验值、保存在备份存储空间内的第一校验值与第三校验值不相同,则继续重新将所述目标数据和所述第一校验值写入备份存储空间,并继续执行后续步骤。可见,利用这种写入数据的方法,即使嵌入式设备在不稳定的电源环境中进行数据的写入,也能保证数据的正确性。
下面对本发明实施例提供的数据写入装置进行介绍,下文描述的数据写入装置与上文描述的数据写入方法可以相互参照。
参见图2,本发明实施例提供的一种嵌入式设备的数据写入装置,包括:
第一计算模块101,用于计算目标数据的第一校验值;
第一写入模块102,用于将所述目标数据和所述第一校验值写入主存储空间;
第一读取模块103,用于从所述主存储空间读取与所述目标数据对应的数据;
第二计算模块104,用于计算读取的数据的第二校验值;
第一判断模块105,用于判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则触发第二写入模块106;
所述第二写入模块106,用于将所述目标数据和所述第一校验值写入备份存储空间;
第二读取模块107,用于从所述备份存储空间读取与所述目标数据相对应的备份数据;
第三计算模块108,用于计算所述备份数据的第三校验值;
第二判断模块109,用于判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
参见图3,本发明实施例提供的一种嵌入式设备的数据读取方法,包括:
S201、从主存储空间读取目标数据和第四校验值;
S202、计算所述目标数据的第五校验值;
S203、判断所述第四校验值与所述第五校验值是否相同;若是,则从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
S204、计算所述备份数据的第七校验值;
S205、判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
具体的,在本实施例中在对数据进行读取时,首先从主存储空间读取目标数据和第四校验值,计算读取的目标数据的第五校验值,并且只有第四校验值和第五校验值相同,才说明读取的目标数据是正确的。再按照同样的方法,读取备份存储空间中存储的与目标数据相对应的备份数据。如果两个比较结果都是正确的,则完成了设备数据的读取,并从内存中释放一个存储空间的读取结果。可见,利用这种读取数据的方法,即使嵌入式设备在不稳定的电源环境中进行数据的读取,也能保证读取数据的正确性。
相应的,若从主存储空间读取的数据是错误的,从备份存储空间读取的数据是正确的,即所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值相同,则对主存储空间存储的数据进行校正,具体包括:
S211、将所述备份数据和所述第六校验值写入所述主存储空间;
S212、从所述主存储空间读取备份数据,并计算读取的备份数据的第八校验值;
S213、判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
相应的,若从主存储空间读取的数据是正确的,从备份存储空间读取的数据是错误的,即所述第四校验值与所述第五校验值相同,所述第六校验值与所述第七校验值不相同,则对备份存储空间存储的数据进行校正,具体包括:
S221、将所述目标数据和所述第四校验值写入所述备份存储空间;
S222、从所述备份存储空间读取目标数据,并计算读取的目标数据的第九校验值;
S223、判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
相应的,若从主存储空间和备份存储空间读取的数据都是错误的,即所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值不相同,则根据默认数据对主存储空间和备份存储空间存储的数据进行校正,具体包括:
S231、从出厂默认数据存储空间读取与所述目标数据相对应的默认数据,并计算所述默认数据的第一默认数据校验值;
S232、将所述默认数据和所述第一默认数据校验值写入主存储空间;
S233、从所述主存储空间读取默认数据,计算读取的默认数据的第二默认数据校验值;
S234、判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则将所述默认数据和所述第一默认数据校验值写入备份存储空间;
S235、从所述备份存储空间读取与所述默认数据相对应的备份默认数据,计算所述备份默认数据的第三默认数据校验值;
S236、判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
可见,本方案能最大限度地将数据的错误限制在一个存储空间中,并且当其中一个存储空间的数据错误时,可以通过另一个存储空间中的数据进行恢复。及时两个存储空间的数据都出错,也能用出厂默认数据来恢复,防止出现无法预期的数据,从而导致设备运行异常,保证了嵌入式设备的数据的可靠性。
下面对本发明实施例提供的数据读取装置进行介绍,下文描述的数据读取装置与上文描述的数据读取方法可以相互参照。
参见图4,本发明实施例提供的一种嵌入式设备的数据读取装置,包括:
第三读取模块201,用于从主存储空间读取目标数据和第四校验值;
第四计算模块202,用于计算所述目标数据的第五校验值;
第三判断模块203,用于判断所述第四校验值与所述第五校验值是否相同;若是,则触发第四读取模块;
所述第四读取模块204,用于从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
第五计算模块205,用于计算所述备份数据的第七校验值;
第四判断模块206,用于判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
基于上述实施例,若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值相同,则触发第一校正模块;
所述第一校正模块包括:
第一写入单元,用于将所述备份数据和所述第六校验值写入所述主存储空间;
第一读取单元,用于从所述主存储空间读取备份数据;
第一计算单元,用于计算读取的备份数据的第八校验值;
第一判断单元,用于判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
基于上述实施例,若所述第三判断模块判定所述第四校验值与所述第五校验值相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第二校正模块;
所述第二校正模块包括:
第二写入单元,用于将所述目标数据和所述第四校验值写入所述备份存储空间;
第二读取单元,用于从所述备份存储空间读取目标数据;
第二计算单元,用于计算读取的目标数据的第九校验值;
第二判断单元,用于判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
基于上述实施例,若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第三校正模块;
所述第三校正模块包括:
第三读取单元,用于从出厂默认数据存储空间读取与所述目标数据相对应的默认数据;
第三计算单元,用于计算所述默认数据的第一默认数据校验值;
第三写入单元,用于将所述默认数据和所述第一默认数据校验值写入主存储空间;
第四读取单元,用于从所述主存储空间读取默认数据;
第四计算单元,用于计算读取的默认数据的第二默认数据校验值;
第三判断单元,用于判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则触发第四写入单元;
所述第四写入单元,用于将所述默认数据和所述第一默认数据校验值写入备份存储空间;
第五读取单元,用于从所述备份存储空间读取与所述默认数据相对应的备份默认数据;
第五计算单元,用于计算所述备份默认数据的第三默认数据校验值;
第四判断单元,用于判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
本发明实施例提供的一种嵌入式设备数据读写方法及装置,在写入数据时包括:首先将数据写入主存储空间,再将校验结果写入主存储空间;再从主存储空间中读取数据,计算校验值,然后与原始的校验数据和保存在主存储空间的校验数据进行比对,确保无误后,在对备份存储空间执行同样的操作。当要从存储空间读取数据时,首先读取主存储空间的数据和校验数据,根据数据计算校验结果,并与从主存储空间中的数据进行比对,将比对结果保存下来;然后按照同样的方法,读取备份存储空间中的数据,如果两个结果都是正确的,则完成了设备数据的读取。
可见,本实施例中的数据分别存储在主存储空间、备份存储空间和出厂默认数据存储空间之内,由于在对Flash的写入数据之前首先要对所在的扇区进行擦除操作,Flash设备仅能执行对扇区的整块的擦除,因此在本实施例中上述三个存储空间存放在不同的Flash扇区中,使得对一个空间的擦除操作不会影响到其他的数据空间;并且任何一个存储空间所使用的Flash扇区中不包任何存储数据无关的内容,防止对数据的擦除操作影响到其他无关的数据;并且,本方案无需大量的嵌入式软硬件资源即可实现功能,最大限度地将数据的错误限制在一个存储空间中,并且可以使用另一个存储空间中的数据恢复。即使全部出错,也能用出厂默认数据来恢复,防止出现无法预期的数据,从而导致设备运行异常。保证了嵌入式设备的数据的可靠性,从而保证嵌入式设备的数据在不稳定的电源环境下不会损毁从而导致设备损坏。
并且,在实际应用中,在MXCHIP的无线模块EMW316x上通过上述方案来实现设备核心数据的存储。在模块内部运行一个对数据持续的写入和读取的操作,并将模块放置于程序控制的会随机断电的环境下持续运行。连续运行1周没有出现设备数据损坏的情况,而没有使用该技术方案的设备在运行2小时以内,相继出现设备数据损坏的情况。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种嵌入式设备的数据写入方法,其特征在于,包括:
计算目标数据的第一校验值;
将所述目标数据和所述第一校验值写入主存储空间;
从所述主存储空间读取与所述目标数据对应的数据,计算读取的数据的第二校验值;
判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则将所述目标数据和所述第一校验值写入备份存储空间;
从所述备份存储空间读取与所述目标数据相对应的备份数据,计算所述备份数据的第三校验值;
判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
2.一种嵌入式设备的数据写入装置,其特征在于,包括:
第一计算模块,用于计算目标数据的第一校验值;
第一写入模块,用于将所述目标数据和所述第一校验值写入主存储空间;
第一读取模块,用于从所述主存储空间读取与所述目标数据对应的数据;
第二计算模块,用于计算读取的数据的第二校验值;
第一判断模块,用于判断所述第一校验值、保存在所述主存储空间内的第一校验值与所述第二校验值是否相同;若是,则触发第二写入模块;
所述第二写入模块,用于将所述目标数据和所述第一校验值写入备份存储空间;
第二读取模块,用于从所述备份存储空间读取与所述目标数据相对应的备份数据;
第三计算模块,用于计算所述备份数据的第三校验值;
第二判断模块,用于判断所述第一校验值、保存在所述备份存储空间内的第一校验值与所述第三校验值是否相同;若是,则所述目标数据写入成功。
3.一种嵌入式设备的数据读取方法,其特征在于,包括:
从主存储空间读取目标数据和第四校验值;
计算所述目标数据的第五校验值;
判断所述第四校验值与所述第五校验值是否相同;若是,则从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
计算所述备份数据的第七校验值;
判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
4.根据权利要求3所述的数据读取方法,其特征在于,
若所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值相同,则将所述备份数据和所述第六校验值写入所述主存储空间;
从所述主存储空间读取备份数据,并计算读取的备份数据的第八校验值;
判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
5.根据权利要求3所述的数据读取方法,其特征在于,
若所述第四校验值与所述第五校验值相同,所述第六校验值与所述第七校验值不相同,则将所述目标数据和所述第四校验值写入所述备份存储空间;
从所述备份存储空间读取目标数据,并计算读取的目标数据的第九校验值;
判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
6.根据权利要求3所述的数据读取方法,其特征在于,
若所述第四校验值与所述第五校验值不相同,所述第六校验值与所述第七校验值不相同,则从出厂默认数据存储空间读取与所述目标数据相对应的默认数据,并计算所述默认数据的第一默认数据校验值;
将所述默认数据和所述第一默认数据校验值写入主存储空间;
从所述主存储空间读取默认数据,计算读取的默认数据的第二默认数据校验值;
判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则将所述默认数据和所述第一默认数据校验值写入备份存储空间;
从所述备份存储空间读取与所述默认数据相对应的备份默认数据,计算所述备份默认数据的第三默认数据校验值;
判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
7.一种嵌入式设备的数据读取装置,其特征在于,包括:
第三读取模块,用于从主存储空间读取目标数据和第四校验值;
第四计算模块,用于计算所述目标数据的第五校验值;
第三判断模块,用于判断所述第四校验值与所述第五校验值是否相同;若是,则触发第四读取模块;
所述第四读取模块,用于从备份存储空间读取与所述目标数据相对应的备份数据和第六校验值;
第五计算模块,用于计算所述备份数据的第七校验值;
第四判断模块,用于判断所述第六校验值与所述第七校验值是否相同;若是,则所述目标数据读取成功。
8.根据权利要求7所述的数据读取装置,其特征在于,
若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值相同,则触发第一校正模块;
所述第一校正模块包括:
第一写入单元,用于将所述备份数据和所述第六校验值写入所述主存储空间;
第一读取单元,用于从所述主存储空间读取备份数据;
第一计算单元,用于计算读取的备份数据的第八校验值;
第一判断单元,用于判断所述第六校验值与所述第八校验值是否相同;若是,则所述目标数据读取成功。
9.根据权利要求7所述的数据读取装置,其特征在于,
若所述第三判断模块判定所述第四校验值与所述第五校验值相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第二校正模块;
所述第二校正模块包括:
第二写入单元,用于将所述目标数据和所述第四校验值写入所述备份存储空间;
第二读取单元,用于从所述备份存储空间读取目标数据;
第二计算单元,用于计算读取的目标数据的第九校验值;
第二判断单元,用于判断所述第四校验值与所述第九校验值是否相同;若是,则所述目标数据读取成功。
10.根据权利要求7所述的数据读取装置,其特征在于,
若所述第三判断模块判定所述第四校验值与所述第五校验值不相同,所述第四判断模块判定所述第六校验值与所述第七校验值不相同,则触发第三校正模块;
所述第三校正模块包括:
第三读取单元,用于从出厂默认数据存储空间读取与所述目标数据相对应的默认数据;
第三计算单元,用于计算所述默认数据的第一默认数据校验值;
第三写入单元,用于将所述默认数据和所述第一默认数据校验值写入主存储空间;
第四读取单元,用于从所述主存储空间读取默认数据;
第四计算单元,用于计算读取的默认数据的第二默认数据校验值;
第三判断单元,用于判断所述第一默认数据校验值与所述第二默认数据校验值是否相同;若是,则触发第四写入单元;
所述第四写入单元,用于将所述默认数据和所述第一默认数据校验值写入备份存储空间;
第五读取单元,用于从所述备份存储空间读取与所述默认数据相对应的备份默认数据;
第五计算单元,用于计算所述备份默认数据的第三默认数据校验值;
第四判断单元,用于判断所述第一默认数据校验值与所述第三默认数据校验值是否相同;若是,则所述目标数据读取成功。
CN201610281942.0A 2016-04-29 2016-04-29 一种嵌入式设备数据读写方法及装置 Active CN106021002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610281942.0A CN106021002B (zh) 2016-04-29 2016-04-29 一种嵌入式设备数据读写方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610281942.0A CN106021002B (zh) 2016-04-29 2016-04-29 一种嵌入式设备数据读写方法及装置

Publications (2)

Publication Number Publication Date
CN106021002A true CN106021002A (zh) 2016-10-12
CN106021002B CN106021002B (zh) 2020-11-06

Family

ID=57081643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610281942.0A Active CN106021002B (zh) 2016-04-29 2016-04-29 一种嵌入式设备数据读写方法及装置

Country Status (1)

Country Link
CN (1) CN106021002B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547648A (zh) * 2016-10-21 2017-03-29 杭州嘉楠耘智信息科技有限公司 一种备份数据处理方法及装置
CN107609427A (zh) * 2017-09-18 2018-01-19 中国科学院微电子研究所 一种eeprom数据的存储方法及系统
CN110348244A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 基于仲裁的多校验和验证方法、系统、装置及存储介质
CN111506449A (zh) * 2019-01-31 2020-08-07 青岛海尔空调电子有限公司 一种空调参数存储方法及装置和存储介质
CN112905112A (zh) * 2021-02-09 2021-06-04 上海锐伟电子科技有限公司 一种嵌入式设备的数据处理方法及系统
CN113053451A (zh) * 2021-03-05 2021-06-29 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、系统、主机以及储存介质
CN114237493A (zh) * 2021-11-23 2022-03-25 北京谊安医疗系统股份有限公司 一种嵌入式系统中模块化存储方法及系统
CN117349085A (zh) * 2023-12-01 2024-01-05 杭州云动智能汽车技术有限公司 一种数据存储方法、数据备份方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625703B2 (en) * 2000-11-02 2003-09-23 International Business Machines Corporation Verifying primary and backup copies of vital information for a processing system employing a pseudo-fixed reference identifier
CN101329631A (zh) * 2007-06-21 2008-12-24 大唐移动通信设备有限公司 一种嵌入式系统自动检测和恢复启动的方法及装置
CN101452410A (zh) * 2007-12-06 2009-06-10 中兴通讯股份有限公司 一种嵌入式数据库的数据备份系统及数据备份和恢复方法
CN101937375A (zh) * 2010-08-27 2011-01-05 浙江大学 皮卫星中央处理器的代码、数据实时纠检错方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625703B2 (en) * 2000-11-02 2003-09-23 International Business Machines Corporation Verifying primary and backup copies of vital information for a processing system employing a pseudo-fixed reference identifier
CN101329631A (zh) * 2007-06-21 2008-12-24 大唐移动通信设备有限公司 一种嵌入式系统自动检测和恢复启动的方法及装置
CN101452410A (zh) * 2007-12-06 2009-06-10 中兴通讯股份有限公司 一种嵌入式数据库的数据备份系统及数据备份和恢复方法
CN101937375A (zh) * 2010-08-27 2011-01-05 浙江大学 皮卫星中央处理器的代码、数据实时纠检错方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547648A (zh) * 2016-10-21 2017-03-29 杭州嘉楠耘智信息科技有限公司 一种备份数据处理方法及装置
CN107609427A (zh) * 2017-09-18 2018-01-19 中国科学院微电子研究所 一种eeprom数据的存储方法及系统
CN110348244A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 基于仲裁的多校验和验证方法、系统、装置及存储介质
CN111506449A (zh) * 2019-01-31 2020-08-07 青岛海尔空调电子有限公司 一种空调参数存储方法及装置和存储介质
CN111506449B (zh) * 2019-01-31 2024-02-20 青岛海尔空调电子有限公司 一种空调参数存储方法及装置和存储介质
CN112905112A (zh) * 2021-02-09 2021-06-04 上海锐伟电子科技有限公司 一种嵌入式设备的数据处理方法及系统
CN112905112B (zh) * 2021-02-09 2023-03-31 上海锐伟电子科技有限公司 一种嵌入式设备的数据处理方法及系统
CN113053451A (zh) * 2021-03-05 2021-06-29 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、系统、主机以及储存介质
CN113053451B (zh) * 2021-03-05 2022-05-10 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、系统、主机以及储存介质
CN114237493A (zh) * 2021-11-23 2022-03-25 北京谊安医疗系统股份有限公司 一种嵌入式系统中模块化存储方法及系统
CN117349085A (zh) * 2023-12-01 2024-01-05 杭州云动智能汽车技术有限公司 一种数据存储方法、数据备份方法及装置
CN117349085B (zh) * 2023-12-01 2024-03-05 杭州云动智能汽车技术有限公司 一种数据存储方法、数据备份方法及装置

Also Published As

Publication number Publication date
CN106021002B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN106021002A (zh) 一种嵌入式设备数据读写方法及装置
US8751860B2 (en) Object oriented memory in solid state devices
US8832530B2 (en) Techniques associated with a read and write window budget for a two level memory system
CN102279776B (zh) 一种错误检查与纠正能力的测试方法及装置
CN103699344B (zh) 非易失性存储器装置及其操作方法
CN107315616B (zh) 一种固件的加载方法、装置及电子设备
TWI490876B (zh) 系統啟動引導處理方法及裝置
TWI479492B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN107807792A (zh) 一种基于副本存储系统的数据处理方法及相关装置
CN102077176A (zh) 存储器系统的回拷优化
CN103631721A (zh) 一种隔离内存中坏块的方法及系统
CN104133740A (zh) 异常掉电数据恢复的方法
CN105808371A (zh) 数据备份与恢复方法、控制芯片及存储装置
CN104205755A (zh) 用于在计算设备的网络触发的唤醒期间延迟分组的方法、设备和系统
CN104063477A (zh) 嵌入式系统启动异常的处理方法及装置
CN103218271B (zh) 一种数据纠错方法及装置
CN102279757B (zh) 一种系统程序启动的方法及装置
CN107766180A (zh) 存储介质的管理方法、装置及可读存储介质
CN109582337A (zh) 一种固件升级的方法、装置和计算机可读存储介质
TW201321978A (zh) 電子系統及其記憶體管理方法
US20130191833A1 (en) System and method for assuring performance of data scrubbing operations
CN107402843A (zh) 数据库损坏的恢复方法、装置和设备
CN107239358A (zh) 安卓系统的启动方法、移动终端及具有存储功能的装置
CN102063342A (zh) 一种闪存存储设备数据的管理方法及系统
CN102520223A (zh) 用于电能表的软件抗干扰方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant