CN112433739B - 一种固件升级方法 - Google Patents

一种固件升级方法 Download PDF

Info

Publication number
CN112433739B
CN112433739B CN202011258540.1A CN202011258540A CN112433739B CN 112433739 B CN112433739 B CN 112433739B CN 202011258540 A CN202011258540 A CN 202011258540A CN 112433739 B CN112433739 B CN 112433739B
Authority
CN
China
Prior art keywords
firmware
partition
equipment
upgrading
mode
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
Application number
CN202011258540.1A
Other languages
English (en)
Other versions
CN112433739A (zh
Inventor
唐臻
陶洋
陈小军
黄章良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Lubangtong IoT Co Ltd
Original Assignee
Guangzhou Lubangtong IoT Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Lubangtong IoT Co Ltd filed Critical Guangzhou Lubangtong IoT Co Ltd
Priority to CN202011258540.1A priority Critical patent/CN112433739B/zh
Publication of CN112433739A publication Critical patent/CN112433739A/zh
Application granted granted Critical
Publication of CN112433739B publication Critical patent/CN112433739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于固件升级领域,其公开了一种固件升级方法,包括如下步骤:步骤1:下载固件、选择升级模式,所述升级模式包括备份模式和双固件模式;步骤2:当步骤1中的升级模式选择为备份模式时,将待更新的固件写入第一分区,第二分区中保存有旧的固件;步骤3:当步骤1中的升级模式选择为双固件模式时,将待更新的固件写入当前在使用的固件存储的第一分区或第二分区中,使用第一分区或第二分区中的待更新的固件进行固件升级。本发明提出了可选的固件升级模式:备份模式和双固件模式,用户可随时设定固件升级模式,如果采用备份模式,可以保证升级的可靠性,如果采用双固件模式,用户可以随时切换回来他所喜欢的固件版本,并且双固件模式和备份模式可灵活切换。

Description

一种固件升级方法
技术领域
本发明涉及固件升级领域,具体为一种固件升级方法。
背景技术
CN201510420622.4公开了一种对固件进行升级的方法及装置,属于计算机技术领域。该方法包括:在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将升级版本备份到闪存的第三分区,第三分区中存储有固件的不同版本;将闪存的第四分区中指定标识位设置为升级状态;重新启动电子设备,运行闪存的第一分区;当检测到第四分区中指定标识位为升级状态时,将升级版本写入第二分区;运行第二分区中的升级版本。该发明将固件的升级版本在闪存的第三分区进行备份,使得升级版本运行失败后,能够从第三分区中获取到备份的固件,从而避免了电子设备因固件升级失败不能正常运行,提高了升级的可靠性。
该方法实际上是一种备份方式的固件升级方法。
家庭路由受成本限制,设备所使用存储芯片flash的容量比较小,做不了固件备份,升级固件过程中如出现断电,会导致设备因为flash里没有可用的完整的固件而启动不了。工业路由出于稳定性的考虑,做了固件备份功能,设备出现异常时如果用不了flash里的固件A,flash里还有固件B可用,固件务必功能比较简单。
而上述方法是常用的备份升级方法。
所以,本申请所要解决的技术问题是:上述方法功能性不能满足客户对于固件升级的多样性要求,在实际应用中,有的用户追求固件升级的可靠性,有的用户喜欢采用原始版本的固件,如何满足不同用户的需求,是本方案所要解决的问题。
发明内容
本发明的目的在于提供一种固件升级方法,本发明提出了可选的固件升级模式:备份模式和双固件模式,用户可随时设定固件升级模式,如果采用备份模式,可以保证升级的可靠性,如果采用双固件模式,用户可以随时切换回来他所喜欢的固件版本,并且双固件模式和备份模式可灵活切换,用户在用到特别喜欢的固件版本时,下次升级采用双固件模式,这样可以在任何时候,切换回来其最喜欢的版本。
为实现上述目的,本发明提供如下技术方案:一种固件升级方法,包括如下步骤:
步骤1:下载固件、选择升级模式,所述升级模式包括备份模式和双固件模式;
步骤2:当步骤1中的升级模式选择为备份模式时,将待更新的固件写入第一分区,第二分区中保存有旧的固件,若第一分区内的固件升级成功,则将第一分区内的固件写入第二分区中覆盖第二分区中的固件,若第一分区内的固件升级失败,则将第二分区中的固件写入第一分区中覆盖第一分组中的固件;
步骤3:当步骤1中的升级模式选择为双固件模式时,将待更新的固件写入当前在使用的固件存储的第一分区或第二分区中,使用第一分区或第二分区中的待更新的固件进行固件升级,若升级成功,则继续使用该分区的固件运行,若升级不成功,则使用另外一个分区内的固件运行,若两个分区内的固件都不能运行,则从网络上下载固件至任一分区中进行固件升级。
在上述的固件升级方法中,所述步骤2包括依次进行的如下步骤:
步骤21:将待更新的固件写入第一分区,设备重启;
步骤22:将第一分区内的固件和第二分区内的固件分别读取到第一内存地址和第二内存地址,从第三分区获取异常启动次数,如果该数据小于3,则将异常启动次数加1并更新到第三分区中,然后进入到步骤23,如果大于等于3,则将异常启动次数置为0并更新到第三分区中,然后进入到步骤28;
步骤23:检查第一内存地址里的固件是否完整,如果固件完整,进入步骤24,如果固件不完整,进入步骤28;
步骤24:启动第一内存地址里的固件,设备如果能正常启动,进入步骤25,设备如果不能正常启动,进入步骤27;
步骤25:将第一分区内的固件同步写入到第二分区中,进入步骤26;
步骤26:把第三分区中的异常启动次数置为0,完成固件升级;
步骤27:设备重启,进入步骤22;
步骤28:从第二内存地址启动固件的内核,且把第三分区中的异常启动次数置为0,第二分区中的固件是稳定可靠的,能保证固件完整且能正常启动设备,启动完成后,将第二分区内的固件写入第一分区中覆盖第一分区中的固件,设备下次重启时,进入步骤22。
在上述的固件升级方法中,所述步骤25还包括:将升级成功的消息发送给客户;所述步骤28还包括:将升级失败或第一分区中的固件不完整或第一分区中的固件不能正常启动的消息发送给客户。
在上述的固件升级方法中,在步骤25中,将第一分区内的固件写入另外第二分区之前,需要判断第一分区内的固件和第二分区内的固件的版本是否一致,若不一致,则进行步骤25;若一致,直接进入步骤26。
在上述的固件升级方法中,所述步骤3包括依次进行的如下步骤:
步骤31:升级固件时,从第三分区读取配置所使用的固件是第一分区fw=1还是第二分区fw=2;
步骤32:若配置所使用的固件为第一分区的fw=1,则将待更新的固件写入到第一分区中,升级完成后设备重启,进入到步骤33;
若配置所使用的固件为第二分区的fw=2,则将待更新的固件写入到第二分区中,升级完成后设备重启,进入到步骤33;
步骤33:将第一分区中的固件以及第二分区中的固件分别读取到第一内存地址和第二内存地址中,进入到步骤34;
步骤34:从第三分区读取配置所使用的固件分区信息fw;如果fw=1,从第一内存地址启动固件,进入到步骤35;如果fw=2,从第二内存地址启动固件,进入到步骤38;
步骤35:检测第一内存地址里的固件是否完整;如果固件不完整,进行步骤37;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤36。如果固件状态为true,则进入步骤37;
步骤36:把固件状态置为true,往bootargs里写入数据sw=1;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33.
步骤37:从第二内存地址启动固件。检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=2;进入步骤41;
步骤38:检测第二内存地址里的固件是否完整;如果固件不完整,进行步骤40;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤39;如果固件状态为true,则进入步骤40;
步骤39:把固件状态置为true,往bootargs里写入数据sw=2;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33;
步骤40:从第一内存地址启动固件;检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=1;进入步骤41;
步骤41:在第三分区读取选择的固件分区数据fw和使用命令cat/proc/cmdline读取到的当前所使用分区数据sw;
步骤42:启动UBOOT里的微型WEB服务器,用户可通过浏览器打开一个简单的升级页面往设备的第一分区升级固件;
在上述的固件升级方法中,所述步骤41还包括,将数据fw和数据sw做对比,若不一致,则发送升级异常或固件异常的消息给客户,以便于用户及时做出应对措施。
在上述的固件升级方法中,所述步骤1,当从备份模式切换到双固件模式时,选择固件分区时不会对所选择的固件分区和当前启用的分区做对比;当在双固件模下选择分区时,会对所选择的固件分区和当前启用的分区做对比,如果不一致,则不允许配置,避免把缺陷固件升级到两个分区中。
在上述的固件升级方法中,所述步骤1之前,用户通过手机短信来通知设备进行固件升级、设置升级模式,设备通过手机短信或邮件将升级成功、升级失败或升级异常的消息发送给客户。
在上述的固件升级方法中,当采用手机短信的方式进行用户和设备之间进行通信时,设备需要对手机号进行验证;
验证的方法为与设备预存的手机号进行比对,和/或,手机短信中携带设备的名称和密码,设备通过验证名称和密码来判断是否执行该手机短信。
在上述的固件升级方法中,在步骤1中,在固件下载成功或失败时,将固件下载成功或失败的消息通过短信发送给用户。
在上述的固件升级方法中,所述设备为家庭网关或工业网关。
与现有技术相比,本发明的有益效果是:
本发明提出了可选的固件升级模式:备份模式和双固件模式,用户可随时设定固件升级模式,如果采用备份模式,可以保证升级的可靠性,如果采用双固件模式,用户可以随时切换回来他所喜欢的固件版本,并且双固件模式和备份模式可灵活切换,用户在用到特别喜欢的固件版本时,下次升级采用双固件模式,这样可以在任何时候,切换回来其最喜欢的版本。
这对于具有怀旧情怀的用户来说,特别受欢迎。
具体来说:
1、短信升级方式比较方便,适用于单台设备升级,不适用于批量升级。设备被部署到使用场地后,使用短信升级方式,可以让用户不用到设备场地就可以对设备进行升级。使用这种方式,也能节省蜂窝网络的流程。如果使用云平台对设备进行统一管理,虽然也可以对设备进行远程升级,但设备和云平台需要保持常连接,需要消耗流量。
2、备份模式,升级时固件被写入第一分区,不会因为固件的原因或者升级操作不当,导致第二分区里的固件不完整或不正常,让设备无法正常启动。第一分区里的固件能正常使用后,第一分区里的固件才会备份到第二分区里。该模式适用于远程部署设备,升级固件出现异常后,设备还能自动恢复。
3、双固件模式,客户想使用两种固件又不想通过升级来切换,或者升级新固件后又想用回原来的旧固件,不需要重新升级,只需在设备上简单设置即可自由切换固件。该模式适合本地部署设备,设备出现完全不能启动的异常后也可人为去恢复设备。
附图说明
图1为本发明的实施例1的流程方框图;
图2为本发明的实施例1的步骤1的流程方框图;
图3为本发明的实施例1的步骤2的流程方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参阅图1,一种固件升级方法,包括如下步骤:
步骤1:下载固件、选择固件模式,所述固件模式包括备份模式和双固件模式;
用户通过手机短信、设备的管理页面、命令行CLI、RCMS将升级指令、升级模式、固件下载地址发送给设备,设备由此来下载固件,选择升级模式。
在设备中,有个第三分区,这个分区用来记载升级模式fw_mode,比如备份模式为:backup;双固件模式为:dual_firmware。
在backup备份模式的情境下,第三分区还记载异常启动次数start_count,实际使用时,我们设定start_count的累计次数为3,其可根据设定自动清零。
在dual_firmware双固件模式的情境下,第三分区还记载选择的分区fw和固件状态status,fw=1表示选择第一分区的固件,fw=2表示选择第二分区的固件,status的状态有false和true两种。
当采用手机短信的方式进行用户和设备之间进行通信时,设备需要对手机号进行验证;
验证的方法为与设备预存的手机号进行比对,和/或,手机短信中携带设备的名称和密码,设备通过验证名称和密码来判断是否执行该手机短信。
在固件下载成功或失败时,将固件下载成功或失败的消息通过短信发送给用户。
本发明所述的设备为家庭网关或工业网关。
步骤2:当步骤1中的升级模式选择为备份模式时,将待更新的固件写入第一分区,第二分区中保存有旧的固件,若第一分区内的固件能正常使用,则将第一分区内的固件写入第二分区中覆盖第二分区中的固件,若第一分区内的固件升级失败或不能正常使用,则将第二分区中的固件写入第一分区中覆盖第一分组中的固件;
具体来说,所述步骤2包括依次进行的如下步骤:
步骤21:将待更新的固件写入第一分区,设备重启;
步骤22:将第一分区内的固件和第二分区内的固件分别读取到第一内存地址和第二内存地址,从第三分区获取异常启动次数,如果该数据小于3,则将异常启动次数加1并更新到第三分区中,然后进入到步骤23,如果大于3,则将异常启动次数置为0并更新到第三分区中,然后进入到步骤28;
步骤23:检查第一内存地址里的固件是否完整,如果固件完整,进入步骤24,如果固件不完整,进入步骤28;
步骤24:启动第一内存地址里的固件,设备如果能正常启动,进入步骤25,设备如果不能正常启动,进入步骤27;
在进行步骤25之前,需要判断第一分区内的固件和第二分区内的固件的版本是否一致,若不一致,则进行步骤25;若一致,直接进入步骤26;
步骤25:将第一分区内的固件同步写入到第二分区中,将升级成功的消息发送给客户,进入步骤26;
步骤26:把第三分区中的异常启动次数置为0,完成固件升级;
步骤27:设备重启,进入步骤22;
步骤28:从第二内存地址启动固件的内核,将升级失败或第一分区中的固件不完整或第一分区中的固件不能正常启动的消息发送给客户,且把第三分区中的异常启动次数置为0,第二分区中的固件是稳定可靠的,能保证固件完整且能正常启动设备,启动完成后,将第二分区内的固件写入第一分区中覆盖第一分区中的固件,设备下次重启时,进入步骤22。
步骤3:当步骤1中的升级模式选择为双固件模式时,将待更新的固件写入当前在使用的固件存储的第一分区或第二分区中,使用第一分区或第二分区中的待更新的固件进行固件升级,若升级成功,则继续使用该分区的固件运行,若升级不成功,则使用另外一个分区内的固件运行,若两个分区内的固件都不能运行,则从网络上下载固件至任一分区中进行固件升级。
具体来说,所述步骤3包括依次进行的如下步骤:
步骤31:升级固件时,从第三分区读取配置所使用的固件是第一分区fw=1还是第二分区fw=2;
步骤32:若配置所使用的固件为第一分区的fw=1,则将待更新的固件写入到第一分区中,升级完成后设备重启,进入到步骤33;
若配置所使用的固件为第二分区的fw=2,则将待更新的固件写入到第二分区中,升级完成后设备重启,进入到步骤33;
步骤33:将第一分区中的固件以及第二分区中的固件分别读取到第一内存地址和第二内存地址中,进入到步骤34;
步骤34:从第三分区读取配置所使用的固件分区信息fw;如果fw=1,从第一内存地址启动固件,进入到步骤35;如果fw=2,从第二内存地址启动固件,进入到步骤38;
步骤35:检测第一内存地址里的固件是否完整;如果固件不完整,进行步骤37;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤36。如果固件状态为true,则进入步骤37;
步骤36:把固件状态置为true,往bootargs里写入数据sw=1;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33.
步骤37:从第二内存地址启动固件。检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=2;进入步骤41;
步骤38:检测第二内存地址里的固件是否完整;如果固件不完整,进行步骤40;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤39;如果固件状态为true,则进入步骤40;
步骤39:把固件状态置为true,往bootargs里写入数据sw=2;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33;
步骤40:从第一内存地址启动固件;检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=1;进入步骤41;
步骤41:在第三分区读取选择的固件分区数据fw和使用命令cat/proc/cmdline读取到的当前所使用分区数据sw;将数据fw和数据sw做对比,若不一致,则发送升级异常或固件异常的消息给客户,以便于用户及时做出应对措施;若一致,固件升级完成。
步骤42:启动UBOOT里的微型WEB服务器,用户可通过浏览器打开一个简单的升级页面往设备的第一分区升级固件。
结合步骤2和步骤3,可以使用户的使用感觉更好。
需要额外的说明:当从备份模式切换到双固件模式时,选择固件分区时不会对所选择的固件分区和当前启用的分区做对比;当在双固件模下选择分区时,会对所选择的固件分区和当前启用的分区做对比,如果不一致,则不允许配置,避免把缺陷固件升级到两个分区中。
一个具体的使用情境是:用户在使用过程中,如果发现一个固件特别好用,就可以将当前的固件升级模式设定为备份模式,当设定为备份模式有两种情况,一种情况是之前的模式也是备份模式,这个时候设备无需特别的动作;另外一种情况是之前的模式是双固件模式,当用户切换了模式后,触发事件,设备将正在使用的固件写入到另外一个分区中。
在下次升级之前,将模式切换至双固件模式,设备就会采用双固件模式进行升级,在升级过程中就不会覆盖用户喜欢的那个固件。用户随时可切换至其喜欢的固件。
这种方法可以避免采用更多分区,为本来存储空间不够的设备提供更多一种固件使用和升级方式的选择。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (10)

1.一种固件升级方法,其特征在于:包括如下步骤:
步骤1:下载固件、选择升级模式,所述升级模式包括备份模式和双固件模式;
步骤2:当步骤1中的升级模式选择为备份模式时,将待更新的固件写入第一分区,第二分区中保存有旧的固件,若第一分区内的固件升级成功,则将第一分区内的固件写入第二分区中覆盖第二分区中的固件,若第一分区内的固件升级失败,则将第二分区中的固件写入第一分区中覆盖第一分区中的固件;
步骤3:当步骤1中的升级模式选择为双固件模式时,将待更新的固件写入当前在使用的固件存储的第一分区或第二分区中,使用第一分区或第二分区中的待更新的固件进行固件升级,若升级成功,则继续使用该分区的固件运行,若升级不成功,则使用另外一个分区内的固件运行,若两个分区内的固件都不能运行,则从网络上下载固件至任一分区中进行固件升级;
所述步骤2包括依次进行的如下步骤:
步骤21:将待更新的固件写入第一分区,设备重启;
步骤22:将第一分区内的固件和第二分区内的固件分别读取到第一内存地址和第二内存地址,从第三分区获取异常启动次数,如果异常启动次数小于3,则将异常启动次数加1并更新到第三分区中,然后进入到步骤23,如果大于3,则将异常启动次数置为0并更新到第三分区中,然后进入到步骤28;
步骤23:检查第一内存地址里的固件是否完整,如果固件完整,进入步骤24,如果固件不完整,进入步骤28;
步骤24:启动第一内存地址里的固件,设备如果能正常启动,进入步骤25,设备如果不能正常启动,进入步骤27;
步骤25:将第一分区内的固件同步写入到第二分区中,进入步骤26;
步骤26:把第三分区中的异常启动次数置为0,完成固件升级;
步骤27:设备重启,进入步骤22;
步骤28:从第二内存地址启动固件的内核,且把第三分区中的异常启动次数置为0,第二分区中的固件是稳定可靠的,能保证固件完整且能正常启动设备,启动完成后,将第二分区内的固件写入第一分区中覆盖第一分区中的固件,设备下次重启时,进入步骤22。
2.根据权利要求1所述的固件升级方法,其特征在于:所述步骤25还包括:将升级成功的消息发送给客户;所述步骤28还包括:将升级失败或第一分区中的固件不完整或第一分区中的固件不能正常启动的消息发送给客户。
3.根据权利要求1所述的固件升级方法,其特征在于:在步骤25中,将第一分区内的固件写入另外第二分区之前,需要判断第一分区内的固件和第二分区内的固件的版本是否一致,若不一致,则进行步骤25;若一致,直接进入步骤26。
4.根据权利要求1所述的固件升级方法,其特征在于:所述步骤3包括依次进行的如下步骤:
步骤31:升级固件时,从第三分区读取配置所使用的固件是第一分区fw=1还是第二分区fw=2;
步骤32:若配置所使用的固件为第一分区的fw=1,则将待更新的固件写入到第一分区中,升级完成后设备重启,进入到步骤33;
若配置所使用的固件为第二分区的fw=2,则将待更新的固件写入到第二分区中,升级完成后设备重启,进入到步骤33;
步骤33:将第一分区中的固件以及第二分区中的固件分别读取到第一内存地址和第二内存地址中,进入到步骤34;
步骤34:从第三分区读取配置所使用的固件分区信息fw;如果fw=1,从第一内存地址启动固件,进入到步骤35;如果fw=2,从第二内存地址启动固件,进入到步骤38;
步骤35:检测第一内存地址里的固件是否完整;如果固件不完整,进行步骤37;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤36;
如果固件状态为true,则进入步骤37;
步骤36:把固件状态置为true,往bootargs里写入数据sw=1;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33;
步骤37:从第二内存地址启动固件;检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=2;进入步骤41;
步骤38:检测第二内存地址里的固件是否完整;如果固件不完整,进行步骤40;如果固件完整,读取第三分区里的固件状态是否为false;如果固件状态为false,进入步骤39;如果固件状态为true,则进入步骤40;
步骤39:把固件状态置为true,往bootargs里写入数据sw=2;设备正常启动后,进入步骤41;设备不能正常启动,看门狗复位设备重启,进入步骤33;
步骤40:从第一内存地址启动固件;检测固件完整,如果固件不完整,进入步骤42;如果固件完整,设备正常启动,往bootargs里写入数据sw=1;进入步骤41;
步骤41:在第三分区读取选择的固件分区数据fw和使用命令cat /proc/cmdline读取到的当前所使用分区数据sw;
步骤42:启动UBOOT里的微型WEB服务器,用户通过浏览器打开一个简单的升级页面往设备的第一分区升级固件。
5.根据权利要求4所述的固件升级方法,其特征在于:所述步骤41还包括,将数据fw和数据sw做对比,若不一致,则发送升级异常或固件异常的消息给客户,以便于用户及时做出应对措施。
6.根据权利要求1所述的固件升级方法,其特征在于:所述步骤1,当从备份模式切换到双固件模式时,选择固件分区时不会对所选择的固件分区和当前启用的分区做对比;当在双固件模下选择分区时,会对所选择的固件分区和当前启用的分区做对比,如果不一致,则不允许配置,避免把缺陷固件升级到两个分区中。
7.根据权利要求1所述的固件升级方法,其特征在于:所述步骤1之前,用户通过手机短信来通知设备进行固件升级、设置升级模式,设备通过手机短信或邮件将升级成功、升级失败或升级异常的消息发送给客户。
8.根据权利要求7所述的固件升级方法,其特征在于:当采用手机短信的方式进行用户和设备之间进行通信时,设备需要对手机号进行验证;
验证的方法为与设备预存的手机号进行比对,和/或,手机短信中携带设备的名称和密码,设备通过验证名称和密码来判断是否执行该手机短信。
9.根据权利要求8所述的固件升级方法,其特征在于:在步骤1中,在固件下载成功或失败时,将固件下载成功或失败的消息通过短信发送给用户。
10.根据权利要求1-9任一所述的固件升级方法,其特征在于:所述设备为家庭网关或工业网关。
CN202011258540.1A 2020-11-11 2020-11-11 一种固件升级方法 Active CN112433739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011258540.1A CN112433739B (zh) 2020-11-11 2020-11-11 一种固件升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011258540.1A CN112433739B (zh) 2020-11-11 2020-11-11 一种固件升级方法

Publications (2)

Publication Number Publication Date
CN112433739A CN112433739A (zh) 2021-03-02
CN112433739B true CN112433739B (zh) 2022-04-19

Family

ID=74701255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011258540.1A Active CN112433739B (zh) 2020-11-11 2020-11-11 一种固件升级方法

Country Status (1)

Country Link
CN (1) CN112433739B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626065B (zh) * 2021-08-12 2024-04-19 深圳市蝶通视讯有限公司 一种嵌入式固件冗余方法及装置
CN114143197B (zh) * 2021-11-29 2024-04-02 武汉天喻信息产业股份有限公司 物联网设备ota升级方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488494A (zh) * 2013-08-12 2014-01-01 浪潮电子信息产业股份有限公司 一种刀片服务器多固件同步更新升级方法
CN104765628A (zh) * 2015-03-10 2015-07-08 惠州Tcl移动通信有限公司 一种移动终端更新触摸屏固件的方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
CN103853565A (zh) * 2012-11-28 2014-06-11 京信通信系统(中国)有限公司 基于arm的固件升级方法和装置
CN107608705A (zh) * 2017-09-29 2018-01-19 深圳市瑞科慧联科技有限公司 一种无线wifi视频设备及其固件升级方法
CN110647333A (zh) * 2018-06-26 2020-01-03 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法及配置成对其中的固件进行升级的设备
CN109189451A (zh) * 2018-10-25 2019-01-11 京信通信系统(中国)有限公司 一种固件升级方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488494A (zh) * 2013-08-12 2014-01-01 浪潮电子信息产业股份有限公司 一种刀片服务器多固件同步更新升级方法
CN104765628A (zh) * 2015-03-10 2015-07-08 惠州Tcl移动通信有限公司 一种移动终端更新触摸屏固件的方法及系统

Also Published As

Publication number Publication date
CN112433739A (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
US8539471B2 (en) Updating firmware of an electronic device
JP6390644B2 (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
TWI576764B (zh) 電腦系統
WO2014146256A1 (zh) 一种升级方法、智能终端及升级系统
CN107179909A (zh) 软件升级方法、装置及计算机可读存储介质
CN112433739B (zh) 一种固件升级方法
WO2014161339A1 (zh) 固件升级方法及装置
WO2003083647A1 (fr) Procede de mise a jour d'un logiciel de terminaux de communication, terminal de communication et procede de mise a jour de logiciel
WO2011006378A1 (zh) 无线数据卡的升级方法和系统
CN110647333A (zh) 固件升级方法及配置成对其中的固件进行升级的设备
CN112882734B (zh) 升级方法及装置、计算机设备和介质
CN112612524A (zh) Linux系统启动的方法、装置、设备及存储介质
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
CN112416411B (zh) 升级方法及装置、设备端、服务器、计算机可读介质
CN112667265A (zh) 一种引导程序更新方法及装置
CN111698558A (zh) 电视软件升级方法、电视终端及计算机可读存储介质
CN110597532A (zh) 一种数据采集模块及其固件升级方法和存储介质
CN111857758B (zh) 应用部署方法、装置及介质
CN113032183A (zh) 系统管理方法、装置、计算机设备和存储介质
WO2012097570A1 (zh) 实现软件版本同步的方法及装置
CN112214353A (zh) 固件恢复方法、装置、计算机设备和存储介质
CN116627519A (zh) 一种嵌入式设备的多系统启动方法
CN114995852A (zh) 一种设备升级方法、设备及计算机可读存储介质
CN109634782A (zh) 一种系统健壮性的检测方法、装置、存储介质及终端
CN117234544B (zh) 服务器设备进行系统恢复的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 511356 Room 501, building 2, No. 63, Yong'an Avenue, Huangpu District, Guangzhou, Guangdong

Applicant after: Guangzhou lubangtong Internet of things Technology Co.,Ltd.

Address before: 510653 room F315, 95 daguanzhong Road, Tianhe District, Guangzhou City, Guangdong Province

Applicant before: GUANGZHOU ROBUSTEL TECHNOLOGIES Co.,Ltd.

GR01 Patent grant
GR01 Patent grant