嵌入式软件升级方法

文档序号:6623754阅读:1840来源:国知局
嵌入式软件升级方法
【专利摘要】本发明提供了一种嵌入式软件在线升级方法,在嵌入式设备的存储器中设置主分区和更新区,分别用于独立引导设备启动和更新,并根据更新标记来决定启动新的版本或退回升级前的状态。本发明保证升级稳定,具有鲁棒性和故障恢复的能力,支持并发传输;还支持各种通讯方式在应用层实现,方便用户控制。
【专利说明】嵌入式软件升级方法

【技术领域】
[0001] 本发明涉及软件的升级更新,尤其是嵌入式设备软件在线升级。

【背景技术】
[0002] 传统的嵌入式设备设备,由于资源和环境条件的限制,在生产阶段就需要将软件 代码固化,设备出厂后是无法在现场在线修改的。一旦出现升级需求,只能是设备返厂维 修,或在现场拆机更换部件板或替换程序存储芯片。随着计算机应用水平的不断提高,为了 能够满足客户持续变化的需求,延长产品的生命周期,改善系统的性能,嵌入式产品需要具 备在线升级能力。特别是在远程环境监测领域的应用背景下,能否便于远程升级,是否能够 灵活性使用更是作为一项关键因素。目前在现场布置的嵌入式设备环境中,尤其在用于污 染监测的水下监测设备情况下,可能面临各种异常,如通讯传输误码、存储操作故障、传输 中断、人工操作失误等现象,任何一项异常的发生,都会造成升级过程失败,甚至引起系统 瘫痪导致产品失效。
[0003] 因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。


【发明内容】

[0004] 为解决上述现有技术所存在的问题,本发明提出了一种嵌入式软件在线升级方 法,包括如下步骤:
[0005] a.嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序, 引导主分区的操作系统,进入工作状态;
[0006] b.由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软 件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储 有用于软件升级的更新包;
[0007] c.发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更 新;
[0008] d.嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新 标记,该更新标记为升级版本可用;
[0009] e.嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记 修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载 更新区的Boot程序,引导更新区的操作系统,进入工作状态;
[0010] f.若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新 标记,修改为升级版本已更新;升级过程结束;
[0011] g.若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复 位;
[0012] h.嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本 启用而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统, 进入工作状态;
[0013] i.引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记, 该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。
[0014] 优选地,所述的更新包被分解为一个升级内容文件描述文件和多个升级内容文 件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入 式设备的NOR Flash的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新 包。
[0015] 优选地,更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下: [0016] 在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检 查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内 容文件;
[0017] 在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后, 重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包 正确传送。
[0018] 优选地,所述预先设定的引导模式是轮流从主分区和更新区进行引导,每次成功 进行系统软件升级后则改变引导区域,如果系统从主分区引导,则软件更新至更新区;如果 系统从更新区引导,则软件更新至主分区,操作系统引导成功之后,检查主分区和更新区的 软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本。
[0019] 本发明的有益效果是,在嵌入式设备的Flash中划分主分区和更新区,引导过程 依次从两个区轮流进行,达到以下显著的进步,首先,系统程序在Flash保存双备份,如果 升级过程失败,可以从上一次成功启动的区域还原,具有鲁棒性;其次,传输过程具有多重 校验,具备故障恢复的能力,支持并发传输;第三,各种通讯方式均可以实现升级操作,具有 灵活性;最后,升级过程的传输和控制过程在应用层实现,用户可以自行升级。

【专利附图】

【附图说明】
[0020] 图1是本发明的嵌入式软件升级方法的流程图。

