CN103176859A - 一种flash数据备份/恢复方法、设备及信号源 - Google Patents
一种flash数据备份/恢复方法、设备及信号源 Download PDFInfo
- Publication number
- CN103176859A CN103176859A CN2011104312386A CN201110431238A CN103176859A CN 103176859 A CN103176859 A CN 103176859A CN 2011104312386 A CN2011104312386 A CN 2011104312386A CN 201110431238 A CN201110431238 A CN 201110431238A CN 103176859 A CN103176859 A CN 103176859A
- Authority
- CN
- China
- Prior art keywords
- data
- host sectors
- flash
- sector
- alternate sector
- 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
Images
Abstract
本发明提供一种FLASH数据备份/恢复方法、设备及信号源,该方法包括:判断主扇区数据是否损坏;如果主扇区数据损坏,则读取备份扇区数据写入主扇区;如果主扇区数据没有损坏,则判断备份扇区是否损坏;如果备份扇区数据损坏,则读取主扇区数据写入备份扇区。本发明可以防止FLASH写操作过程中突然的掉电导致的数据不完整或者同一块中的历史数据的损坏而无法恢复的问题,采用本发明的方法、设备的信号源,可以使数据总是能够恢复到最近一次正常的状态下,保证数据安全。
Description
技术领域
本发明涉及测试测量技术领域,尤其涉及一种FLASH数据备份/恢复功能的方法、设备及信号源。
背景技术
测试测量领域中,FLASH是嵌入式测量设备(例如示波器、信号源、频谱仪等设备)常用到的一种存储介质,包括设备的厂商数据(例如设备序列号,MAC地址),系统参数(例如上次用户习惯的用户设置),以及用户数据(例如测量采集到的数据)等都会保存在其上。
FLASH操作要求按块SECTOR(扇区)进行,每次写之前先要擦除。如果本次操作只是更新SECTOR的一小块数据,则需要先将整个SECTOR数据读入内存,更新该内存中对应的数据,擦除FLASH的这个SECTOR,然后重新将内存中更新过的数据整个写入。
设备的突然掉电常常会给FLASH的这种写操作带来灾难性的后果。有可能会使这些写入的数据不完整,更严重的问题是,可能该SECTOR中的其他数据损坏。如果损坏的是用户数据,可能会导致重要测量结果丢失;如果损坏的是系统参数,重新装载这些参数时,由于数据被破坏,可能导致系统参数进入无法预测的状态;如果损坏的是厂商数据,可能导致更严重的系统出厂配置丢失,无法正常启动等问题。
发明内容
本发明实施例的目的在于提供一种FLASH数据备份/恢复方法、设备及信号源,以解决现有技术中FLASH数据容易损坏无法恢复的缺陷。
为实现上述目的,本发明提供一种FLASH数据备份/恢复方法,该方法包括:判断FLASH主扇区数据是否损坏;如果主扇区数据损坏,则读取备份扇区数据写入主扇区;如果主扇区数据没有损坏,则判断备份扇区是否损坏;如果备份扇区数据损坏,则读取主扇区数据写入备份扇区。
所述方法在所有步骤之前还包括:选择FLASH扇区中的一个作为需要备份的主扇区;设置一个与上述FLASH主扇区对应的备份扇区;将更新数据写入到主扇区;再将更新数据写入到备份扇区。
其中,判断主扇区或备份扇区数据是否损坏包括:计算主扇区或备份扇区中的数据得到校验码;将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
本发明还提供一种数据备份/恢复设备,该设备包括:第一判断模块,用于判断FLASH主扇区的数据是否损坏;第一读取/写入模块,用于读取备份扇区的数据写入主扇区;第二判断模块,用于判断备份扇区的数据是否损坏;第二读取/写入模块,用于读取主扇区的数据写入备份扇区。
所述设备还包括:扇区设置模块,用于设置FLASH的主扇区和备份扇区;更新数据写入模块,用于将更新数据写入到主扇区;再将更新数据写入到备份扇区。
其中,所述第一判断模块和第二判断模块包括:计算模块,用于计算主扇区或备份扇区中的数据得到校验码;比较判断模块,将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
本发明实施例还提供一种具有FLASH数据备份/恢复功能的信号源,该信号源包括上文所述的FLASH数据备份/恢复设备。
本发明实施例提供的一种FLASH数据备份/恢复方法、设备及信号源可以防止FLASH写操作过程中突然的掉电导致的数据不完整或者同一块中的历史数据的损坏而无法恢复的问题,通过本发明的的方法及设备,可以使数据总是能够恢复到最近一次正常的状态下,保证数据安全。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明FLASH数据备份/恢复方法的流程图;
图2是本发明FLASH数据备份/恢复设备的结构示意图;
图3是本发明一实施例的FLASH主扇区和备份扇区结构示意图;
图4是本发明FLASH数据备份/恢复设备中FLASH以扇区为单位的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
实施例一
本发明实施例提供一种FLASH数据备份/恢复方法,如图1所示,图1是本发明实施例提供一种FLASH数据备份/恢复方法的流程图,该方法包括:
步骤110:判断FLASH主扇区数据是否损坏;
步骤120:如果主扇区数据损坏,则读取备份扇区数据写入主扇区;
步骤130:如果主扇区数据没有损坏,则判断备份扇区是否损坏;
步骤140:如果备份扇区数据损坏,则读取主扇区数据写入备份扇区。
其中,所有步骤之前还包括:
步骤:选择FLASH扇区中的一个作为需要备份的主扇区;
步骤:设置与FLASH主扇区对应的备份扇区;也就是对需要保护的FLASH块SECTOR,定义一个备份SECTOR,掉电时最多只有一个SECTOR的数据可能被损坏,从而有机会使用没被破坏的SECTOR中的数据恢复被破坏的SECTOR;
步骤:将更新数据写入到主扇区;再将更新数据写入到备份扇区;每次开机都检查这两个SECTOR,如果发现有被损坏的数据,就是用另一个SECTOR中的数据恢复该SECTOR;设备启动后的每次FLASH写操作都总是先写主SECTOR,然后写备份SECTOR,因此主SECTOR中总可能是最新的数据。
每个SECTOR中都定义校验数据,通过该校验数据来识别该SECTOR是否损坏;判断主扇区或备份扇区数据是否损坏包括:计算主扇区或备份扇区中的数据得到校验码;将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
每个SECTOR中都定义写操作完成的标准,据此来判断该SECTOR的写操作完整。
本发明实施例提供的FLASH数据备份/恢复方法可以有效解决FLASH数据损坏而无法恢复的问题,保证了数据的安全。
实施例二
再请参阅图2,图2是本发明一种FLASH数据备份/恢复设备,该设备200包括:
第一判断模块210,用于判断FLASH主扇区的数据是否损坏;
第一读取/写入模块220,用于读取备份扇区的数据写入主扇区;
第二判断模块230,用于判断备份扇区的数据是否损坏;
第二读取/写入模块240,用于读取主扇区的数据写入备份扇区。
所述设备还包括:
扇区设置模块,用于设置FLASH的主扇区和备份扇区;
更新数据写入模块,用于将更新数据写入到主扇区;再将更新数据写入到备份扇区。
其中,所述第一判断模块210和第二判断模块230包括:计算模块211、231,用于计算主扇区或备份扇区中的数据得到校验码;比较判断模块212、232,将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
在本发明实施例中,主要涉及测试测量设备,例如信号源,该信号源采用上文所述的FLASH数据备份/恢复设备。在实际应用当中,信号源等设备中需要在非易失存储设备中(如FLASH)保存产品出厂信息,包括设备型号,主机序列号,MAC地址,校准日期,软件版本号,第一次开机和其他模块的标记位,选件序列号等关键信息(不包括用户预置数据等用户频繁操作的项),这些信息的损坏将导致仪器无法正常使用或者仪器特性发生根本变化等重大问题,如果在客户端发生将带来极大负面影响,因此需要一个有效机制保证这部分信息安全。
包含这些关键出厂信息的“设备厂商信息”单元保存在NOR FLASH的一个扇区上,NOR FLASH要求以扇区为单位进行写操作,并且写操作前必须整个扇区执行擦出操作。FLASH以扇区为单位的结构如图4所示,修改某一出厂信息(例如校准日期)的流程如下:
步骤1:读出“设备厂商信息”所在的整个扇区到内存;
步骤2:擦除NOR FLASH的该扇区;
步骤3:修改内存中“设备厂商信息”的校准日期为新内容;
步骤4:将修改完的“设备厂商信息”写回NOR FLASH。
使用以上方法存在的风险是:如果在步骤2-4中任何时候设备掉电,就会出现旧信息被擦除,而新信息还没有完整写入,导致“设备厂商信息”被破坏的不可恢复故障。
采用本发明的双数据块方式,设置主扇区和备份扇区,每个扇区由五部分组成,如图3所示:数据校验字段CRC16(校验只包含数据块Data Block),数据块长度(Data Block Length),数据块(Data Block),数据完备标志(“DONE”),以及未使用空间组成。
开机扇区验证和恢复可以将损坏的扇区恢复,流程如下:
步骤1:校验主扇区是否损坏:针对主扇区中的数据计算得到的校验码是否等于扇区头处的CRC16值,如果不相等则说明该主扇区数据已经损坏;如果损坏执行步骤2恢复主扇区;否则执行步骤3;
步骤2:读取备份扇区中的数据,执行FLASH写操作将数据写入主扇区A,完成;
步骤3:校验备份扇区是否损坏,方法如同步骤1,如果没有损坏则完成,否则执行步骤4;
步骤4:读取主扇区中的数据,执行FLASH写操作将数据写入备份扇区,完成。
完成以上流程图之后保证主扇区和备份扇区中都保存有最近一次完整数据。并且,每次将数据DATA写入SectorBuffer后都需要计算校验值,并更新SectorBuffer中的CRC 16.
这样,采用本发明的FLASH数据备份/恢复设备,总是可以恢复最近一次保存的数据,不会因为装载损坏的数据而使测试测量设备进入不确定的状态。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种FLASH数据备份/恢复方法,应用于具有FLASH存储器的测量设备,其特征在于,该方法包括:
判断FLASH主扇区数据是否损坏;
如果主扇区数据损坏,则读取备份扇区数据写入主扇区;
如果主扇区数据没有损坏,则判断备份扇区是否损坏;
如果备份扇区数据损坏,则读取主扇区数据写入备份扇区。
2.根据权利要求1所述的方法,其特征在于,在所有步骤之前还包括:
选择FLASH扇区中的一个作为需要备份的主扇区;
设置一个与上述FLASH主扇区对应的备份扇区;
将更新数据写入到主扇区;
再将更新数据写入到备份扇区。
3.根据权利要求2所述的方法,其特征在于,判断主扇区或备份扇区数据是否损坏包括:
计算主扇区或备份扇区中的数据得到校验码;
将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
4.一种FLASH数据备份/恢复设备,其特征在于,该设备包括:
第一判断模块,用于判断FLASH主扇区的数据是否损坏;
第一读取/写入模块,用于读取备份扇区的数据写入主扇区;
第二判断模块,用于判断备份扇区的数据是否损坏;
第二读取/写入模块,用于读取主扇区的数据写入备份扇区。
5.根据权利要求4所述的设备,其特征在于,该设备还包括:
扇区设置模块,用于设置FLASH的主扇区和备份扇区;
备份模块,用于将主扇区的数据备份到备份扇区。
6.根据权利要求4所述的设备,其特征在于,所述第一判断模块和第二判断模块包括:
计算模块,用于计算主扇区或备份扇区中的数据得到校验码;
比较判断模块,将所述校验码与所述主扇区或备份扇区头处保存的校验码进行比较,如果两者不一致则表示数据损坏。
7.一种具有FLASH数据备份/恢复功能的信号源,其特征在于:包括如权利要求4-6中任一项所述的FLASH数据备份/恢复设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104312386A CN103176859A (zh) | 2011-12-21 | 2011-12-21 | 一种flash数据备份/恢复方法、设备及信号源 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104312386A CN103176859A (zh) | 2011-12-21 | 2011-12-21 | 一种flash数据备份/恢复方法、设备及信号源 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103176859A true CN103176859A (zh) | 2013-06-26 |
Family
ID=48636759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104312386A Pending CN103176859A (zh) | 2011-12-21 | 2011-12-21 | 一种flash数据备份/恢复方法、设备及信号源 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103176859A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424107A (zh) * | 2013-09-03 | 2015-03-18 | 北京谊安医疗系统股份有限公司 | 麻醉机标校数据的可靠存储方法及装置 |
CN105808388A (zh) * | 2016-03-30 | 2016-07-27 | 苏州美天网络科技有限公司 | 硬盘数据的备份方法 |
CN106484567A (zh) * | 2016-09-29 | 2017-03-08 | 深圳创维数字技术有限公司 | 一种flash数据备份的使用方法及系统 |
CN106502839A (zh) * | 2016-10-27 | 2017-03-15 | 武汉奥泽电子有限公司 | 一种基于汽车BCMFlash的存储方法及系统 |
CN109086165A (zh) * | 2018-07-06 | 2018-12-25 | 广东梯云科技有限公司 | 一种基于单片机Flash的数据备份方法、装置及存储介质 |
CN110287059A (zh) * | 2019-05-21 | 2019-09-27 | 广东九联科技股份有限公司 | 一种spi flash的多备份方法 |
CN111723065A (zh) * | 2019-11-29 | 2020-09-29 | 北京天御云安科技有限公司 | 基于NOR flash的高可靠性文件系统设计方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731373A (zh) * | 2004-08-05 | 2006-02-08 | 国际商业机器公司 | 将数据从第一扇区格式转换到第二扇区格式的设备和方法 |
US20070168632A1 (en) * | 2006-01-19 | 2007-07-19 | Sigmatel, Inc. | Non-volatile memory |
CN101038562A (zh) * | 2006-03-15 | 2007-09-19 | 联想(北京)有限公司 | 一种存储装置关键数据备份与恢复系统和方法 |
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
CN101499026A (zh) * | 2008-02-01 | 2009-08-05 | 凯迈(洛阳)测控有限公司 | 基于flash rom的数据采集系统小型数据备份方法 |
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式系统的存储器件、固件启动及升级方法 |
-
2011
- 2011-12-21 CN CN2011104312386A patent/CN103176859A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731373A (zh) * | 2004-08-05 | 2006-02-08 | 国际商业机器公司 | 将数据从第一扇区格式转换到第二扇区格式的设备和方法 |
US20070168632A1 (en) * | 2006-01-19 | 2007-07-19 | Sigmatel, Inc. | Non-volatile memory |
CN101038562A (zh) * | 2006-03-15 | 2007-09-19 | 联想(北京)有限公司 | 一种存储装置关键数据备份与恢复系统和方法 |
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
CN101499026A (zh) * | 2008-02-01 | 2009-08-05 | 凯迈(洛阳)测控有限公司 | 基于flash rom的数据采集系统小型数据备份方法 |
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式系统的存储器件、固件启动及升级方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424107A (zh) * | 2013-09-03 | 2015-03-18 | 北京谊安医疗系统股份有限公司 | 麻醉机标校数据的可靠存储方法及装置 |
CN104424107B (zh) * | 2013-09-03 | 2020-02-04 | 北京谊安医疗系统股份有限公司 | 麻醉机标校数据的可靠存储方法及装置 |
CN105808388A (zh) * | 2016-03-30 | 2016-07-27 | 苏州美天网络科技有限公司 | 硬盘数据的备份方法 |
CN106484567A (zh) * | 2016-09-29 | 2017-03-08 | 深圳创维数字技术有限公司 | 一种flash数据备份的使用方法及系统 |
CN106502839A (zh) * | 2016-10-27 | 2017-03-15 | 武汉奥泽电子有限公司 | 一种基于汽车BCMFlash的存储方法及系统 |
CN106502839B (zh) * | 2016-10-27 | 2020-01-10 | 武汉奥泽电子有限公司 | 一种基于汽车BCM Flash的存储方法及系统 |
CN109086165A (zh) * | 2018-07-06 | 2018-12-25 | 广东梯云科技有限公司 | 一种基于单片机Flash的数据备份方法、装置及存储介质 |
CN110287059A (zh) * | 2019-05-21 | 2019-09-27 | 广东九联科技股份有限公司 | 一种spi flash的多备份方法 |
CN110287059B (zh) * | 2019-05-21 | 2023-12-15 | 广东九联科技股份有限公司 | 一种spi flash的多备份方法 |
CN111723065A (zh) * | 2019-11-29 | 2020-09-29 | 北京天御云安科技有限公司 | 基于NOR flash的高可靠性文件系统设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176859A (zh) | 一种flash数据备份/恢复方法、设备及信号源 | |
CN108646982B (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
US9189311B2 (en) | Rebuilding a storage array | |
EP2550745B1 (en) | Non-regular parity distribution detection via metadata tag | |
TWI479309B (zh) | 控制固態硬碟的裝置及方法 | |
US7356744B2 (en) | Method and system for optimizing testing of memory stores | |
TWI512742B (zh) | 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置 | |
CN102541676B (zh) | 一种nand flash的状态检测及映射方法 | |
CN103631721A (zh) | 一种隔离内存中坏块的方法及系统 | |
CN110399247B (zh) | 一种数据恢复方法、装置、设备及计算机可读存储介质 | |
CN111158599B (zh) | 一种写数据的方法、装置、设备及存储介质 | |
CN106227625B (zh) | 一种因掉电而损坏的闪存数据的恢复方法及系统 | |
CN111124758A (zh) | 一种故障硬盘的数据恢复方法 | |
JP2012079100A (ja) | ディスク制御装置及びディスク制御方法、並びにプログラム | |
CN111459708B (zh) | 坏块处理方法及装置 | |
CN104598328A (zh) | 一种文件系统修复方法、装置及系统 | |
CN111428280B (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
US11010245B2 (en) | Memory storage apparatus with dynamic data repair mechanism and method of dynamic data repair thereof | |
CN105183590A (zh) | 一种磁盘阵列的容错处理方法 | |
JP3675375B2 (ja) | 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法 | |
CN107168650B (zh) | 一种对bios的存储器中的数据的处理方法及装置 | |
JP2002318732A (ja) | 復電時のファイル処理装置およびファイル処理方法 | |
CN109460316B (zh) | 基于温差均衡的数据恢复方法以及系统、存储介质 | |
US20180357158A1 (en) | Storage device and data management method of storage device | |
JP2001076422A (ja) | 記憶装置の交代処理時間判定試験方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130626 |