CN103514063B - 一种flash数据处理方法以及装置 - Google Patents
一种flash数据处理方法以及装置 Download PDFInfo
- Publication number
- CN103514063B CN103514063B CN201210209125.6A CN201210209125A CN103514063B CN 103514063 B CN103514063 B CN 103514063B CN 201210209125 A CN201210209125 A CN 201210209125A CN 103514063 B CN103514063 B CN 103514063B
- Authority
- CN
- China
- Prior art keywords
- data
- backup data
- backup
- flash
- setting
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种FLASH数据处理方法以及装置,该方法包括:嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。该方案可以从根本上避免系统异常时FLASH数据损坏的问题。
Description
技术领域
本发明涉及通信技术领域,尤指一种FLASH数据处理方法以及装置。
背景技术
闪存(Flash Memory,FLASH)是一种可快速擦除、可现场编程的非易失性快擦写存储器。由于FLASH具有非易失性,它被广泛用于在线擦写、掉电保护数据、分区保护数据等场合,在现代通信及微电子领域的应用极为广泛。
嵌入式系统的配置数据和日志信息一般存储在FLASH中,通常使用闪存设备日志型文件系统第2版(Journaling Flash File System Version 2,JFFS2),当用户对该嵌入式系统的设定目录下的数据执行创建、修改、删除等等操作时,嵌入式系统会定期备份该设定目录下的数据,并将备份数据写入FLASH中,新写入的备份数据会替换已有的备份数据。一旦发生系统掉电等异常状态需要对设定目录下的数据进行恢复时,直接将FLASH中存储的备份数据导入设定目录下即可。但是,如果正在写入新的备份数据时系统出现异常,那么新写入的备份数据就可能发生损坏,进而也就无法实现对FLASH数据的恢复。
因此,现有技术中的FLASH数据处理方法不能解决系统异常时FLASH数据损坏的问题。
发明内容
本发明实施例提供一种FLASH数据处理方法以及装置,用以解决现有技术中的FLASH数据处理方法不能解决系统异常时FLASH数据损坏的问题。
一种FLASH数据处理方法,包括:
嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
一种FLASH数据处理装置,包括:
数据备份单元,用于嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
数据写入单元,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
本发明有益效果如下:
本发明实施例提供的FLASH数据处理方法以及装置,嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。由于将目标FLASH进行了分区,并且将设定目录的备份数据轮流写入FLASH各个分区中,一旦嵌入式系统出现异常,至少有一个分区中的备份数据不会损坏,这样就可以从根本上避免系统异常时FLASH数据损坏的问题。
附图说明
图1为本发明实施例中FLASH数据处理方法的流程图;
图2为本发明实施例中FLASH数据处理装置的结构示意图。
具体实施方式
针对现有技术中的FLASH数据处理方法不能根本解决系统异常时FLASH数据损坏的问题,本发明实施例提供一种FLASH数据处理方法,该方法的流程如图1所示,具体执行步骤如下:
S10:嵌入式系统启动后,当对嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
在嵌入时系统启动后,将内存文件系统挂载到嵌入式系统的根文件系统,也就是挂载到嵌入式文件系统的设定目录下,例如可以将RAMFS挂载到目录/mnt/mtd下。
可以采用基于Linux的inotify机制对设定目录下的数据进行管理,当对设定目录下的数据执行修改、创建、删除等等操作时,inotify机制会返回一个消息。可以设定时间周期,一旦用户对设定目录下的数据执行了任意的操作,就可以按照设定的时间周期存储设定目录下的数据。可以根据实际需要设定时间周期,当需要精确的记录对设定目录中的文件操作的情况时,可以将时间周期设定的短一些,反之,就可以将时间周期设定的长一些。这里仅仅是举例说明了设定时间周期的两种情况,当然并不局限于这里说明的两种情况。
一旦设定目录内有操作执行时,就开始计时,设定的时间周期到期后就归档设定目录下的数据,得到备份数据,例如可以压缩设定目录下的数据,就得到压缩数据包,并且为这些数据包分配编号信息,用来表示这些压缩数据包生成时间先后顺序。可以在压缩数据包中生成专门的编号信息文件一起存储在压缩数据包中,当然也可以采用其他的方式,在这里不再赘述。
S11:在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
可以在对目标FLASH格式化时,将目标FLASH进行分区,可以等分为空间相等的两个、三个、四个等等分区,较优的是划分为两个分区,分别记为block1和block2。每个分区中都存储有备份数据,这些备份数据采用一定的文件格式,例如压缩格式等等。
假设目标FLASH分为两个分区block1和block2,就可以轮流在block1和block2中写入添加编号信息的备份数据,若第一份备份数据写入block1中,第二份备份数据就写入block2中,第三份备份数据再写入block1中并且替换第一份备份数据,第四份备份数据再写入block2中并且替换第二份备份数据,依次类推。并且,只有当第一备份数据写入block1后,第二份备份数据才会写入block2;当第二备份数据写入block2后,第三份备份数据才会写入block1;第三备份数据写入block1后,第四份备份数据才会写入block2,也就是说在某一时刻只有一个block的数据在更新。
S12:当嵌入式系统发生异常重新启动后,在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,用于恢复设定目录下的数据。
当嵌入式系统发生断电等异常现象时,就可以根据目标FLASH所有分区中存储的备份数据进行数据恢复了。可以在目标FLASH所有分区存储的数据包中选取一份有效备份数据导入设定目录下,从而实现了恢复设定目录下的数据。
由于将目标FLASH进行了分区,并且将设定目录的备份数据轮流写入FLASH各个分区中,一旦嵌入式系统出现异常,至少有一个分区中的备份数据不会损坏,这样就可以从根本上避免系统异常时FLASH数据损坏的问题。
具体的,上述S12中的在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,具体包括:检测FLASH所有分区中存储的备份数据是否有效;当检测到FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入设定目录下;当检测到FLASH所有分区中存储的备份数据均无效时,不导入备份数据到设定目录下。
在选取有效备份数据时,可以获取目标FLASH所有分区存储的备份数据,并逐一进行检测来判断这些备份数据是否有效。下面以存储的是压缩数据包为例进行说明,当然存储的也可以是其他格式的备份数据,在这里不再赘述。
当存储的是经过压缩处理的压缩数据包时,如果该压缩数据包可以解压打开且校验信息正确,那么说明该压缩数据包是有效的;否则,说明该压缩数据包无效。
如果至少有一个压缩数据包有效,就选取编号信息最大的压缩数据包导入设定目录下,因为编号标识最大就代表是按照时间先后顺序最后存入目标FLASH中的,也就是设定目录下的最新的数据。
当所有的压缩数据包都无效时,也就说明目标FLASH中没有成功备份设定目录下的数据,说明系统是初次运行的,则不导入备份数据到设定目录下,也就是说设定目录为空目录。
较佳的,上述FLASH数据处理方法,还包括:当需要立即存储设定目录下的数据时,归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
当嵌入式系统中的应用程序需要立即存储设定目录下的数据时,例如需要关机、重启时,那么应用程序就需要发送消息,例如使用套接字(Socket)通信,当接收到应用程序发送的需要立即保存数据的消息时,就立即归档设定目录下的数据得到备份数据,并为得到的备份数据添加编号信息,并写入相应的FLASH分区中。
具体的,上述为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息,具体包括:得到备份数据后,将当前的编号信息增加设定数值;为得到的备份数据添加增加设定数值的编号信息。
可以将设定数值设定为1、2、3等等,这里以设定数值为1进行说明。若第一份备份数据添加的编号信息为1,那么后续在得到备份数据时,将当前的编号信息添加设定数值,也就是将当前的编号信息1添加1,得到编号信息2,就可以将2添加到得到的备份数据中。
基于同一发明构思,本发明实施例提供一种FLASH数据处理装置,该装置的结构如图2所示,包括:
数据备份单元20,用于嵌入式系统启动后,当对嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
数据写入单元21,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
较佳的,上述FLASH数据处理装置还包括:数据导入单元22,用于当嵌入式系统发生异常重新启动后,在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,用于恢复设定目录下的数据。
具体的,上述数据导入单元22,具体用于:检测FLASH所有分区中存储的备份数据是否有效;当检测到FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入设定目录下;当检测到FLASH所有分区中存储的备份数据均无效时,不导入备份数据到设定目录下。
具体的,上述数据备份单元20,还用于:当需要立即存储设定目录下的数据时,归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
具体的,上述数据备份单元20,具体用于:得到备份数据后,将当前的编号信息增加设定数值;为得到的备份数据添加增加设定数值的编号信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种FLASH数据处理方法,其特征在于,包括:
嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据;
其中,在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据,具体包括:
将添加编号信息的第i+kN份备份数据替换第i个分区中原有的备份数据,其中,1≤i≤N,N为分区的个数,k为0或正整数。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述嵌入式系统发生异常重新启动后,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,用于恢复所述设定目录下的数据。
3.如权利要求2所述的方法,其特征在于,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,具体包括:
检测所述FLASH所有分区中存储的备份数据是否有效;
当检测到所述FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入所述设定目录下;
当检测到所述FLASH所有分区中存储的备份数据均无效时,不导入备份数据到所述设定目录下。
4.如权利要求1所述的方法,其特征在于,还包括:
当需要立即存储所述设定目录下的数据时,归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
5.如权利要求1-4任一所述的方法,其特征在于,为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息,具体包括:
得到备份数据后,将当前的编号信息增加设定数值;
为得到的备份数据添加增加设定数值的编号信息。
6.一种FLASH数据处理装置,其特征在于,包括:
数据备份单元,用于嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
数据写入单元,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据;
其中数据写入单元具体用于:
将添加编号信息的第i+kN份备份数据替换第i个分区中原有的备份数据,其中,1≤i≤N,N为分区的个数,k为0或正整数。
7.如权利要求6所述的装置,其特征在于,还包括:
数据导入单元,用于当所述嵌入式系统发生异常重新启动后,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,用于恢复所述设定目录下的数据。
8.如权利要求7所述的装置,其特征在于,所述数据导入单元,具体用于:
检测所述FLASH所有分区中存储的备份数据是否有效;
当检测到所述FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入所述设定目录下;
当检测到所述FLASH所有分区中存储的备份数据均无效时,不导入备份数据到所述设定目录下。
9.如权利要求7所述的装置,其特征在于,所述数据备份单元,还用于:
当需要立即存储所述设定目录下的数据时,归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
10.如权利要求6-9任一所述的装置,其特征在于,所述数据备份单元,具体用于:
得到备份数据后,将当前的编号信息增加设定数值;
为得到的备份数据添加增加设定数值的编号信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210209125.6A CN103514063B (zh) | 2012-06-21 | 2012-06-21 | 一种flash数据处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210209125.6A CN103514063B (zh) | 2012-06-21 | 2012-06-21 | 一种flash数据处理方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514063A CN103514063A (zh) | 2014-01-15 |
CN103514063B true CN103514063B (zh) | 2017-02-01 |
Family
ID=49896829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210209125.6A Active CN103514063B (zh) | 2012-06-21 | 2012-06-21 | 一种flash数据处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514063B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717558A (zh) * | 2015-03-05 | 2015-06-17 | 福建新大陆通信科技股份有限公司 | 一种机顶盒数据的备份及还原方法 |
CN105589767B (zh) * | 2015-12-21 | 2018-07-31 | 北京时代民芯科技有限公司 | 一种用于nand flash的系统掉电保护实现方法 |
CN107423166B (zh) * | 2017-08-09 | 2020-03-20 | 郑州云海信息技术有限公司 | 一种基于overlay文件系统的数据处理方法及系统 |
CN108052570B (zh) * | 2017-12-07 | 2020-06-05 | 苏州科达科技股份有限公司 | 会议系统的配置信息存储方法、读取方法及装置 |
CN109656890A (zh) * | 2018-12-24 | 2019-04-19 | 无锡江南计算技术研究所 | 一种安全快速的大规模并行计算输入输出实现方法 |
US20200388242A1 (en) * | 2019-06-05 | 2020-12-10 | Novatek Microelectronics Corp. | Timing controller device and data reading-writing method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1483164A (zh) * | 2000-12-21 | 2004-03-17 | ���ܿ���ϵͳ����˾ | 响应处理信息将大容量存储器恢复到先前状态 |
CN1821978A (zh) * | 2006-01-16 | 2006-08-23 | 深圳创维-Rgb电子有限公司 | 在嵌入系统的非易失存储器中进行数据操作的方法 |
CN101140586A (zh) * | 2007-09-30 | 2008-03-12 | 浙江大学 | 嵌入式系统中NAND Flash存储器上建立文件系统的方法 |
CN101499033A (zh) * | 2008-12-18 | 2009-08-05 | 上海全景数字技术有限公司 | 一种闪存数据保存方法 |
CN102331955A (zh) * | 2011-09-14 | 2012-01-25 | 天津火星科技有限公司 | 一种多时间粒度的数据备份方法 |
-
2012
- 2012-06-21 CN CN201210209125.6A patent/CN103514063B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1483164A (zh) * | 2000-12-21 | 2004-03-17 | ���ܿ���ϵͳ����˾ | 响应处理信息将大容量存储器恢复到先前状态 |
CN1821978A (zh) * | 2006-01-16 | 2006-08-23 | 深圳创维-Rgb电子有限公司 | 在嵌入系统的非易失存储器中进行数据操作的方法 |
CN101140586A (zh) * | 2007-09-30 | 2008-03-12 | 浙江大学 | 嵌入式系统中NAND Flash存储器上建立文件系统的方法 |
CN101499033A (zh) * | 2008-12-18 | 2009-08-05 | 上海全景数字技术有限公司 | 一种闪存数据保存方法 |
CN102331955A (zh) * | 2011-09-14 | 2012-01-25 | 天津火星科技有限公司 | 一种多时间粒度的数据备份方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103514063A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514063B (zh) | 一种flash数据处理方法以及装置 | |
US11269737B2 (en) | Incrementally updating recovery map data for a memory system | |
CN101344868B (zh) | 数据备份和获取的方法和装置 | |
WO2011149760A1 (en) | Memory access table saving and restoring system and methods | |
CN103488721B (zh) | 主备板的数据库双向同步方法和系统 | |
CN102253863A (zh) | 一种进程关闭方法 | |
KR101579711B1 (ko) | 플래시 변환 층(ftl) 데이터베이스 저널링 기법들 | |
CN104899071A (zh) | 集群中虚拟机的恢复方法和系统 | |
CN111949445B (zh) | 一种增量备份数据存储方法、装置、设备、产品 | |
CN102024502A (zh) | 闪存器件测试方法、装置及板卡和网络设备 | |
CN104598335A (zh) | Nv参数的备份恢复方法和装置 | |
CN101183979A (zh) | 一种配置备份的方法和装置 | |
CN108614876B (zh) | 一种基于Redis数据库的系统和数据处理方法 | |
CN104461372B (zh) | 用于控制存储装置的方法、控制装置和电子设备 | |
CN103810060A (zh) | 基于分布式数据库的数据备份方法及其系统 | |
CN104636242A (zh) | 一种基于Linux操作系统的系统日志自动删除重复内容的方法 | |
CN102025758B (zh) | 分布式系统中数据副本的恢复方法、装置和系统 | |
CN102880530B (zh) | 终端和终端备份及恢复方法 | |
CN103049343A (zh) | 操作系统蓝屏恢复方法及装置 | |
CN103176920A (zh) | Nor flash掉电保护方法及装置 | |
US8745005B1 (en) | Checkpoint recovery using a B-tree intent log with syncpoints | |
CN104572339A (zh) | 基于分布式文件系统的数据备份还原系统及方法 | |
CN109445991A (zh) | 一种数据存储方法、系统、智能可穿戴设备及存储介质 | |
WO2017067397A1 (zh) | 一种数据恢复方法和装置 | |
CN104123205A (zh) | 一种检测cpu超频工作状态的方法及装置 |
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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |