一种防止向Flash配置区域写入相同参数的方法技术

技术编号:13171267 阅读:77 留言:0更新日期:2016-05-10 14:48
本发明专利技术涉及存储数据技术领域,具体涉及一种防止向Flash配置区域写入相同参数的方法,通过驱动层控制向Flash中写入数据,同时在驱动层设置哈希表,驱动层判断用户提交的要写入的参数是否已经存储在哈希表中,若存在,则不执行写入操作,否则,才执行参数的写入操作,通过驱动层判断用户提交的参数是否在哈希表中已经存在,若不存在或者与原参数不相同,才执行写入操作,减少了Flash的写入次数,采用哈希表维护Flash参数,具有查找迅速的特点,同时,将Flash上的参数保存为JSON格式,具有方便解析和结构清晰的特点,同时,驱动层控制Flash的写入,提高了系统的安全性。

【技术实现步骤摘要】

本专利技术涉及存储数据
,具体涉及。
技术介绍
如今,嵌入式设备已经融入到我们生活中的每一处,如智能手环、机顶盒、家用路由器等,这些嵌入式设备往往都使用Flash来存储软件固件和配置信息,软件固件一般是只读的并不会对其进行修改,配置信息一般保存在Flash上某个固定区域,用户使用嵌入式设备的过程中会对配置参数区域进行反复的读写动作。随着私有云概念的普及,我们身边很多智能嵌入式设备都有接入到云服务器的功能,这必然给我们带来了很多方便,然而这样对嵌入式设备的操作也越来越频繁。我们对嵌入式设备进行的操作都以参数的形式保存在嵌入式设备上,这样无疑会对嵌入式设备的配置参数区域进行反复的擦写动作,然而反复的擦写会带来一些问题,例如:一是会减少嵌入式设备Flash的使用寿命,二是擦写过程中意外断电会使以前的配置信息丢失,三是反复擦写Flash会占用较多的系统资源影响系统系能。目前嵌入式设备对用户层提交的参数往往都是直接保存在Flash上,即用户层每一次提交动作驱动层都将擦写一次Flash,然而很多用户层提交的参数都是相同的,如私有云和嵌入式设备的交互的数据,用户重复操作所提交的数据和用户层定时存储的某些数据等。因此,如何避免向Flash配置区域写入相同的参数成为本领域技术人员面临的一大难题。
技术实现思路
针对现有技术的不足,本专利技术提供,通过驱动层控制向Flash中写入数据,同时在驱动层设置哈希表,驱动层判断用户提交的要写入的参数是否已经存储在哈希表中,若存在,则不执行写入操作,否则,才执行参数的写入操作,该技术方案具体为:—种防止向Flash配置区域写入相同参数的方法,应用于嵌入式系统中,其中,所述方法包括:用户层提交要写入Flash配置区域的数据;驱动层将所述数据解析为包括参数名和参数值的数据包;驱动层遍历查询哈希表中是否存在所述参数名,若不存在,则将所述参数名和所述参数值写入哈希表;若存在,所述驱动层继续查询所述参数值与哈希表中所述参数名对应的参数值是否相同,若不相同,则将所述参数值写入哈希表中所述参数名对应的参数值区域,并将所述参数名和参数值保存至Flash。上述的防止向Flash配置区域写入相同参数的方法,其中,所述方法中,驱动层将所述数据解析为包括参数名和参数值的数据包之前进行的步骤还包括:驱动层建立包括参数名和参数值的哈希表。上述的防止向Flash配置区域写入相同参数的方法,其中,所述驱动层建立包括参数名和参数值的哈希表的方法还包括:启动所述嵌入式系统;所述驱动层读取存在于配置区域的参数;判断所述配置区域的参数是否读完,若读完,则结束;若未读完,则继续读取并将读取的参数保存在所述哈希表。上述的防止向Flash配置区域写入相同参数的方法,其中,所述方法中,继续读取并将读取的参数保存在所述哈希表的方法还包括:为从配置区域中读取的参数名和参数值分配空间以保存;使用读取到的参数名计算哈希值;判断所述哈希值对应的地址是否为空,若为空,则将读取到的所述参数名和参数值保存至所述哈希值对应的地址处,否则,则指向所述哈希值对应地址的下一个地址处。上述的防止向Flash配置区域写入相同参数的方法,其中,所述方法中,用户层提交要写入Flash配置区域的数据前的进行的步骤还包括:用户层接收用户和/或云服务器传递的数据。上述的防止向Flash配置区域写入相同参数的方法,其中,所述参数名和参数值以JSON的格式保存至Flash。与现有技术相比,本专利技术的优点是:通过驱动层判断用户提交的参数是否在哈希表中已经存在,若不存在或者与原参数不相同,才执行写入操作,减少了Flash的写入次数,采用哈希表维护Flash参数,具有查找迅速的特点,同时,将Flash上的参数保存为JSON格式,具有方便解析和结构清晰的特点,同时,驱动层控制Flash的写入,提高了系统的安全性。【附图说明】图1为本专利技术一实施例中防止向Flash配置区域写入相同参数的方法流程图;图2为本专利技术一实施例中驱动层读取配置区域参数建立哈希表的算法图;图3为本专利技术一实施例中驱动层判断用户是否需要写入闪存的结构示意图;图4是本专利技术一实施例中存储配置参数的结构示意图。【具体实施方式】下面结合附图和具体实施例对本专利技术作进一步说明,但不作为本专利技术的限定。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面结合附图和具体实施例对本专利技术作进一步说明,但不作为本专利技术的限定。参见图1所示结构,本专利技术提供,该方法包括:首先,用户层提交要写入Flash配置区域的数据;继续,驱动层将数据解析为包括参数名和参数值的数据包;最后,驱动层遍历查询哈希表中是否存在参数名,若不存在,则将参数名和参数值写入哈希表;若存在,驱动层继续查询参数值与哈希表中参数名对应的参数值是否相同,若不相同,则将参数值写入哈希表中参数名对应的参数值区域,并将参数名和参数值保存至Flash0作为本专利技术一个优选实施例,方法中,驱动层将数据解析为包括参数名和参数值的数据包之前进行的步骤还包括:驱动层建立包括参数名和参数值的哈希表。在此基础上,进一步的,驱动层建立包括参数名和参数值的哈希表的方法还包括:启动嵌入式系统;驱动层读取存在于配置区域的参数;判断配置区域的参数是否读完,若读完,则结束;若未读完,则继续读取并将读取的参数保存在哈希表。在此基础上,更进一步的,该方法中,继续读取并将读取的参数保存在哈希表的方法还包括:当前第1页1 2 本文档来自技高网...

【技术保护点】
一种防止向Flash配置区域写入相同参数的方法,应用于嵌入式系统中,其特征在于,所述方法包括:用户层提交要写入Flash配置区域的数据;驱动层将所述数据解析为包括参数名和参数值的数据包;驱动层遍历查询哈希表中是否存在所述参数名,若不存在,则将所述参数名和所述参数值写入哈希表;若存在,所述驱动层继续查询所述参数值与哈希表中所述参数名对应的参数值是否相同,若不相同,则将所述参数值写入哈希表中所述参数名对应的参数值区域,并将所述参数名和参数值保存至Flash。

【技术特征摘要】

【专利技术属性】
技术研发人员:李茂源
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1