一种flash数据处理方法以及装置制造方法

文档序号:6486399阅读:122来源:国知局
一种flash数据处理方法以及装置制造方法
【专利摘要】本发明公开了一种FLASH数据处理方法以及装置,该方法包括:嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。该方案可以从根本上避免系统异常时FLASH数据损坏的问题。
【专利说明】一种FLASH数据处理方法以及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤指一种FLASH数据处理方法以及装置。
【背景技术】
[0002]闪存(Flash Memory,FLASH)是一种可快速擦除、可现场编程的非易失性快擦写存储器。由于FLASH具有非易失性,它被广泛用于在线擦写、掉电保护数据、分区保护数据等场合,在现代通信及微电子领域的应用极为广泛。
[0003]嵌入式系统的配置数据和日志信息一般存储在FLASH中,通常使用闪存设备日志型文件系统第 2 版(Journaling Flash File System Version 2, JFFS2),当用户对该嵌入式系统的设定目录下的数据执行创建、修改、删除等等操作时,嵌入式系统会定期备份该设定目录下的数据,并将备份数据写入FLASH中,新写入的备份数据会替换已有的备份数据。一旦发生系统掉电等异常状态需要对设定目录下的数据进行恢复时,直接将FLASH中存储的备份数据导入设定目录下即可。但是,如果正在写入新的备份数据时系统出现异常,那么新写入的备份数据就可能发生损坏,进而也就无法实现对FLASH数据的恢复。
[0004]因此,现有技术中的FLASH数据处理方法不能解决系统异常时FLASH数据损坏的问题。

【发明内容】

[0005]本发明实施例提供一种FLASH数据处理方法以及装置,用以解决现有技术中的FLASH数据处理方法不能解决系统异常时FLASH数据损坏的问题。
[0006]一种FLASH数据处理方法,包括:
[0007]嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
[0008]在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
[0009]一种FLASH数据处理装置,包括:
[0010]数据备份单元,用于嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;
[0011]数据写入单元,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
[0012]本发明有益效果如下:
[0013]本发明实施例提供的FLASH数据处理方法以及装置,嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息;在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。由于将目标FLASH进行了分区,并且将设定目录的备份数据轮流写入FLASH各个分区中,一旦嵌入式系统出现异常,至少有一个分区中的备份数据不会损坏,这样就可以从根本上避免系统异常时FLASH数据损坏的问题。
【专利附图】

