面向嵌入式系统的应用程序在线自我更新方法技术方案

技术编号:6003083 阅读:315 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向嵌入式系统的应用程序在线自我更新/升级的方法,该方法包括:更新程序和新应用程序编译成用户程序,用户程序传输,用户程序分离和拷贝至内存中指定的位置,校验新应用程序,更新应用程序,以及复位目标设备运行新应用程序。本发明专利技术实现了目标设备在运行状态下,面向嵌入式系统的应用程序的在线自我更新/升级,提高了更新的安全性和可靠性,有效保证嵌入式系统设备的持续运行和安全更新,减低了更新成本以及提高了更新的效率和可操作性。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统的应用程序更新方法,特别是一种CPU片内flash上运行 的应用程序的自我更新/升级。
技术介绍
现在嵌入式设备的功能变得越来越强大,功能也越来越丰富。随着嵌入式设备的 功能越来越复杂,为了能够满足用户不断变化的需求,在线升级就显得越来越重要。在现有的嵌入式操作系统领域,在线升级都是针对程序存储和执行在不同的存储 器上进行的,如程序保存在flash上,但是运行时是在内存(SDRAM)中,这种情况下在线升 级没有问题,但是很多时候为了能够更好的控制产品的成本选用的CPU程序保存在CPU片 内flash上,运行时也是直接在flash上运行,这种时候在线程序更新就变成不可能的任务 了。对这种程序存储及运行都同在flash中的情况,一般采取的更新方法就是离线更 新,即拆开设备利用离线编程设备对目标设备进行离线编程。对于已经安装到现场的设备来说,把设备拆开然后进行离线编程,这样的可操作 性极低,相对可行的方法就只能返厂编程。但是这样也会带来极大的工程量。
技术实现思路
为克服现有技术之不足,本专利技术的目的在于提供一种面向嵌入式系统的应用程序 在线自我更新方法,以实现面向嵌入式系统的在线更新。为实现上述目的,本专利技术的技术方案是一种面向嵌入式系统的应用程序在线自 我更新方法,所述应用程序在CPU片内flash上运行,其在运行的状态下不能更新自己,包 括以下步骤(1)用于进行更新的更新程序和新应用程序编译成一个用户程序;(2)通过串口或者USB的方式把上述用户程序传输到目标设备上去;新应用程序 更新来源于电脑(或者PDA)串口或者USB等传输方式,避免了拆开目标设备及利用离线编 程设备进行离线编程的繁琐;(3)当用户程序下载完成后需要进行更新时,用户程序启动更新,目标设备把获取 到的用户程序中的用于更新应用程序的更新程序分离出来,并把新应用程序和更新程序分 别拷贝的内存中指定的位置;(4)跳转到更新程序入口位置执行更新程序,更新程序在内存指定的位置找到需 要更新的新应用程序后进行校验;(5)校验无误后擦除flash上的旧应用程序,再写入新应用程序,完成更新;(6)复位目标设备正常运行更新后的新应用程序。作为具体化,系统更新程序时,目标设备处于正常工作状态下。由于目标设备处于 正常工作状态下,系统更新程序时不需要把目标设备停机、拆开进行离线更新,可以在目标设备正常工作的状态下进行程序更新、升级。作为改进,在步骤(1)中,用来进行更新的更新程序以16进制的方式嵌入到新应 用程序。作为进一步改进,在步骤(3)中,新应用程序把嵌入到的自身的更新程序分离出 来,并把新应用程序和更新程序分别拷贝的内存中指定的位置。与现有技术相比,本专利技术的有益效果在于本专利技术实现了目标设备在运行状态下, 面向嵌入式系统的应用程序的在线自我更新,避免了拆开目标设备利用离线编程设备对目 标设备进行离线编程的繁琐,提高了更新的安全性和可靠性,进而有效保证嵌入式系统设 备的持续运行和安全更新,减低了更新成本以及提高了更新的效率和可操作性。附图说明图1为本专利技术的工作流程图。 具体实施例方式下面结合附图和具体实施方式对本技术进行进一步详细说明。如图1所述,本专利技术一种,更新的 目标设备处于正常工作状态下,所述应用程序在CPU片内flash上运行,应用程序本身不能 在自己尚在运行的状态下更新自己,其工作步骤为1)准备程序把用来更新应用程序的更新程序及新应用程序打包成一个用户程序,其中更新程 序以16进制的方式嵌入到新应用程序。2)获取新程序通过电脑(或者PDA)串口或者USB等方式把用户程序数据传输到目标设备上。程 序下载完成后,进行下一步骤。3)更新前准备目标设备把获取到的用户程序中的用于更新应用程序的更新程序分离出来,并将 新应用程序和更新程序分别拷贝到内存(SDRAM)中指定的位置,准备好现场。4)更新校验把PC指针跳转到更新程序,更新程序在指定位置获取新应用程序,校验新应用程 序是否合法。5)更新应用程序校验新应用程序合法后,把旧的应用程序擦掉,写入新应用程序。6)运行新的应用程序程序控制自动复位目标设备,运行新应用程序。通过上述工作过程,本专利技术实现了目标设备在运行状态下,面向嵌入式系统的应 用程序的在线自我更新,避免了拆开目标设备利用离线编程设备对目标设备进行离线编程 的繁琐,提高了更新的安全性和可靠性,进而有效保证嵌入式系统设备的持续运行和安全 更新,减低了更新成本以及提高了更新的效率和可操作性。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。权利要求1.一种,所述应用程序在CPU片内 flash上运行,其在运行的状态下不能更新自己,其特征在于,包括以下步骤(1)用于进行更新的更新程序和新应用程序编译成一个用户程序;(2)通过串口或者USB的方式把上述用户程序传输到目标设备上去;(3)当用户程序下载完成后需要进行更新时,用户程序启动更新,目标设备把获取到的 用户程序中的用于更新应用程序的更新程序分离出来,并把新应用程序和更新程序分别拷 贝的内存中指定的位置;(4)跳转到更新程序入口位置执行更新程序,更新程序在内存指定的位置找到需要更 新的新应用程序后进行校验;(5)校验无误后擦除flash上的旧应用程序,再写入新应用程序,完成更新;(6)复位目标设备正常,运行更新后的新应用程序。2.根据权利要求1所述的,其特征在 于,系统更新程序时,目标设备处于正常工作状态下。3.根据权利要求1所述的,其特征在 于,在所述步骤(1)中,用来进行更新的更新程序以16进制的方式嵌入到新应用程序。4.根据权利要求3所述的,其特征在 于,在所述步骤(3)中,新应用程序把嵌入到的自身的更新程序分离出来,并把新应用程序 和更新程序分别拷贝的内存中指定的位置。全文摘要本专利技术公开了一种面向嵌入式系统的应用程序在线自我更新/升级的方法,该方法包括更新程序和新应用程序编译成用户程序,用户程序传输,用户程序分离和拷贝至内存中指定的位置,校验新应用程序,更新应用程序,以及复位目标设备运行新应用程序。本专利技术实现了目标设备在运行状态下,面向嵌入式系统的应用程序的在线自我更新/升级,提高了更新的安全性和可靠性,有效保证嵌入式系统设备的持续运行和安全更新,减低了更新成本以及提高了更新的效率和可操作性。文档编号G06F9/445GK102073522SQ20111000631公开日2011年5月25日 申请日期2011年1月13日 优先权日2011年1月13日专利技术者杨进 申请人:深圳市科陆电子科技股份有限公司本文档来自技高网...

【技术保护点】
一种面向嵌入式系统的应用程序在线自我更新方法,所述应用程序在CPU片内flash上运行,其在运行的状态下不能更新自己,其特征在于,包括以下步骤:(1)用于进行更新的更新程序和新应用程序编译成一个用户程序;(2)通过串口或者USB的方式把上述用户程序传输到目标设备上去;(3)当用户程序下载完成后需要进行更新时,用户程序启动更新,目标设备把获取到的用户程序中的用于更新应用程序的更新程序分离出来,并把新应用程序和更新程序分别拷贝的内存中指定的位置;(4)跳转到更新程序入口位置执行更新程序,更新程序在内存指定的位置找到需要更新的新应用程序后进行校验;(5)校验无误后擦除flash上的旧应用程序,再写入新应用程序,完成更新;(6)复位目标设备正常,运行更新后的新应用程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨进
申请(专利权)人:深圳市科陆电子科技股份有限公司
类型:发明
国别省市:94

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

1