一种固件升级方法及装置制造方法

文档序号:6632863阅读:235来源:国知局
一种固件升级方法及装置制造方法
【专利摘要】本发明公开了一种固件升级方法及装置,用于固件升级,采用本发明提供的固件升级方法及装置,当升级了错误的第三固件,或者存放第三固件的闪存区域发生异常导致系统无法正常运行的错误发生后,通过获取外设存储装置中正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决升级失败导致设备不能启动的问题,无需人工干预,降低了时间成本,同时提高了用户体验。
【专利说明】一种固件升级方法及装置

【技术领域】
[0001]本发明涉及固件升级领域,特别涉及一种固件升级方法及装置。

【背景技术】
[0002]在相机等嵌入式设备的生命周期中,均会采用固件升级的方式对设备进行更新、维护。升级成功后,固件一般存放于设备中闪存中的某一特定位置中。
[0003]在这个过程中,可能出现的问题有:新的固件存在问题或者是新的固件与该设备不匹配,从而使得升级后的设备无法正常启动,从表象上来说就是设备上电后无任何反应,出现设备不能启动现象;还有一个就是设备上存放固件的闪存区块损坏,设备启动时,无法正常从该地址处读取代码进行执行,此问题亦会使设备无法再次启动。
[0004]一般基于保证设备的外观、防止用户误操作及防止竞争对手抄袭等目的,设备不会外置多余的板级接口,所以为了解决设备无法再次启动的问题,常常是设备返厂,然后在工厂中对设备主板上的预留管脚进行飞线处理,强制设备进入升级模式再进行修复处理,在此过程中需要人工全程参与。
[0005]现有的嵌入式设备,为了保证产品的外形美观及纤小等特性,同时也为了防止被抄袭。不会将产品主板上的所有焊接点均暴露给用户。也就是说,设备基本都有很多隐藏功能,对用户是不可见的。在这些隐藏的功能中,最基本的一个就是升级片选功能,当选择该功能时,设备在上电后即会进入升级模式,等待用户将新的固件升入设备中,而之所以会预留此功能,就是为了防止升级失败或设备的闪存异常等原因而导致设备无法正常使用时,能对设备进行再次升级处理。
[0006]由上可知,目前的处理方法存在的问题有:出问题时,用户无法自行分析解决;在返厂维修阶段,全程都需要人工参与。


【发明内容】

