嵌入式软件升级方法.pdf

上传人:a2 文档编号:630921 上传时间:2018-02-28 格式:PDF 页数:7 大小:1.06MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410406157.4

申请日:

2014.08.18

公开号:

CN104156249A

公开日:

2014.11.19

当前法律状态:

实审

有效性:

审中

法律详情:

著录事项变更IPC(主分类):G06F 9/445变更事项:发明人变更前:毛力变更后:许驰|||专利申请权的转移IPC(主分类):G06F 9/445登记生效日:20170801变更事项:申请人变更前权利人:四川九成信息技术有限公司变更后权利人:成都鼎智汇科技有限公司变更事项:地址变更前权利人:610000 四川省成都市高新区科园二路1号A楼103B变更后权利人:610041 四川省成都市高新区天府大道中段1388号1栋7层772号|||实质审查的生效IPC(主分类):G06F 9/445申请日:20140818|||公开

IPC分类号:

G06F9/445; G06F11/14

主分类号:

G06F9/445

申请人:

四川九成信息技术有限公司

发明人:

毛力

地址:

610000 四川省成都市高新区科园二路1号A楼103B

优先权:

专利代理机构:

北京天奇智新知识产权代理有限公司 11340

代理人:

杨春

PDF下载: PDF下载
内容摘要

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

权利要求书

1.  一种嵌入式软件在线升级方法,其特征在于,包括如下步骤:
a.嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
b.由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用于软件升级的更新包;
c.发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;
d.嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;
e.嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的Boot程序,引导更新区的操作系统,进入工作状态;
f.若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;
g.若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复位;
h.嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
i.引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级 过程结束。

2.
  根据权利要求1所述的嵌入式软件升级方法,其特征在于:所述的更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NOR Flash的预先划定的区域上,传送结束后由嵌入式设备重新合并为更新包。

3.
  根据权利要求2所述的嵌入式软件升级方法,其特征在于:更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下:
在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;
在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确传送。

4.
  根据权利要求1所述的嵌入式软件升级方法,其特征在于:所述预先设定的引导模式是轮流从主分区和更新区进行引导,每次成功进行系统软件升级后则改变引导区域,如果系统从主分区引导,则软件更新至更新区;如果系统从更新区引导,则软件更新至主分区,操作系统引导成功之后,检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本。

说明书

