[发明专利]一种嵌入式设备程序更新方法和系统有效
申请号: | 201410323480.5 | 申请日: | 2014-07-08 |
公开(公告)号: | CN104090796B | 公开(公告)日: | 2017-06-09 |
发明(设计)人: | 蒋浩;刘勇 | 申请(专利权)人: | 成都万维图新信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京天奇智新知识产权代理有限公司11340 | 代理人: | 杨春 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 设备 程序 更新 方法 系统 | ||
技术领域
本发明涉及嵌入式设备程序更新方法和系统,特别涉及一种嵌入式设备程序在线更新方法和系统。
背景技术
嵌入式系统广泛应用于工业控制、电子设备产品等,例如智能交通系统中的实时监控。嵌入式终端设备随着功能的日益完善、终端数量的不断攀升,需要提供一套有效的设备管理及升级方案,让终端维护人员可以通过多种方式进行升级维护。为了实现软件升级,嵌入式终端设备都会提供Bootloader,用于检测应用程序的开始执行地址。对于远程维护工作,需要使用终端与系统提供的通信服务。在嵌入式系统的远程升级过程中,设备意外掉电是导致升级失败的主要风险,可能会引起整个系统瘫痪。因此,防止意外掉电是保护升级安全的至关重要的环节。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种嵌入式设备程序更新方法和系统,该方法包括:
当嵌入式终端设备接收到升级控制端的程序文件数据包时,将数据保存在外部NOR Flash中;
在程序文件数据包接收完成时,进行数据校验,当校验通过后,等待升级控制端的程序替换指令;
如果收到程序替换指令,修改EEPROM中存储的升级配置信息,指示有新的应用程序文件,然后从应用程序空间返回到Bootloader空间;
Bootloader将所接收的程序文件数据包写入内部NAND Flash实现程序替换操作。
优选地,所述EEPROM中预先规划用于存放升级进度的信息的地址空间,供Bootloader通过检测该升级进度的值来判断应用程序空间的程序是否有效,当升级的应用程序正常运行时,修改升级进度为已完成状态,
所述数据校验采用16位循环冗余校验码进行校验,如果校验失败,则对失败部分数据重新初始化,并且按正常方式引导应用程序;
优选地,所述嵌入式终端设备片内NAND Flash的中断向量地址空间被规划到Bootloader空间,应用程序的中断服务程序地址到内存指定地址进行存放,在Bootloader的中断服务程序入口检测内存该指定地址的值是否有效,若有效则直接跳转到应用程序的中断服务程序,否则继续执行Bootloader中的中断服务程序;
所述外部NOR Flash中预先规划有两片地址空间即第一应用程序区和第二应用程序区,分别是升级区和备份区,当下载得到的升级程序文件时,首先存储在外部NOR Flash的升级区中,升级程序文件校验通过后,修改EEPROM的升级标志,并主动退出应用程序回到Bootloader,待Bootloader完成升级文件的替换后,升级区变为备份区,原备份区变为升级区,等待下次程序升级文件的写入。
优选地,其特征在于,所述Bootloader的程序替换操作,进一步包括:
当嵌入式终端设备上电后,单片机从复位中断服务向量所指向的地址即Bootloader的首地址开始执行;
在Bootloader中,首先关闭设备的看门狗和中断,初始化硬件,然后从EEPROM读取升级配置信息,根据所述升级配置信息做出以下判断:
如果该升级配置信息指示在外部NOR Flash有新的应用程序,则擦除内部NAND Flash应用程序地址空间,从外部NOR Flash读出升级的应用程序文件数据,写入到内部NAND Flash的应用程序地址空间进行应用程序的升级替换;
如果该升级配置信息指示升级的程序文件运行失败,需要恢复备份的应用程序,则擦除内部NAND Flash应用程序地址空间,从外部NOR Flash读出备份的应用程序文件数据,写入到内部NAND Flash的应用程序地址空间进行恢复;
如果该升级配置信息指示程序正常运行,则判断应用程序的入口地址是否有效,若有效,则跳转到入口执行应用程序,否则执行串口接收程序,等待串口程序下载;
当引导过程被人为中断时,Bootloader直接进入串口升级命令等待阶段,如果在预定时间内收到串口程序下载命令,则执行串口接收程序,等待串口程序下载,如果在预定时间内没有收到串口程序下载命令,则继续引导。
根据本发明的另一方面,提供了一种嵌入式设备程序更新系统,包括:
接收模块,用于当嵌入式终端设备接收到升级控制端的程序文件数据包时,将数据保存在外部NOR Flash中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都万维图新信息技术有限公司,未经成都万维图新信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410323480.5/2.html,转载请声明来源钻瓜专利网。