[发明专利]用于在MCU固件出错后自动恢复的方法和MCU在审
申请号: | 201711167145.0 | 申请日: | 2017-11-21 |
公开(公告)号: | CN107908496A | 公开(公告)日: | 2018-04-13 |
发明(设计)人: | 付海涛;徐亮 | 申请(专利权)人: | 东峡大通(北京)管理咨询有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F9/24 |
代理公司: | 北京润平知识产权代理有限公司11283 | 代理人: | 金旭鹏,肖冰滨 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 mcu 出错 自动 恢复 方法 | ||
技术领域
本发明涉及电子技术领域,具体地涉及一种用于在MCU固件出错后自动恢复的方法和MCU。
背景技术
当前MCU的嵌入式软件(即固件)随着业务的升级而变得越发复杂。固件在升级结束以及运行时,可能会由于固件的程序错误、Flash硬件的不稳定性、传输过程中的干扰导致的新版本固件包错误以及在升级时断电等一系列异常情况的发生,导致MCU不断重启而无法正常工作。
发明内容
为了解决现有技术中存在的上述问题,本发明的目的是提供一种用于在MCU固件出错后自动恢复的方法和MCU。
为了实现上述目的,本发明实施例提供一种MCU,所述MCU包括:存储模块,所述存储模块包括升级交换区、备份区和运行区,其中,所述升级交换区用于存储待升级的新版本固件;所述备份区用于存储旧版本固件;所述运行区用于存储当前版本固件;检测模块,用于检测所述新版本固件和/或当前版本固件是否错误;以及执行模块,用于接收来自所述检测模块的检测结果,并执行以下操作中的一者或多者:操作一:在所述检测模块检测到所述新版本固件错误的情况下,继续执行所述运行区内的所述当前版本固件;操作二:在所述检测模块检测到所述当前版本固件错误的情况下,复制所述备份区内的所述旧版本固件至所述运行区,并执行被复制到所述运行区内的所述旧版本固件。
可选地,所述执行模块还用于在所述检测模块检测到所述新版本固件正确的情况下,执行以下步骤:步骤S201,清空所述备份区,将所述运行区内的所述当前版本固件复制到所述备份区内;步骤S202,将所述升级交换区内的所述新版本固件复制到所述运行区内;步骤S203,运行所述运行区内存储的所述新版本固件。
可选地,所述存储模块还包括标识区,所述标识区用于存储:升级标识,用于指示所述升级交换区内是否有所述新版本固件,其中所述新版本固件为高于所述运行区内的所述当前版本固件的固件;第一标识,用于指示所述步骤S201是否完成;以及第二标识,用于指示所述步骤S202是否完成。
可选地,所述执行模块还用于下载所述新版本固件到所述升级交换区,并在所述新版本固件下载完成后,在所述标识区内写入所述升级标识。
可选地,所述检测模块还用于:在所述标识区内存储有所述升级标识的情况下,检测所述升级交换区内的所述新版本固件是否正确;以及在所述标识区内没有存储所述升级标识的情况下,检测所述运行区内的所述当前版本固件是否正确。
可选地,所述执行模块还用于:在完成步骤S201后,在所述标识区内写入所述第一标识;以及在完成步骤S202后,在所述标识区内删除所述第一标识和所述升级标识并写入所述第二标识。
可选地,所述检测模块,还用于通过检测所述升级交换区内的所述新版本固件的栈顶位置和/或校验值来判断所述新版本固件是否错误。
可选地,所述MCU还包括监控芯片,所述监控芯片用于在监控到当前版本固件运行异常时,重启所述MCU,所述检测模块通过检测所述MCU异常重启的次数来确定所述运行区内的所述当前版本固件是否错误。
可选地,当所述执行模块执行所述步骤S201的过程中出现中断时,所述执行模块还用于重复执行所述步骤S201;以及当所述执行模块执行所述步骤S202的过程中出现中断时,所述执行模块还用于重复执行所述步骤S202。
本发明实施方式还提供一种用于在MCU固件出错后自动恢复的方法,所述方法包括:检测新版本固件和/或当前版本固件是否错误,其中所述MCU的存储模块包括升级交换区、备份区和运行区,所述升级交换区用于存储待升级的所述新版本固件,所述备份区用于存储旧版本固件,所述运行区用于存储所述当前版本固件;以及以下步骤中的一者或多者:步骤S101:在检测到所述新版本固件错误的情况下,继续执行所述运行区内的所述当前版本固件;步骤S102:在检测到所述当前版本固件错误的情况下,复制所述备份区内的所述旧版本固件至所述运行区,并执行被复制到所述运行区内的所述旧版本固件。
可选地,所述方法还包括:在检测到所述新版本固件正确的情况下,执行以下步骤:步骤S201,清空所述备份区,将所述运行区内的所述当前版本固件复制到所述备份区内;步骤S202,将所述升级交换区内的所述新版本固件复制到所述运行区内;步骤S203,运行所述运行区内存储的所述新版本固件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东峡大通(北京)管理咨询有限公司,未经东峡大通(北京)管理咨询有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711167145.0/2.html,转载请声明来源钻瓜专利网。