嵌入式软件升级方法
技术领域
本发明涉及软件的升级更新,尤其是嵌入式设备软件在线升级。
背景技术
传统的嵌入式设备设备,由于资源和环境条件的限制,在生产阶段就需要将软件代码固化,设备出厂后是无法在现场在线修改的。一旦出现升级需求,只能是设备返厂维修,或在现场拆机更换部件板或替换程序存储芯片。随着计算机应用水平的不断提高,为了能够满足客户持续变化的需求,延长产品的生命周期,改善系统的性能,嵌入式产品需要具备在线升级能力。特别是在远程环境监测领域的应用背景下,能否便于远程升级,是否能够灵活性使用更是作为一项关键因素。目前在现场布置的嵌入式设备环境中,尤其在用于污染监测的水下监测设备情况下,可能面临各种异常,如通讯传输误码、存储操作故障、传输中断、人工操作失误等现象,任何一项异常的发生,都会造成升级过程失败,甚至引起系统瘫痪导致产品失效。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种嵌入式软件在线升级方法,包括如下步骤:
a.嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
b.由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用于软件升级的更新包;
c.发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;
d.嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;
e.嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的Boot程序,引导更新区的操作系统,进入工作状态;
f.若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;
g.若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复位;
h.嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
i.引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。
优选地,所述的更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NOR Flash的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新包。
优选地,更新包在分解传送和重新合并的过程中,经过了双重校验,其过 程如下:
在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;
在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确传送。
优选地,所述预先设定的引导模式是轮流从主分区和更新区进行引导,每次成功进行系统软件升级后则改变引导区域,如果系统从主分区引导,则软件更新至更新区;如果系统从更新区引导,则软件更新至主分区,操作系统引导成功之后,检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本。
本发明的有益效果是,在嵌入式设备的Flash中划分主分区和更新区,引导过程依次从两个区轮流进行,达到以下显著的进步,首先,系统程序在Flash保存双备份,如果升级过程失败,可以从上一次成功启动的区域还原,具有鲁棒性;其次,传输过程具有多重校验,具备故障恢复的能力,支持并发传输;第三,各种通讯方式均可以实现升级操作,具有灵活性;最后,升级过程的传输和控制过程在应用层实现,用户可以自行升级。
附图说明
图1是本发明的嵌入式软件升级方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发 明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
图1是根据本发明实施例的嵌入式软件升级的流程图,表示了实施本发明方法的具体步骤。
本发明可在线升级的嵌入式设备,包括处理器、用于存储程序的NAND Flash、用于存储数据的NOR Flash、远程通信接口和本地通信接口;处理器分别与NAND Flash、NOR Flash、远程通信接口和本地通信接口相连接;该NAND Flash划分为具有对等结构的主分区和更新区,对等结构的每个区又进一步划分为具有相同的大小和结构的三个子区域;所述的三个子区域分别是用来存储启动程序的加载启动区、用来存储Boot程序的引导区和用来存储系统程序的系统区;该NOR Flash设有能够同时存储应用程序、应用数据及其更新包的存储空间;所述的加载启动区还存储有更新标记;嵌入式设备具有Boot程序和操作系统;
一设在远程并能通过无线网络(如TCP/UDP、GPRS/CDMA等)接入而与所述嵌入式设备相连接的远程服务器,该远程服务器与嵌入式设备之间设有相互认可的通信协议以使远程服务器与嵌入式设备之间能够实现数据交换,远程服务器向嵌入式设备发送更新包及其升级命令,嵌入式设备进行软件升级;无线网络是公用或专用的远程通讯网络;
一设在本地并能通过无线方式(如红外、蓝牙等)接入而与所述嵌入式设备相连接的本地服务器,该本地服务器与嵌入式设备之间设有相互认可的通信协议以使本地服务器与嵌入式设备之间能够实现数据交换,本地服务器向嵌入式 设备发送更新包及其升级命令,嵌入式设备进行软件升级;
一设在本地并能通过有线方式(如USB、RS232C等)而与所述嵌入式设备相连接的上位机,该上位机与嵌入式设备之间设有相互认可的通信协议以使上位机与嵌入式设备之间能够实现数据交换,上位机向嵌入式设备发送更新包及其升级命令,嵌入式设备进行软件升级。其中:本地服务器和上位机可为手持式设备或台式计算机。
本发明的嵌入式系统的软件在线升级方法包括如下步骤:
a.嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
b.由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用于软件升级的更新包;
c.发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;
d.嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;
e.嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的Boot程序,引导更新区的操作系统,进入工作状态;
f.若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;
g.若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路 进行复位;
h.嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的Boot程序,引导主分区的操作系统,进入工作状态;
i.引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。
其中:预先设定的引导模式是依次从主分区和更新区轮流进行,每次成功进行系统软件升级后则改变引导区域。系统软件升级内容文件更新的区域是当前非引导区域。即系统从主分区引导,则软件更新至更新区。反之,系统从更新区引导,则软件更新至主分区。操作系统引导成功之后,再检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本,以此保持2个区域(即主分区和更新区)的软件版本同步。
更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NOR Flash的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新包。
更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该升级内容文件的文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备,这个过程可以被系统其他事项中断;两个文件传送之间,远程服务器或本地服务器或上位机可以下发其他命令,嵌入式设备可以被重新启动,远程服务器或本地服务器或上位机也可以被重新启动。
更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该升级 内容文件的文件传送具有故障自动恢复的能力;远程服务器或本地服务器或上位机可以查询到正在传送的升级内容文件的文件数量,并继续传送后续的升级内容文件文件。
更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下:
在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;
在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确传送。
在一次远程升级更新过程中,可以同时更新多个程序模块,每个程序模块做为一个更新包进行传送,多个更新包之间可以并发传送;提高通讯通道的效率。
若更新后的操作系统不能成功引导,则从旧版本系统引导区引导,并将更新过的系统区域还原成旧版本。
综上所述,本发明提出的升级方法,不仅保证升级稳定,具有鲁棒性和故障恢复的能力,支持并发传输;还支持各种通讯方式在应用层实现,方便用户控制。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