[0007]有鉴于此,本发明实施例提供了一种固件升级方法及装置。
[0008]本发明提供了一种固件升级方法,所述固件包括初期引导阶段使用的第一固件、引导阶段使用的第二固件以及系统运行阶段使用的第三固件,所述方法包括:
[0009]依次启动第一固件及第二固件,并在所述第二固件运行结束时启动第一看门狗计时;
[0010]对第三固件进行合法性校验和一致性校验;
[0011]若不通过校验且当计时达到预设时间,则系统热复位并记录次数;
[0012]当记录次数达到预设次数,获取第四固件,将第四固件覆盖设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
[0013]优选的,所述方法还包括:
[0014]配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、以及系统运行阶段使用的第三固件;
[0015]建立第一固件、第二固件以及第三固件之间的通信通道。
[0016]优选的,所述建立第一固件、第二固件以及第三固件之间的通信通道具体包括:
[0017]所述第一固件、第二固件以及第三固件配置相同的内存地址映射。
[0018]优选的,在所述对第三固件进行合法性校验和一致性校验之后,所述方法还包括:
[0019]若通过校验,启动第三固件并关闭第一看门狗,启动第二看门狗计时;
[0020]判断第二看门狗的计数是否被定时清零。
[0021]优选的,在所判断第二看门狗的计数是否被定时清零之后,所述方法还包括:
[0022]当第二看门狗的计数被定时清零,则确定系统运行正常;
[0023]当第二看门狗的计数未被定时清零,则确定系统运行异常。
[0024]优选的,在所述当第二看门狗的计数未被定时清零,则确定系统运行异常之后,所述方法还包括:
[0025]系统进行热复位并记录次数。
[0026]优选的,所述方法还包括:将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
[0027]优选的,所述合法性校验包括所述第三固件是否符合设备型号或者固有识别号是否合法;或/及,
[0028]所述一致性校验包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败。
[0029]优选的,在所述将第四固件覆盖所述设备的闪存区中的第三固件之前,所述方法还包括:
[0030]检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,否则跳过所述闪存区。
[0031]本发明还提供了一种固件升级方法,所述方法包括:
[0032]当前系统固件启动运行;
[0033]启动看门狗进行计数;
[0034]配置预设时间阈值将所述看门狗的计数清零;
[0035]判断所述看门狗的计数达到预设时间阈值时是否被清零;
[0036]当所述看门狗在预设时间阈值时未被清零,则系统热复位并记录次数;
[0037]当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
[0038]优选的,所述方法还包括:
[0039]将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
[0040]优选的,在所述判断所述看门狗的计数达到预设时间阈值时是否被清零之后,所述方法还包括:
[0041]当看门狗的计数被定时清零,则确定系统运行正常;
[0042]当看门狗的计数未被定时清零,则确定系统运行异常。
[0043]本发明提供了一种固件升级装置,所述固件包括初期引导阶段使用的第一固件、引导阶段使用的第二固件以及系统运行阶段使用的第三固件,所述装置包括:
[0044]第一启动单元,用于依次启动第一固件及第二固件,并在所述第二固件运行结束时启动第一看门狗计时;
[0045]校验单元,用于对第三固件进行合法性校验和一致性校验;
[0046]第一复位单元,用于在不通过校验且当计时达到预设时间时系统热复位并记录次数;以及
[0047]升级单元,用于当记录次数达到预设次数,获取外设存储装置中的第四固件,将第四固件覆盖设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
[0048]优选的,所述装置还包括:
[0049]第一配置单元,用于配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、以及系统运行阶段使用的第三固件;
[0050]通信通道建立单元,用于建立第一固件、第二固件以及第三固件之间的通信通道。
[0051]优选的,所述装置还包括:
[0052]第二配置单元,用于将所述第一固件、第二固件以及第三固件配置相同的内存地址映射。
[0053]优选的,所述装置还包括:
[0054]第二启动单元,用于通过校验时启动第三固件并关闭第一看门狗,启动第二看门狗计时;
[0055]判断单元,用于判断第二看门狗的计数是否被定时清零。
[0056]优选的,所述装置还包括:
[0057]第一确定单元,用于当第二看门狗的计数被定时清零确定系统运行正常;
[0058]第二确定单元,用于当第二看门狗的计数未被定时清零确定系统运行异常。
[0059]优选的,所述装置还包括:
[0060]第三配置单元,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
[0061]优选的,所述合法性校验包括所述第三固件是否符合设备型号或者固有识别号是否合法;
[0062]或/及,所述一致性校验包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败。
[0063]优选的,所述装置还包括:
[0064]闪存检测单元,用于检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,否则跳过该闪存区。
[0065]本发明还提供了一种固件升级装置,所述装置包括:
[0066]第一启动单元,用于当前系统固件启动运行;
[0067]第一计数单元,用于启动看门狗进行计数;
[0068]第一配置单元,用于配置预设时间阈值将所述看门狗的计数清零;
[0069]第一判断单元,用于判断所述看门狗的计数达到预设时间阈值时是否被清零;
[0070]第一复位单元,用于当所述看门狗在预设时间阈值时未被清零,则系统热复位并记录次数;
[0071]升级单元,用于当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
[0072]优选的,所述装置还包括:第二配置单元,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数;
[0073]或/及,所述装置还包括:
[0074]第一确定单元,用于当看门狗的计数被定时清零确定系统运行正常;
[0075]第二确定单元,用于当看门狗的计数未被定时清零确定系统运行异常。
[0076]从以上技术方案可以看出,本发明实施例具有以下优点:
[0077]采用本发明提供的固件升级方法及装置,当升级了错误的第三固件,或者存放第三固件的闪存区域发生异常导致系统无法正常启动或运行的错误发生后,通过获取正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决升级失败导致设备不能启动的问题,无需人工干预,降低了时间成本,同时提高了用户体验。

