[发明专利]一种双分区的MCU软件升级方法及装置在审
申请号: | 202210347289.9 | 申请日: | 2022-04-01 |
公开(公告)号: | CN114546455A | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 刘超;曹戎格;王德亮 | 申请(专利权)人: | 北斗星通智联科技有限责任公司 |
主分类号: | G06F8/654 | 分类号: | G06F8/654;G06F8/656 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 董艳芳 |
地址: | 401120 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分区 mcu 软件 升级 方法 装置 | ||
本申请提供了一种双分区的MCU软件升级方法及装置,涉及车载设备技术领域,具体为:当接收到SOC端读取到软件升级数据包的指令时,将Flash区的升级状态标志更新为发起升级标志;接收SOC端发送的软件升级数据包的总帧数,根据总帧数向SOC端进行数据包请求;当接收到总帧数的数据包,将软件升级数据包缓存在APP区的第二分区,将升级状态标志更新为发起升级标志软件更新标志;在检测到MCU重启进入BOOT区且升级状态标志为软件更新标志,将APP区的第二分区的软件升级数据包拷贝至第一分区,并将升级状态标志更新为初始标志;控制MCU进入APP区的第一分区运行升级后的软件代码。本申请提高了MCU软件升级的可靠性,提升了用户体验感。
技术领域
本申请涉及车载设备技术领域,尤其是涉及一种双分区的MCU软件升级方法及装置。
背景技术
传统MCU的软件升级都是单分区方案,FLASH区被划分为BOOT区和APP区。此方案的应用代码只存在一份,且发起升级后会被擦除,一旦在升级过程中出现断电等异常情况,MCU将无应用代码执行。在用户驾车行驶的过程中造成较差的体验。
发明内容
有鉴于此,本申请提供了一种双分区的MCU软件升级方法及装置,以解决上述技术问题。
第一方面,本申请提供了一种双分区的MCU软件升级方法,应用于MCU,包括:
当接收到SOC端读取到软件升级数据包的指令时,将Flash区的升级状态标志更新为发起升级标志,在检测到MCU进入BOOT区且升级状态标志为发起升级标志,将升级状态标志更新为初始标志;
接收SOC端发送的软件升级数据包的总帧数,根据总帧数向SOC端进行数据包请求;
当接收到总帧数的数据包,将软件升级数据包缓存在APP区的第二分区,将升级状态标志更新为软件更新标志;
在检测到MCU重启进入BOOT区且升级状态标志为软件更新标志,将APP区的第二分区的软件升级数据包拷贝至APP区的第一分区,并将升级状态标志更新为初始标志;
控制MCU进入APP区的第一分区运行升级后的软件代码。
进一步的,所述方法还包括:将APP区划分为第一分区和第二分区,第一分区用于存储软件数据包,第二分区用于缓存软件升级数据包。
进一步的,所述方法还包括:对接收到的SOC端发送的数据帧进行校验和帧序号检测。
进一步的,在根据总帧数对SOC端进行数据包请求时,若出现通信中断或异常断电,所述方法还包括:
在检测到MCU重启进入BOOT区且升级状态标志为初始标志,控制MCU运行第一分区的历史版本的软件代码,等待SOC端再次发起软件升级。
进一步的,在将第二分区的软件升级数据包拷贝至第一分区的过程中,若出现断电,所述方法还包括:
在检测到MCU重启进入BOOT区且升级状态标志为软件更新标志,将第二分区的软件升级数据包拷贝至第一分区。
第二方面,本申请实施例提供了一种双分区的MCU软件升级装置,应用于MCU,包括:
发起升级启动单元,用于当接收到SOC端读取到软件升级数据包的指令时,将Flash区的升级状态标志更新为发起升级标志,在检测到MCU进入BOOT区且升级状态标志为发起升级标志,将升级状态标志更新为初始标志;
数据包请求单元,用于接收SOC端发送的软件升级数据包的总帧数,根据总帧数向SOC端进行数据包请求;
数据包缓存单元,用于在检测到MCU重启进入BOOT区且升级状态标志为软件更新标志,将APP区的第二分区的软件升级数据包拷贝至APP区的第一分区,并将升级状态标志更新为初始标志;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北斗星通智联科技有限责任公司,未经北斗星通智联科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210347289.9/2.html,转载请声明来源钻瓜专利网。