嵌入式软件升级方法.pdf_第1页
第1页 / 共7页
嵌入式软件升级方法.pdf_第2页
第2页 / 共7页
嵌入式软件升级方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《嵌入式软件升级方法.pdf》由会员分享,可在线阅读,更多相关《嵌入式软件升级方法.pdf(7页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104156249A43申请公布日20141119CN104156249A21申请号201410406157422申请日20140818G06F9/445200601G06F11/1420060171申请人四川九成信息技术有限公司地址610000四川省成都市高新区科园二路1号A楼103B72发明人毛力74专利代理机构北京天奇智新知识产权代理有限公司11340代理人杨春54发明名称嵌入式软件升级方法57摘要本发明提供了一种嵌入式软件在线升级方法,在嵌入式设备的存储器中设置主分区和更新区,分别用于独立引导设备启动和更新,并根据更新标记来决定启动新的版本或退回升级前的状态。本发明保。

2、证升级稳定,具有鲁棒性和故障恢复的能力,支持并发传输;还支持各种通讯方式在应用层实现,方便用户控制。51INTCL权利要求书1页说明书4页附图1页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图1页10申请公布号CN104156249ACN104156249A1/1页21一种嵌入式软件在线升级方法,其特征在于,包括如下步骤A嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的BOOT程序,引导主分区的操作系统,进入工作状态;B由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上。

3、位机均存储有用于软件升级的更新包;C发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;D嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;E嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的BOOT程序,引导更新区的操作系统,进入工作状态;F若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;G若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复。

4、位;H嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的BOOT程序,引导主分区的操作系统,进入工作状态;I引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。2根据权利要求1所述的嵌入式软件升级方法,其特征在于所述的更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NORFLASH的预先划定的区域上,传送结束后由嵌入式设备重新合并为更新包。3根据权利要求。

5、2所述的嵌入式软件升级方法,其特征在于更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确传送。4根据权利要求1所述的嵌入式软件升级方法,其特征在于所述预先设定的引导模式是轮流从主分区和更新区进行引导,每次成功进行系统软件升级后则改变引导区域,如果系统从主分区引导,则软件更新至更新。

6、区;如果系统从更新区引导,则软件更新至主分区,操作系统引导成功之后,检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本。权利要求书CN104156249A1/4页3嵌入式软件升级方法技术领域0001本发明涉及软件的升级更新,尤其是嵌入式设备软件在线升级。背景技术0002传统的嵌入式设备设备,由于资源和环境条件的限制,在生产阶段就需要将软件代码固化,设备出厂后是无法在现场在线修改的。一旦出现升级需求,只能是设备返厂维修,或在现场拆机更换部件板或替换程序存储芯片。随着计算机应用水平的不断提高,为了能够满足客户持续变化的需求,延长产品的生命周期,改善系统的性能,嵌入。

7、式产品需要具备在线升级能力。特别是在远程环境监测领域的应用背景下,能否便于远程升级,是否能够灵活性使用更是作为一项关键因素。目前在现场布置的嵌入式设备环境中,尤其在用于污染监测的水下监测设备情况下,可能面临各种异常,如通讯传输误码、存储操作故障、传输中断、人工操作失误等现象,任何一项异常的发生,都会造成升级过程失败,甚至引起系统瘫痪导致产品失效。0003因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。发明内容0004为解决上述现有技术所存在的问题,本发明提出了一种嵌入式软件在线升级方法,包括如下步骤0005A嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的BOOT程。

8、序,引导主分区的操作系统,进入工作状态;0006B由远程服务器、本地服务器或上位机的其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用于软件升级的更新包;0007C发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;0008D嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;0009E嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的BOOT程序,引导更新。

9、区的操作系统,进入工作状态;0010F若引导系统成功,则将更新区的引导区和系统区复制到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;0011G若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复位;0012H嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的BOOT程序,引导主分区的操作系统,说明书CN104156249A2/4页4进入工作状态;0013I引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。001。

10、4优选地,所述的更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NORFLASH的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新包。0015优选地,更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下0016在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;0017在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件。

11、的校验信息进行校验,以此确保更新包正确传送。0018优选地,所述预先设定的引导模式是轮流从主分区和更新区进行引导,每次成功进行系统软件升级后则改变引导区域,如果系统从主分区引导,则软件更新至更新区;如果系统从更新区引导,则软件更新至主分区,操作系统引导成功之后,检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本。0019本发明的有益效果是,在嵌入式设备的FLASH中划分主分区和更新区,引导过程依次从两个区轮流进行,达到以下显著的进步,首先,系统程序在FLASH保存双备份,如果升级过程失败,可以从上一次成功启动的区域还原,具有鲁棒性;其次,传输过程具有多重校验,。

12、具备故障恢复的能力,支持并发传输;第三,各种通讯方式均可以实现升级操作,具有灵活性;最后,升级过程的传输和控制过程在应用层实现,用户可以自行升级。附图说明0020图1是本发明的嵌入式软件升级方法的流程图。具体实施方式0021下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。0022图1是根据本发。

13、明实施例的嵌入式软件升级的流程图,表示了实施本发明方法的具体步骤。0023本发明可在线升级的嵌入式设备,包括处理器、用于存储程序的NANDFLASH、用于存储数据的NORFLASH、远程通信接口和本地通信接口;处理器分别与NANDFLASH、NORFLASH、远程通信接口和本地通信接口相连接;该NANDFLASH划分为具有对等结构的主分区和更新区,对等结构的每个区又进一步划分为具有相同的大小和结构的三个子区域;所说明书CN104156249A3/4页5述的三个子区域分别是用来存储启动程序的加载启动区、用来存储BOOT程序的引导区和用来存储系统程序的系统区;该NORFLASH设有能够同时存储应用。

14、程序、应用数据及其更新包的存储空间;所述的加载启动区还存储有更新标记;嵌入式设备具有BOOT程序和操作系统;0024一设在远程并能通过无线网络如TCP/UDP、GPRS/CDMA等接入而与所述嵌入式设备相连接的远程服务器,该远程服务器与嵌入式设备之间设有相互认可的通信协议以使远程服务器与嵌入式设备之间能够实现数据交换,远程服务器向嵌入式设备发送更新包及其升级命令,嵌入式设备进行软件升级;无线网络是公用或专用的远程通讯网络;0025一设在本地并能通过无线方式如红外、蓝牙等接入而与所述嵌入式设备相连接的本地服务器,该本地服务器与嵌入式设备之间设有相互认可的通信协议以使本地服务器与嵌入式设备之间能够。

15、实现数据交换,本地服务器向嵌入式设备发送更新包及其升级命令,嵌入式设备进行软件升级;0026一设在本地并能通过有线方式如USB、RS232C等而与所述嵌入式设备相连接的上位机,该上位机与嵌入式设备之间设有相互认可的通信协议以使上位机与嵌入式设备之间能够实现数据交换,上位机向嵌入式设备发送更新包及其升级命令,嵌入式设备进行软件升级。其中本地服务器和上位机可为手持式设备或台式计算机。0027本发明的嵌入式系统的软件在线升级方法包括如下步骤0028A嵌入式设备根据预先设定的引导模式从主分区启动,加载主分区的BOOT程序,引导主分区的操作系统,进入工作状态;0029B由远程服务器、本地服务器或上位机的。

16、其中一个向嵌入式设备发送多个用于软件升级的更新包;嵌入式设备校验更新包;所述远程服务器、本地服务器或上位机均存储有用于软件升级的更新包;0030C发送更新包的服务器向嵌入式设备发送命令,通知嵌入式设备进行软件升级更新;0031D嵌入式设备使用更新包更新所述更新区,并在主分区的加载启动区中注册更新标记,该更新标记为升级版本可用;0032E嵌入式设备从主分区重新启动,检查主分区注册的更新标记,在发现更新标记修改为升级版本可用时,再一次注册更新标记,将该更新标记修改为升级版本启用,并加载更新区的BOOT程序,引导更新区的操作系统,进入工作状态;0033F若引导系统成功,则将更新区的引导区和系统区复制。

17、到主分区,再次注册更新标记,修改为升级版本已更新;升级过程结束;0034G若引导系统失败,经过预定义时间的超时,嵌入式设备利用看门狗电路进行复位;0035H嵌入式设备从主分区重新启动,检查更新标记,若发现更新标记仍为升级版本启用而未被修改为升级版本已更新,则加载主分区的BOOT程序,引导主分区的操作系统,进入工作状态;0036I引导系统成功,将主分区的引导区和系统区复制到更新区,再次注册更新标记,该更新标记修改为升级版本不可用;系统恢复到升级前的状态,升级过程结束。0037其中预先设定的引导模式是依次从主分区和更新区轮流进行,每次成功进行系说明书CN104156249A4/4页6统软件升级后则。

18、改变引导区域。系统软件升级内容文件更新的区域是当前非引导区域。即系统从主分区引导,则软件更新至更新区。反之,系统从更新区引导,则软件更新至主分区。操作系统引导成功之后,再检查主分区和更新区的软件版本是否一致,如果不一致,则用引导区的版本替换非引导区的版本,以此保持2个区域即主分区和更新区的软件版本同步。0038更新包被分解为一个升级内容文件描述文件和多个升级内容文件,这些文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备上,暂存在嵌入式设备的NORFLASH的预先划定的区域上,传送结束后由嵌入式设备自动重新合并为更新包。0039更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该。

19、升级内容文件的文件依次从远程服务器或本地服务器或上位机传送到嵌入式设备,这个过程可以被系统其他事项中断;两个文件传送之间,远程服务器或本地服务器或上位机可以下发其他命令,嵌入式设备可以被重新启动,远程服务器或本地服务器或上位机也可以被重新启动。0040更新包为远程服务器或本地服务器或上位机发送的升级内容文件;该升级内容文件的文件传送具有故障自动恢复的能力;远程服务器或本地服务器或上位机可以查询到正在传送的升级内容文件的文件数量,并继续传送后续的升级内容文件文件。0041更新包在分解传送和重新合并的过程中,经过了双重校验,其过程如下0042在每个升级内容文件的传送过程中包含自身的校验信息,嵌入式。

20、设备接收后先检查升级内容文件的校验信息,正确后才进行存储,并通知对应的服务器发送下一个升级内容文件;0043在升级内容文件描述文件中包含校验信息,嵌入式设备在所有文件传送结束后,重新合并成更新包,还要对升级内容文件描述文件的校验信息进行校验,以此确保更新包正确传送。0044在一次远程升级更新过程中,可以同时更新多个程序模块,每个程序模块做为一个更新包进行传送,多个更新包之间可以并发传送;提高通讯通道的效率。0045若更新后的操作系统不能成功引导,则从旧版本系统引导区引导,并将更新过的系统区域还原成旧版本。0046综上所述,本发明提出的升级方法,不仅保证升级稳定,具有鲁棒性和故障恢复的能力,支持。

21、并发传输;还支持各种通讯方式在应用层实现,方便用户控制。0047显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。0048应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。说明书CN104156249A1/1页7图1说明书附图CN104156249A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1