【专利附图】

【附图说明】
[0078]图1是本发明的实施例一的固件升级方法的流程图;
[0079]图2是本发明的实施例一固件升级装置的结构图;
[0080]图3是本发明的实施例二固件升级方法的流程图;
[0081]图4是本发明的实施例二固件升级装置的结构图。

【具体实施方式】
[0082]本发明实施例提供了一种固件升级方法及装置,用于固件升级,解决升级失败导致设备不能启动的问题。
[0083]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0084]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三…第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0085]结合图1所示,本发明固件升级方法的一种实施例,所述方法包括:
[0086]S101、配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、及系统运行阶段使用的第三固件;
[0087]对固件升级也可以理解为对操作系统的升级,第一固件可以理解为操作系统在运行之前需要运行的小段程序,可以将操作系统的软硬件环境带到一个合适状态,为运行操作系统做好准备。
[0088]第二固件可以将操作系统的内核载入内存,将控制权交给操作系统内核,在产品的整个生命周期中,基本不会对这两个固件进行升级处理,所以可以将它们存放在可靠性相对较高但价格相对昂贵的存储介质上,从而保证在设备的整个生命周期中,第一固件和第二固件都不会遭受破坏。
[0089]第三固件用于操作系统运行时使用,第三固件的容量相对较大,同时在产品的生命周期中,经常需要对第三固件进行升级处理,所以可以将第三固件存放在相对便宜但可靠性较低的存储介质上。
[0090]S102、建立第一固件、第二固件以及第三固件之间的通信通道;
[0091]为保证在操作系统的不同运行阶段之间进行通信,可以将第一固件、第二固件以及第三固件采用相同的内存地址映射配置,从而使得三个阶段中,固件所访问的内存地址是一致的,因为固件本身的运行时序保证了内存上不会存在竞争关系,同时由于三个固件访问的是同一快内存且地址映射关系一样,所以能够十分方便的将前期运行固件的信息传递给后期运行的固件。
[0092]需要说明的是,SlOl中对于固件的配置,可以预先进行配置,不需要每次启动进行重新的配置,可以是生产设备初期固化在相应的器件中,对此不做限定。
[0093]S103、依次启动第一固件及第二固件,并第二固件运行结束时启动第一看门狗计时;
[0094]在操作系统上电时,首先运行的是第一固件,接着运行的是第二固件,在第二固件的运行末期,启动第一看门狗,看门狗程序用于进行计数,当计数达到一定数值则可以将操作系统进行复位,若第三固件存在且正常,则操作系统会跳到第三固件的首地址接着运行,同时系统会关闭运行第二固件阶段所启动的第一看门狗,其中第一看门狗的作用是保证第三固件是正常的版本,能够被正常加载并运行,如果不能正常进行加载运行则对操作系统进行复位。
[0095]需要说明的是,看门狗在系统运行以后也就启动了看门狗的计数器,需要说明的是,看门狗就开始自动计数,如果到了一定的时间还不将看门狗的计数清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统复位,本领域普通技术人员应当了解,不作赘述。
[0096]本文中提到的看门狗可以为软件程序,可以为硬件电路实现,可以实现计数溢出对系统进行复位即可,具体不做限定。
[0097]S104、对第三固件进行合法性校验和一致性校验;
[0098]合法性的检验和一致性校验可以是对第三固件可以校验版本是否相同,文件是否相同,或者第三固件是否存在,所述合法性校验可以具体包括所述第三固件是否符合设备型号或者固有识别号是否合法,所述一致性校验可以具体包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败,当然也可以通过其他校验检测第三固件是否可用,即可以用来操作系统的正常运行,不做限定。
[0099]S105、若不通过校验且当计时达到预设时间,则系统热复位并记录次数;
[0100]当第三固件没有通过合法性检验和一致性校验,则可以说明第三固件的版本不正确或根本不存在,第三固件处于不可用状态,此时操作系统会停留在第二固件的运行状态,第二固件中没有设置定时清除第一看门狗的计数,而第三固件中设置可以将第一看门狗关闭的程序,但是第三固件处于不可用状态,所以,第一看门狗的计数达到的时间达到预设时间或者预设数值,第一看门狗会将操作系统进行热复位,即操作系统重新启动,在操作系统热复位之前,操作系统会记录热复位的次数,当该次数过预设次数时(如3次),则可确定是设备中所存放的第三固件异常或根本不存在,操作系统会被自动引导进入升级例程,不需要人工干预。
[0101]S106、当记录次数达到预设次数,获取第四固件,将第四固件覆盖所述设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
[0102]第四固件可以存放在外设存储装置中也可以存放在设备内部的存储设备中,可以根据实际需要进行设置,具体不做限定,外设存储装置可以为外接在设备上的优盘、SD卡或TF卡等等,满足可以存储所需完整可用的第四固件即可,具体不做限定,需要说明的是为了区别说明,将外设存储装置中的第四固件与设备中第三固件区分命名,位于外设存储装置上的第四固件与完整可用的第三固件相同,只是存放位置不相同,名称不同,以示区别。
[0103]将完整可用的第四固件覆盖到设备的闪存区中的第三固件,操作系统运行时候可以直接调用第四固件正常运行,从而解决第三固件损坏导致操作系统不能正常启动的问题。
[0104]优选的,检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,若所述闪存区异常,则跳过该闪存区。即在将第四固件写入设备的闪存之前,可以预先会检测该闪存区域是否正常可用。若有异常,则系统会跳过该闪存区域,从而保证能将第四固件存入正常的闪存区域中。因此若之前存放第三固件的闪存区域发生异常,导致系统无法正常运行时,通过重新升级使得操作系统可以正常运行,避免升级失败导致的设备无法启动的问题。
[0105]采用本发明提供的固件升级方法,当升级了错误的第三固件,或者存放第三固件的闪存区域发生异常导致系统无法正常运行的错误发生后,通过获取外设存储装置中正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决升级失败导致设备不能启动的问题,无需人工干预,降低了时间成本,同时提高了用户体验。
[0106]结合图1所示,上面介绍了在固件升级时候,第三固件版本是否正确以及是否存在进行了升级的操作,下面针对第三固件存在且版本正确后如何进行升级进行介绍:
[0107]在S106、对第三固件进行合法性校验和一致性校验之后还包括:
[0108]S107,若通过校验,启动第三固件并关闭第一看门狗,启动第二看门狗计时;
[0109]第一看门狗用于检测第三固件的完整性,是否处于可用,但第三固件正常启动后,第一看门狗的功能完成,此时不需要第一看门狗再进行计数,通过调用程序或者电路关闭第一看门狗,第二看门狗是用于检测系统正常运行过程中出现的异常情况,即第三固件正常运行过程中,出现异常时,第二看门狗的计数不能被定时清零,当计数达到预设的数值时,第二看门狗将系统进行热复位,即将系统重新启动。
[0110]S108,判断第二看门狗的计数是否被定时清零;
[0111]通过检验则说明设备中第三固件存在且版本正确,启动加载第三固件,加在第三固件时候可以跳到第三固件的首地址开始运行,在该过程中,操作系统可以清空记录的热复位次数等异常记录,并关闭第一看门狗计数,并启动第二看门狗进行计数,第三固件中会设定定时将第二看门狗的计数清零的任务,当第三固件正常运行,操作系统则正常运行,第二看门狗的计数会被定时清零。
[0112]S109,当第二看门狗的计数被定时清零,则确定系统运行正常;
[0113]判断第二看门狗的计数是否被定时清零,若被定时清零,则说明操作系统对清零任务的调用正常,操作系统的运行正常。
[0114]S110,当第二看门狗的计数未被定时清零,则确定系统运行异常。
[0115]若第三固件有异常,则任务就不能被正常的定时调用,第二看门狗的计数不能定时被清零,则确定操作系统运行异常。
[0116]S111、系统进行热复位并记录次数。
[0117]操作系统运行异常,操作系统会被第二看门狗热复位,使操作系统重新启动,操作系统记录热复位次数,可选的,将热复位次数记录在设备的内存中,当异热复位次数超过设定次数,则系统就会进入升级例程,记录热复位次数以及进入升级例程的操作与上文中描述的S108相同,在此不作赘述。
[0118]针对如何建立第一固件、第二固件以及第三固件之间的通信信道,本发明固件升级方法提供了一种实施例是这样的:
[0119]所述第一固件、第二固件以及第三固件配置相同的内存地址映射,将系统的部分内存配置预设的容量,专门用作三个固件间的通信,在所述预设的容量内记录操作系统热复位次数,可选的的容量为I兆,当然可以选择其他数值,满足需要即可,具体不做限定,本实施例中选择容量为I兆,这个通信信道不受其他信息的干扰,同时在操作系统上电后,在遇到无法解决的异常,如第三固件的版本不匹配或已损坏等,致使操作系统需热复位的情况下,本操作系统只进行热启动而不会直接关闭,这样就保证了内存中的内容在系统热复位后仍然存在而不会丢失,从而保证了三个固件之间的正常通信。
[0120]优选的,操作系统在内存中记录热复位次数,根据热复位的次数来确定第三固件的状态,预设次数为3次,当然预设次数也可以选择其他数值,根据实际需要决定,在此不作限定。
[0121]优选的,所述外设存储设备包括优盘、SD卡、TF卡或者移动硬盘,满足外接在设备上可以存放与第三固件相同的完整可用的第四固件即可,具体不做限定。
[0122]结合图2所示,上文中介绍了固件升级方法,这里针对固件升级方法对应的装置进行描述,下面介绍本发明固件升级装置的一种实施例,所述固件升级装置包括:
[0123]第一配置单元201,用于配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、以及系统运行阶段使用的第三固件;
[0124]通信通道建立单元202,用于建立第一固件、第二固件以及第三固件之间的通信通道;
[0125]第一启动单元203,用于依次启动第一固件及第二固件,并第二固件运行结束时启动第一看门狗计时;
[0126]校验单元204,用于对第三固件进行合法性校验和一致性校验;
[0127]第一复位单元205,用于在不通过校验且当计时达到预设时间时系统热复位并记录次数;
[0128]升级单元206,用于当记录次数达到预设次数,获取第四固件,将第四固件覆盖所述设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
[0129]进一步的,所述装置还包括第二启动单元207、以及判断单元213。第二启动单元207,用于通过校验时启动第三固件并关闭第一看门狗,启动第二看门狗计时。判断单元213,用于判断第二看门狗的计数是否被定时清零。
[0130]进一步的,所述装置还包括:
[0131]第一确定单元208,用于当第二看门狗的计数被定时清零确定系统运行正常;
[0132]第二确定单元209,用于当第二看门狗的计数未被定时清零确定系统运行异常。
[0133]进一步的,所述装置还包括:
[0134]第二配置单元210,用于将所述第一固件、第二固件以及第三固件配置相同的内存地址映射。
[0135]进一步的,所述装置还包括第三配置单元211、以及闪存检测单元212。第三配置单元211,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数,例如,所述预设的容量为I兆。闪存检测单元212,用于检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,若所述闪存区异常,则跳过该闪存区。
[0136]进一步的,所述合法性校验包括所述第三固件是否符合设备型号或者固有识别号是否合法;以及所述一致性校验包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败。
[0137]需要说明的是,第四固件可以存放在外设存储装置中,例如,所述外设存储设备包括SD卡或TF卡,也可以存放在设备内部的存储设备中,可以根据实际需要进行设置,具体不做限定。
[0138]采用本发明提供的固件升级装置,当升级了错误的第三固件,或者存放第三固件的闪存区域发生异常导致系统无法正常运行的错误发生后,通过获取外设存储装置中正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决升级失败导致设备不能启动的问题,无需人工干预,降低了时间成本,同时提高了用户体验。
[0139]参考图3所示,针对系统在运行过程中出现异常情况,如何进行升级,本发明提供了一种固件升级方法,下面进行具体说明。
[0140]本发明提供的固件升级方法的一种实施例,所述方法包括:
[0141]S301、当前系统固件启动运行;
[0142]在系统所在的固件正常启动之间还可以包括对前期引导阶段和引导阶段的固件进行检测,通过判断这两个阶段的固件验证系统所在的固件是否处于可用状态,具体的操作步骤在上文的实施例中已进行的描述,在此不作赘述,此处系统固件正常启动可以理解为前期的检测已经通过,系统处于正常运行的状态。
[0143]S302、启动看门狗进行计数;
[0144]系统正常运行后,启动看门狗监控系统的运行情况,不需要人工介入监测系统运行。
[0145]S303、配置预设时间阈值将所述看门狗的计数清零;
[0146]看门狗可以监控系统的运行,系统正常运行时候会定时调用程序或者电路将看门狗的计数进行清零,防止溢出复位,预设时间阈值方便系统定时进行调用操作,看门狗计数溢出说明系统不能及时调用清零,此时可以判断系统运行异常,再通过看门狗的复位,将系统重新启动,再进行升级,不需要人工操作,自动完成升级操作。
[0147]S304、判断所述看门狗的计数达到预设时间阈值时是否被清零;
[0148]配置好时间阈值后,判断看门狗达到预设时间阈值时是否被清零,如果看门狗的计数被正常清零则说明系统调用清零正常,系统运行正常,如果看门狗未被清零则说明系统未能调用清零,此时系统运行出现异常。
[0149]S305、当所述看门狗在预设时间阈值时未被清零,贝U系统热复位并记录次数;
[0150]看门狗计数溢出会将系统进行重启,系统记录重启次数,记录次数可以方便更好的确认系统出现异常,提高抗干扰能力。
[0151]S306、当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
[0152]需要说明的是,第四固件可以存放在外设存储装置中也可以存放在设备内部的存储设备中,可以根据实际需要进行设置,具体不做限定。
[0153]进一步的,所述方法还包括:将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
[0154]在所述预设的容量内记录操作系统热复位次数,可选的的容量为I兆,当然可以选择其他数值,满足需要即可,具体不做限定,本实施例中选择容量为I兆,这个通信信道不受其他信息的干扰,同时在操作系统上电后,在遇到无法解决的异常,如第三固件的版本不匹配或已损坏等,致使操作系统需热复位的情况下,本操作系统只进行热启动而不会直接关闭,这样就保证了内存中的内容在系统热复位后仍然存在而不会丢失。
[0155]在所述判断所述看门狗的计数达到预设时间阈值时是否被清零之后,所述方法还包括:
[0156]S307、当第二看门狗的计数被定时清零,则确定系统运行正常;
[0157]当第二看门狗的计数未被定时清零,则确定系统运行异常。
[0158]在所述将第四固件覆盖所述设备的闪存区中的第三固件之前,所述方法还包括:
[0159]检测所述设备的闪存区是否正常可用;
[0160]若所述闪存区正常可用,则执行后续步骤,否则跳过该闪存区。
[0161]即在将第四固件写入设备的闪存之前,可以预先会检测该闪存区域是否正常可用。若有异常,则系统会跳过该闪存区域,从而保证能将第四固件存入正常的闪存区域中。因此若之前存放第三固件的闪存区域发生异常,导致系统无法正常运行时,通过重新升级使得操作系统可以正常运行,避免升级失败导致的设备无法启动的问题。
[0162]采用本发明提供的固件升级方法,当系统无法正常运行的错误发生后,用于监控的看门狗不能被及时清零,看门狗将系统进行复位,通过获取外正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决系统运行出现异常的问题,无需人工干预,降低了时间成本,同时提高了用户体验。
[0163]结合图4所示,针对固件升级方法,本发明还提供了一种对应的固件升级装置,下面对固件升级装置的一种实施例进行说明。
[0164]一种固件升级装置,包括:
[0165]第一启动单元401,用于当前系统固件启动运行;
[0166]第一计数单元402,用于启动看门狗进行计数;
[0167]第一配置单元403,用于配置预设时间阈值将所述看门狗的计数清零;
[0168]第一判断单元404,用于判断所述看门狗的计数达到预设时间阈值时是否被清零;
[0169]第一复位单元405,用于当所述看门狗在预设时间阈值时未被清零,贝U系统热复位并记录次数;
[0170]升级单元406,用于当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
[0171]需要说明的是,第四固件可以存放在外设存储装置中也可以存放在设备内部的存储设备中,可以根据实际需要进行设置,具体不做限定。
[0172]优选的,所述装置还包括:
[0173]第二配置单元407,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
[0174]优选的,所述装置还包括:
[0175]第一确定单元408,用于当看门狗的计数被定时清零确定系统运行正常;
[0176]第二确定单元409,用于当看门狗的计数未被定时清零确定系统运行异常。
[0177]采用本发明提供的固件升级装置,当系统无法正常运行的错误发生后,用于监控的看门狗不能被及时清零,看门狗将系统进行复位,通过获取外正确的第四固件,并将第四固件覆盖原设备闪存中的第三固件即可,解决系统运行出现异常的问题,无需人工干预,降低了时间成本,同时提高了用户体验。
[0178]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0179]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0180]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0181]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0182]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
[0183]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0184]以上对本发明所提供的一种固件升级方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种固件升级方法,其特征在于,所述固件包括初期引导阶段使用的第一固件、引导阶段使用的第二固件以及系统运行阶段使用的第三固件,所述方法包括: 依次启动第一固件及第二固件,并在所述第二固件运行结束时启动第一看门狗计时; 对第三固件进行合法性校验和一致性校验; 若不通过校验且当计时达到预设时间,则系统热复位并记录次数; 当记录次数达到预设次数,获取第四固件,将第四固件覆盖设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
2.根据权利要求1所述的固件升级方法,其特征在于,所述方法还包括: 配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、以及系统运行阶段使用的第三固件; 建立第一固件、第二固件以及第三固件之间的通信通道。
3.根据权利要求2所述的固件升级方法,其特征在于,所述建立第一固件、第二固件以及第三固件之间的通信通道具体包括: 所述第一固件、第二固件以及第三固件配置相同的内存地址映射。
4.根据权利要求1所述的固件升级方法,其特征在于,在所述对第三固件进行合法性校验和一致性校验之后,所述方法还包括: 若通过校验,启动第三固件并关闭第一看门狗,启动第二看门狗计时; 判断第二看门狗的计数是否被定时清零。
5.根据权利要求4所述的固件升级方法,其特征在于,在所判断第二看门狗的计数是否被定时清零之后,所述方法还包括: 当第二看门狗的计数被定时清零,则确定系统运行正常; 当第二看门狗的计数未被定时清零,则确定系统运行异常。
6.根据权利要求5所述的固件升级方法,其特征在于,在所述当第二看门狗的计数未被定时清零,则确定系统运行异常之后,所述方法还包括: 系统进行热复位并记录次数。
7.根据权利要求6所述的固件升级方法,其特征在于,所述方法还包括:将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
8.根据权利要求1所述的固件升级方法,其特征在于,所述合法性校验包括所述第三固件是否符合设备型号或者固有识别号是否合法;或/及, 所述一致性校验包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败。
9.根据权利要求1至8中任一项所述的固件升级方法,其特征在于,在所述将第四固件覆盖所述设备的闪存区中的第三固件之前,所述方法还包括: 检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,否则跳过所述闪存区。
10.一种固件升级方法,其特征在于,所述方法包括: 当前系统固件启动运行; 启动看门狗进行计数; 配置预设时间阈值将所述看门狗的计数清零; 判断所述看门狗的计数达到预设时间阈值时是否被清零; 当所述看门狗在预设时间阈值时未被清零,则系统热复位并记录次数; 当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
11.根据权利要求10所述的固件升级方法,其特征在于,所述方法还包括: 将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
12.根据权利要求10所述的固件升级方法,其特征在于,在所述判断所述看门狗的计数达到预设时间阈值时是否被清零之后,所述方法还包括: 当看门狗的计数被定时清零,则确定系统运行正常; 当看门狗的计数未被定时清零,则确定系统运行异常。
13.一种固件升级装置,其特征在于,所述固件包括初期引导阶段使用的第一固件、弓丨导阶段使用的第二固件以及系统运行阶段使用的第三固件,所述装置包括: 第一启动单元,用于依次启动第一固件及第二固件,并在所述第二固件运行结束时启动第一看门狗计时; 校验单元,用于对第三固件进行合法性校验和一致性校验; 第一复位单元,用于在不通过校验且当计时达到预设时间时系统热复位并记录次数;以及 升级单元,用于当记录次数达到预设次数,获取外设存储装置中的第四固件,将第四固件覆盖设备的闪存区中的第三固件,其中,所述第四固件为备份完整可用的第三固件。
14.根据权利要求13所述的固件升级装置,其特征在于,所述装置还包括: 第一配置单元,用于配置初期引导阶段使用的第一固件、引导阶段使用的第二固件、以及系统运行阶段使用的第三固件; 通信通道建立单元,用于建立第一固件、第二固件以及第三固件之间的通信通道。
15.根据权利要求14所述的固件升级装置,其特征在于,所述装置还包括: 第二配置单元,用于将所述第一固件、第二固件以及第三固件配置相同的内存地址映射。
16.根据权利要求15所述的固件升级装置,其特征在于,所述装置还包括: 第二启动单元,用于通过校验时启动第三固件并关闭第一看门狗,启动第二看门狗计时; 判断单元,用于判断第二看门狗的计数是否被定时清零。
17.根据权利要求16所述的固件升级装置,其特征在于,所述装置还包括: 第一确定单元,用于当第二看门狗的计数被定时清零确定系统运行正常; 第二确定单元,用于当第二看门狗的计数未被定时清零确定系统运行异常。
18.根据权利要求17所述的固件升级装置,其特征在于,所述装置还包括: 第三配置单元,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数。
19.根据权利要求13所述的固件升级装置,其特征在于,所述合法性校验包括所述第三固件是否符合设备型号或者固有识别号是否合法; 或/及,所述一致性校验包括所述第三固件与已安装的应用程序逐一进行对比,如果与已安装的应用程序中的任何一个文件丢失或者校验结果不符,则一致性校验失败。
20.根据权利要求13至19中任一项所述的固件升级装置,其特征在于,所述装置还包括: 闪存检测单元,用于检测所述设备的闪存区是否正常可用,若所述闪存区正常可用,则执行后续步骤,否则跳过该闪存区。
21.—种固件升级装置,其特征在于,所述装置包括: 第一启动单元,用于当前系统固件启动运行; 第一计数单元,用于启动看门狗进行计数; 第一配置单元,用于配置预设时间阈值将所述看门狗的计数清零;第一判断单元,用于判断所述看门狗的计数达到预设时间阈值时是否被清零; 第一复位单元,用于当所述看门狗在预设时间阈值时未被清零,则系统热复位并记录次数; 升级单元,用于当记录次数达到预设次数,获取升级固件,将升级固件覆盖设备的闪存区中的当前系统固件,其中,所述升级固件为备份完整可用的系统固件。
22.根据权利要求21所述的固件升级装置,其特征在于,所述装置还包括:第二配置单元,用于将系统的部分内存配置预设的容量,并在所述预设的容量内记录所述次数; 或/及,所述装置还包括: 第一确定单元,用于当看门狗的计数被定时清零确定系统运行正常; 第二确定单元,用于当看门狗的计数未被定时清零确定系统运行异常。
【文档编号】G06F11/00GK104281479SQ201410606001
【公开日】2015年1月14日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】郑元华, 俞利富 申请人:深圳市大疆创新科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1