【附图说明】
[0014]图1为本发明实施例中FLASH数据处理方法的流程图;
[0015]图2为本发明实施例中FLASH数据处理装置的结构示意图。
【具体实施方式】
[0016]针对现有技术中的FLASH数据处理方法不能根本解决系统异常时FLASH数据损坏的问题,本发明实施例提供一种FLASH数据处理方法,该方法的流程如图1所示,具体执行步骤如下:
[0017]S10:嵌入式系统启动后,当对嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
[0018]在嵌入时系统启动后,将内存文件系统挂载到嵌入式系统的根文件系统,也就是挂载到嵌入式文件系统的设定目录下,例如可以将RAMFS挂载到目录/mnt/mtd下。
[0019]可以采用基于Linux的inotify机制对设定目录下的数据进行管理,当对设定目录下的数据执行修改、仓Il建、删除等等操作时,inotify机制会返回一个消息。可以设定时间周期,一旦用户对设定目录下的数据执行了任意的操作,就可以按照设定的时间周期存储设定目录下的数据。可以根据实际需要设定时间周期,当需要精确的记录对设定目录中的文件操作的情况时,可以将时间周期设定的短一些,反之,就可以将时间周期设定的长一些。这里仅仅是举例说明了设定时间周期的两种情况,当然并不局限于这里说明的两种情况。
[0020]一旦设定目录内有操作执行时,就开始计时,设定的时间周期到期后就归档设定目录下的数据,得到备份数据,例如可以压缩设定目录下的数据,就得到压缩数据包,并且为这些数据包分配编号信息,用来表示这些压缩数据包生成时间先后顺序。可以在压缩数据包中生成专门的编号信息文件一起存储在压缩数据包中,当然也可以采用其他的方式,在这里不再赘述。
[0021]Sll:在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
[0022]可以在对目标FLASH格式化时,将目标FLASH进行分区,可以等分为空间相等的两个、三个、四个等等分区,较优的是划分为两个分区,分别记为blockl和block2。每个分区中都存储有备份数据,这些备份数据采用一定的文件格式,例如压缩格式等等。
[0023]假设目标FLASH分为两个分区blockl和block2,就可以轮流在blockl和block2中写入添加编号信息的备份数据,若第一份备份数据写入blockl中,第二份备份数据就写Ablock2中,第三份备份数据再写入blockl中并且替换第一份备份数据,第四份备份数据再写入block2中并且替换第二份备份数据,依次类推。并且,只有当第一备份数据写入blockl后,第二份备份数据才会写入block2;当第二备份数据写入block2后,第三份备份数据才会写入blockl ;第三备份数据写入blockl后,第四份备份数据才会写入block2,也就是说在某一时刻只有一个block的数据在更新。
[0024]S12:当嵌入式系统发生异常重新启动后,在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,用于恢复设定目录下的数据。
[0025]当嵌入式系统发生断电等异常现象时,就可以根据目标FLASH所有分区中存储的备份数据进行数据恢复了。可以在目标FLASH所有分区存储的数据包中选取一份有效备份数据导入设定目录下,从而实现了恢复设定目录下的数据。
[0026]由于将目标FLASH进行了分区,并且将设定目录的备份数据轮流写入FLASH各个分区中,一旦嵌入式系统出现异常,至少有一个分区中的备份数据不会损坏,这样就可以从根本上避免系统异常时FLASH数据损坏的问题。
[0027]具体的,上述S12中的在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,具体包括:检测FLASH所有分区中存储的备份数据是否有效;当检测到FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入设定目录下;当检测到FLASH所有分区中存储的备份数据均无效时,不导入备份数据到设定目录下。
[0028]在选取有效备份数据时,可以获取目标FLASH所有分区存储的备份数据,并逐一进行检测来判断这些备份数据是否有效。下面以存储的是压缩数据包为例进行说明,当然存储的也可以是其他格式的备份数据,在这里不再赘述。
[0029]当存储的是经过压缩处理的压缩数据包时,如果该压缩数据包可以解压打开且校验信息正确,那么说明该压缩数据包是有效的;否则,说明该压缩数据包无效。
[0030]如果至少有一个压缩数据包有效,就选取编号信息最大的压缩数据包导入设定目录下,因为编号标识最大就代表是按照时间先后顺序最后存入目标FLASH中的,也就是设定目录下的最新的数据。
[0031]当所有的压缩数据包都无效时,也就说明目标FLASH中没有成功备份设定目录下的数据,说明系统是初次运行的,则不导入备份数据到设定目录下,也就是说设定目录为空目录。
[0032]较佳的,上述FLASH数据处理方法,还包括:当需要立即存储设定目录下的数据时,归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
[0033]当嵌入式系统中的应用程序需要立即存储设定目录下的数据时,例如需要关机、重启时,那么应用程序就需要发送消息,例如使用套接字(Socket)通信,当接收到应用程序发送的需要立即保存数据的消息时,就立即归档设定目录下的数据得到备份数据,并为得到的备份数据添加编号信息,并写入相应的FLASH分区中。
[0034]具体的,上述为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息,具体包括:得到备份数据后,将当前的编号信息增加设定数值;为得到的备份数据添加增加设定数值的编号信息。
[0035]可以将设定数值设定为1、2、3等等,这里以设定数值为I进行说明。若第一份备份数据添加的编号信息为1,那么后续在得到备份数据时,将当前的编号信息添加设定数值,也就是将当前的编号信息I添加1,得到编号信息2,就可以将2添加到得到的备份数据中。
[0036]基于同一发明构思,本发明实施例提供一种FLASH数据处理装置,该装置的结构如图2所示,包括:
[0037]数据备份单元20,用于嵌入式系统启动后,当对嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
[0038]数据写入单元21,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
[0039]较佳的,上述FLASH数据处理装置还包括:数据导入单元22,用于当嵌入式系统发生异常重新启动后,在FLASH所有分区存储的备份数据中选取一份有效备份数据导入设定目录下,用于恢复设定目录下的数据。
[0040]具体的,上述数据导入单元22,具体用于:检测FLASH所有分区中存储的备份数据是否有效;当检测到FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入设定目录下;当检测到FLASH所有分区中存储的备份数据均无效时,不导入备份数据到设定目录下。
[0041]具体的,上述数据备份单元20,还用于:当需要立即存储设定目录下的数据时,归档设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
[0042]具体的,上述数据备份单元20,具体用于:得到备份数据后,将当前的编号信息增加设定数值;为得到的备份数据添加增加设定数值的编号信息。
[0043]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种FLASH数据处理方法,其特征在于,包括: 嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息; 在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
2.如权利要求1所述的方法,其特征在于,还包括: 当所述嵌入式系统发生异常重新启动后,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,用于恢复所述设定目录下的数据。
3.如权利要求2所述的方法,其特征在于,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,具体包括: 检测所述FLASH所有分区中存储的备份数据是否有效; 当检测到所述FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入所述设定目录下; 当检测到所述FLASH所有分区中存储的备份数据均无效时,不导入备份数据到所述设定目录下。
4.如权利要求1所述的方法,其特征在于,还包括: 当需要立即存储所述设定目录下的数据时,归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
5.如权利要求1-4任一所述的方法,其特征在于,为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息,具体包括: 得到备份数据后,将当前的编号信息增加设定数值; 为得到的备份数据添加增加设定数值的编号信息。
6.一种FLASH数据处理装置,其特征在于,包括: 数据备份单元,用于嵌入式系统启动后,当对所述嵌入式系统的设定目录下的数据执行操作时,以设定的时间周期归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息; 数据写入单元,用于在目标闪存FLASH的各个分区中轮流写入添加编号信息的备份数据。
7.如权利要求6所述的装置,其特征在于,还包括: 数据导入单元,用于当所述嵌入式系统发生异常重新启动后,在所述FLASH所有分区存储的备份数据中选取一份有效备份数据导入所述设定目录下,用于恢复所述设定目录下的数据。
8.如权利要求7所述的装置,其特征在于,所述数据导入单元,具体用于: 检测所述FLASH所有分区中存储的备份数据是否有效; 当检测到所述FLASH至少一个分区中存储的备份数据有效时,在所有有效的备份数据中选取编号信息最大的备份数据导入所述设定目录下; 当检测到所述FLASH所有分区中存储的备份数据均无效时,不导入备份数据到所述设定目录下。
9.如权利要求7所述的装置,其特征在于,所述数据备份单元,还用于:当需要立即存储所述设定目录下的数据时,归档所述设定目录下的数据得到备份数据,并为得到的备份数据添加用于表示备份数据生成时间先后顺序的编号信息。
10.如权利要求6-9任一所述的装置,其特征在于,所述数据备份单元,具体用于: 得到备份数据后,将当前的编号信息增加设定数值; 为得到的备份数据添加增加设定数`值的编号信息。
【文档编号】G06F11/14GK103514063SQ201210209125
【公开日】2014年1月15日 申请日期:2012年6月21日 优先权日:2012年6月21日
【发明者】高迎军, 张兴明, 傅利泉, 朱江明, 吴军, 吴坚 申请人:浙江大华技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1