本发明专利技术提供了一种MCU在线升级固件的系统及方法,包括MCU、备份RAM、备份电池,所述备份RAM与所述MCU连接,所述备份电池与所述备份RAM连接;所述MCU的FLASH存储区包括IAP程序存储区和至少两个的APP程序存储区,所述两个的APP程序存储区分别存储当前运行中的APP程序和更新数据包;所述备份RAM存储固件升级的状态信息,所述状态信息包括状态标志和固件版本号。正在运行的程序和更新数据包存放在不同的APP程序存储区,各APP程序存储区内的代码相互独立,不会相互干扰;根据备份RAM内固件升级的状态信息对更新中断的程序继续进行更新,从而实现固件在线升级不受系统掉电的影响。
【技术实现步骤摘要】
本专利技术涉及MCU产品固件升级
,特别涉及一种MCU在线升级固件的系统及方法。
技术介绍
MCU固件更新过程中需要对MCU代码存储区域进行覆盖编程操作,更新过程若被意外中断(如掉电、线缆连接中断)将导致MCU再次启动时无法正常运行代码。公开号为CN1752933A的中国专利技术专利公开了一种支持固件在线升级的芯片系统及其在线升级方法,所述系统包括固件、存储固件升级程序等程序存储器,业务模块,以及与业务模块相连的存储业务模块数据的数据存储器,所述数据存储器还与程序存储器相连,用于存储从程序存储器中复制来的固件升级程序。所述方法为:固件收到在线升级指令后,将存储于程序存储器中的固件在线升级程序复制到所述数据存储器中;将芯片中MCU的程序空间映射到所述数据存储器;在数据存储器中运行固件在线升级程序,将新版的固件写入程序存储器中。该方案利用芯片上现有的RAM或寄存器组来进行固件在线升级,但是在固件在线升级的过程中,数据存储器与程序存储器均不能正常工作,一旦更新过程出现断电现象,下次上电需重新开始固件升级过程,固件升级的可靠性较低。
技术实现思路
本专利技术所要解决的技术问题是:提供一种可靠性强,掉电后仍能完成固件升级的MCU在线升级固件的系统及方法。为了解决上述技术问题,本专利技术采用的技术方案为:一种MCU在线升级固件的系统,包括MCU、备份RAM、备份电池,所述备份RAM与所述MCU连接,所述备份电池与所述备份RAM连接;所述MCU的FLASH存储区包括IAP程序存储区和至少两个的APP程序存储区,所述两个的APP程序存储区分别存储当前运行中的APP程序和更新数据包;所述备份RAM存储固件升级的状态信息,所述状态信息包括状态标志和固件版本号。本专利技术MCU在线升级固件的系统的有益效果在于:FLASH存储区包括多个APP程序存储区,从而当前正在运行的程序和更新数据包可以存放在不同的APP程序存储区,各APP程序存储区内的代码相互独立,不会相互干扰;系统还包括与MCU连接的备份RAM和与备份RAM连接的备份电池,系统掉电时可采用备份电池进行临时供电;系统恢复上电后,根据备份RAM内固件升级的状态信息对更新中断的程序继续进行更新,从而实现固件在线升级不受系统掉电的影响。一种MCU在线升级固件的方法,包括:将MCU的FLASH划分为一IAP程序存储区和至少两个的APP程序存储区,一APP程序存储区存储有运行中APP程序;MCU获取更新数据包,将所述更新数据包存储至另一APP程序存储区;并依据所述更新数据包进行固件升级;若系统掉电,则所述MCU通过备份电源将固件升级的状态信息写入备份RAM,所述状态信息包括状态标志和固件版本号;系统恢复供电后,MCU查询所述备份RAM,依据所述状态标志判断更新是否完成;若是,则依据所述固件版本号运行当前最新版本的APP程序;若否,则重新获取更新数据包进行固件升级。本专利技术MCU在线升级固件的方法的有益效果在于:将FLASH划分为多个APP程序存储区,从而能够将当前正在运行的程序和更新数据包存放在不去的APP程序存储区,使得各APP程序存储区内的代码相互独立,不会相互干扰,实现代码可靠跳转;系统掉电后,将固件升级的状态信息写入备份RAM,从而系统恢复供电后,根据该状态信息即可判断更新是否完成,更新完成则运行最新版本的程序,更新未完成则重新进行固件升级,因此固件升级并不会受系统掉电的影响,实现可靠的固件升级。附图说明图1为本专利技术实施例一的MCU在线升级固件的系统的结构图一;图2为本专利技术实施例一的MCU在线升级固件的系统的结构图二;图3为本专利技术实施例二的MCU在线升级固件的方法的流程图一;图4为本专利技术实施例二的MCU在线升级固件的方法的流程图二。标号说明:1、MCU;11、IAP程序存储区;12、APP程序存储区;13、APP1程序存储区;14、APP2程序存储区;2、备份RAM;3、备份电池;4、掉电检测电路;5、MPU;6、上位机。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:将MCU的FLASH划分出两个APP程序存储区,分别用于存储正在运行的程序和更新数据包;掉电后采用备份电源供电,将固件升级的状态信息写入备份RAM,系统上电后根据该状态信息运行最新版本的固件或更新失败后重新获取数据更新包进行固件升级。本专利技术涉及的技术术语解释见表1:表1请参照图1以及图2,本专利技术提供了:一种MCU在线升级固件的系统,包括MCU1、备份RAM2、备份电池3,所述备份RAM2与所述MCU1连接,所述备份电池3与所述备份RAM2连接;所述MCU1的FLASH存储区包括IAP程序存储区11和至少两个的APP程序存储区12,所述两个的APP程序存储区12分别存储当前运行中的APP程序和更新数据包;所述备份RAM2存储固件升级的状态信息,所述状态信息包括状态标志和固件版本号。进一步的,还包括掉电检测电路4,所述掉电检测电路4与所述MCU1连接。从上述描述可知,通过掉电检测电路4检测掉电事件并通知MCU1,从而能够及时采取启动备份电池3供电并将固件升级的状态信息写入备份RAM2等应对措施。进一步的,还包括MPU5,所述MPU5通过UART传输方式与所述MCU1连接。进一步的,还包括上位机6,所述上位机6通过UART传输方式与所述MCU1连接。进一步的,还包括上位机6和MPU5,所述上位机6通过USB传输方式与所述MPU5连接,所述MPU5通过UART传输方式与所述MCU1连接。从上述描述可知,MCU1可直接从MPU5或上位机6获取数据更新包,也可通过MPU5从上位机6获取更新数据包。请参照图3以及图4,本专利技术还提供了:一种MCU在线升级固件的方法,包括:S1、将MCU的FLASH划分为一IAP程序存储区和至少两个的APP程序存储区,一APP程序存储区存储有运行中APP程序;S2、MCU获取更新数据包,将所述更新数据包存储至另一APP程序存储区;并依据所述更新数据包进行固件升级;S3、若系统掉电,则所述MCU通过备份电源将固件升级的状态信息写入备份RAM,所述状态信息包括状态标志和固件版本号;S4、系统恢复供电后,MCU查询所述备份RAM,依据所述本文档来自技高网...
【技术保护点】
一种MCU在线升级固件的系统,其特征在于,包括MCU、备份RAM、备份电池,所述备份RAM与所述MCU连接,所述备份电池与所述备份RAM连接;所述MCU的FLASH存储区包括IAP程序存储区和至少两个的APP程序存储区,所述两个的APP程序存储区分别存储当前运行中的APP程序和更新数据包;所述备份RAM存储固件升级的状态信息,所述状态信息包括状态标志和固件版本号。
【技术特征摘要】
1.一种MCU在线升级固件的系统,其特征在于,包括MCU、备份RAM、
备份电池,所述备份RAM与所述MCU连接,所述备份电池与所述备份RAM
连接;
所述MCU的FLASH存储区包括IAP程序存储区和至少两个的APP程序存
储区,所述两个的APP程序存储区分别存储当前运行中的APP程序和更新数据
包;所述备份RAM存储固件升级的状态信息,所述状态信息包括状态标志和固
件版本号。
2.根据权利要求1所述的MCU在线升级固件的系统,其特征在于,还包
括掉电检测电路,所述掉电检测电路与所述MCU连接。
3.根据权利要求1所述的MCU在线升级固件的系统,其特征在于,还包
括MPU,所述MPU通过UART传输方式与所述MCU连接。
4.根据权利要求1所述的MCU在线升级固件的系统,其特征在于,还包
括上位机,所述上位机通过UART传输方式与所述MCU连接。
5.根据权利要求1所述的MCU在线升级固件的系统,其特征在于,还包
括上位机和MPU,所述上位机通过USB传输方式与所述MPU连接,所述MPU
通过UART传输方式与所述MCU连接。
6.一种MCU在线升级固件的方法,其特征在于,包括:
将MCU的FLASH划分为一IAP程序存储区和至少两个的APP程序存储区,
一APP程序存储区存储有运行中APP程序;
MCU获取更新数据包,将所述...
【专利技术属性】
技术研发人员:高建民,
申请(专利权)人:深圳市高巨创新科技开发有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。