【具体实施方式】
[0021] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节 以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中 的一些或者所有细节也可以根据权利要求书实现本发明。
[0022] 图1是根据本发明实施例的嵌入式软件升级的流程图,表示了实施本发明方法的 具体步骤。
[0023] 本发明可在线升级的嵌入式设备,包括处理器、用于存储程序的NAND Flash、用 于存储数据的NOR Flash、远程通信接口和本地通信接口;处理器分别与NAND Flash、N0R Flash、远程通信接口和本地通信接口相连接;该NAND Flash划分为具有对等结构的主分 区和更新区,对等结构的每个区又进一步划分为具有相同的大小和结构的三个子区域;所 述的三个子区域分别是用来存储启动程序的加载启动区、用来存储Boot程序的引导区和 用来存储系统程序的系统区;该NOR Flash设有能够同时存储应用程序、应用数据及其更 新包的存储空间;所述的加载启动区还存储有更新标记;嵌入式设备具有Boot程序和操作 系统;
[0024] 一设在远程并能通过无线网络(如TCP/UDP、GPRS/CDMA等)接入而与所述嵌入式 设备相连接的远程服务器,该远程服务器与嵌入式设备之间设有相互认可的通信协议以使 远程服务器与嵌入式设备之间能够实现数据交换,远程服务器向嵌入式设备发送更新包及 其升级命令,嵌入式设备进行软件升级;无线网络是公用或专用的远程通讯网络;
[0025] 一设在本地并能通过无线方式(如红外、蓝牙等)接入而与所述嵌入式设备相连 接的本地服务器,该本地服务器与嵌入式设备之间设有相互认可的通信协议以使本地服务 器与嵌入式设备之间能够实现数据交换,本地服务器向嵌入式设备发送更新包及其升级命 令,嵌入式设备进行软件升级;
[0026] 一设在本地并能通过有线方式(如USB、RS232C等)而与所述嵌入式设备相连接 的上位机,该上位机与嵌入式设备之间设有相互认可的通信协议以使上位机与嵌入式设备 之间能够实现数据交换,上位机向嵌入式设备发送更新包及其升级命令,嵌入式设备进行 软件升级。其中:本地服务器和上位机可为手持式设备或台式计算机。
[0027] 本发明的嵌入式系统的软件在线升级方法包括如下步骤:
[0028] a.嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序, 引导主分区的操作系统,进入工作状态;
[0029] b.由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软 件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储 有用于软件升级的更新包;
[0030] c.发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更 新;
[0031] d.嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新 标记,该更新标记为升级版本可用;
[0032] e.嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记 修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载 更新区的Boot程序,引导更新区的操作系统,进入工作状态;
[0033] f.若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新 标记,修改为升级版本已更新;升级过程结束;
[0034] g.若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复 位;
[0035] h.嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本 启用而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统, 进入工作状态;
[0036] i.引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记, 该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。
[0037] 其中:预先设定的引导模式是依次从主分区和更新区轮流进行,每次成功进行系 统软件升级后则改变引导区域。系统软件升级内容文件更新的区域是当前非引导区域。即 系统从主分区引导,则软件更新至更新区。反之,系统从更新区引导,则软件更新至主分区。 操作系统引导成功之后,再检查主分区和更新区的软件版本是否一致,如果不一致,则用引 导区的版本替换非引导区的版本,以此保持2个区域(即主分区和更新区)的软件版本同 止 /J/ 〇
[0038] 更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依 次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的N0R Flash的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新包。
[0039] 更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该升级内容文 件的文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备,这个过程可以被系 统其他事项中断;两个文件传送之间,远程服务器或本地服务器或上位机可以下发其他命 令,嵌入式设备可以被重新启动,远程服务器或本地服务器或上位机也可以被重新启动。
[0040] 更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该升级内容文 件的文件传送具有故障自动恢复的能力;远程服务器或本地服务器或上位机可以查询到正 在传送的升级内容文件的文件数量,并继续传送后续的升级内容文件文件。
[0041] 更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下:
[0042] 在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检 查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内 容文件;
[0043] 在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后, 重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包 正确传送。
[0044] 在一次远程升级更新过程中,可以同时更新多个程序模块,每个程序模块做为一 个更新包进行传送,多个更新包之间可以并发传送;提高通讯通道的效率。
[0045] 若更新后的操作系统不能成功引导,则从旧版本系统引导区引导,并将更新过的 系统区域还原成旧版本。
[0046] 综上所述,本发明提出的升级方法,不仅保证升级稳定,具有鲁棒性和故障恢复的 能力,支持并发传输;还支持各种通讯方式在应用层实现,方便用户控制。
[0047] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用 的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成 的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储 在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。 [0048] 应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的 原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨 在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修 改例。
【权利要求】
1. 一种嵌入式软件在线升级方法,其特征在于,包括如下步骤: a. 嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序,引导 主分区的操作系统,进入工作状态; b. 由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升 级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用 于软件升级的更新包; c. 发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新; d. 嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标 记,该更新标记为升级版本可用; e. 嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改 为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新 区的Boot程序,引导更新区的操作系统,进入工作状态; f. 若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记, 修改为升级版本已更新;升级过程结束; g. 若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复位; h. 嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用 而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统,进入 工作状态; i. 引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更 新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。
2. 根据权利要求1所述的嵌入式软件升级方法,其特征在于:所述的更新包被分解为 一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务 器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NOR Flash的预先划定的区域上,传 送结束后由嵌入式设备重新合并为更新包。
3. 根据权利要求2所述的嵌入式软件升级方法,其特征在于:更新包在分解传送和重 新合并的过程中,经过了双重校验,其过程如下 : 在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升 级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文 件; 在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新 合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确 传送。
4. 根据权利要求1所述的嵌入式软件升级方法,其特征在于:所述预先设定的引导模 式是轮流从主分区和更新区进行引导,每次成功进行系统软件升级后则改变引导区域,如 果系统从主分区引导,则软件更新至更新区;如果系统从更新区引导,则软件更新至主分 区,操作系统引导成功之后,检查主分区和更新区的软件版本是否一致,如果不一致,则用 引导区的版本替换非引导区的版本。
【文档编号】G06F11/14GK104156249SQ201410406157
【公开日】2014年11月19日 申请日期:2014年8月18日 优先权日:2014年8月18日
【发明者】毛力 申请人:四川九成信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1