MCU升级方法及系统、计算机设备、存储介质技术方案

技术编号:37776015 阅读:11 留言:0更新日期:2023-06-06 13:47
本申请提供了一种MCU升级方法及系统、计算机设备、存储介质,属于嵌入式通信技术领域。该方法包括:获取MCU内存,该MCU内存包括第一运行区、第二运行区、激活标记区,激活标记区用于存储版本运行标记,版本运行标记用于标识初始运行区;接收发送至目标MCU的第一升级指令,并判断第一升级指令的指令类型,若指令判断结果表示第一升级指令为软件下载指令,根据版本运行标记确定第一目标运行区,且第一目标运行区不同于初始运行区;根据软件下载指令获取版本数据包,并根据版本数据包对第一目标运行区进行升级,根据升级结果更新版本运行标记;根据更新后的版本运行标记重启目标MCU。本申请实施例能够有效提高MCU的升级效率。实施例能够有效提高MCU的升级效率。实施例能够有效提高MCU的升级效率。

【技术实现步骤摘要】
MCU升级方法及系统、计算机设备、存储介质


[0001]本申请涉及嵌入式通信
,尤其涉及一种MCU升级方法及系统、计算机设备、存储介质。

技术介绍

[0002]目前,对嵌入有微控制单元(Micro Controller Unit,MCU)的产品,通常采用软件升级方法进行MCU版本的切换,以避免出现MCU软件上的技术缺陷。相关技术通常采用如双分区升级的覆盖式MCU升级方法,即将存储MCU软件的FLASH闪存划分为BOOT区、APP运行区、APP升级区。在发起MCU升级时,BOOT区检测到MCU升级复位后,将APP升级区的新版本程序写入APP运行区,并跳转APP运行区运行新代码。虽然该方案能保证MCU升级过程中避免出现掉电等异常状态,但由于在MCU升级过程中,需要进行APP升级区和APP运行区的两次擦除写入过程,从而导致MCU升级效率较低。因此,如何提出一种能够快速实现MCU升级的方法,成为了亟待解决的技术问题。

技术实现思路

[0003]本申请实施例的主要目的在于提出了一种MCU升级方法及系统、计算机设备、存储介质,能够有效提高MCU的升级效率。
[0004]为实现上述目的,本申请实施例的第一方面提出了一种MCU升级方法,所述方法包括:
[0005]获取目标MCU的MCU内存,所述MCU内存包括第一运行区、第二运行区、激活标记区,所述激活标记区用于存储所述目标MCU的版本运行标记,所述版本运行标记用于标识所述目标MCU的初始运行区,其中,所述初始运行区为所述第一运行区或所述第二运行区,且所述第一运行区和所述第二运行区用于存储不同的应用程序;
[0006]接收发送至所述目标MCU的第一升级指令,并对所述第一升级指令进行指令类型判断,得到第一指令判断结果;
[0007]若所述第一指令判断结果表示所述第一升级指令为软件下载指令,根据所述版本运行标记确定第一目标运行区,所述第一目标运行区为所述第一运行区或所述第二运行区,且所述第一目标运行区不同于所述初始运行区;
[0008]根据所述软件下载指令获取版本数据包;
[0009]根据所述版本数据包对所述第一目标运行区进行升级处理,得到升级处理结果;
[0010]根据所述升级处理结果更新所述版本运行标记;
[0011]根据更新后的所述版本运行标记重启所述目标MCU。
[0012]在一些实施例中,在所述根据更新后的所述版本运行标记重启所述目标MCU之前,所述方法还包括:
[0013]接收到发送至所述目标MCU的第二升级指令,对所述第二升级指令进行指令类型判断,得到第二指令判断结果;
[0014]若所述第二指令判断结果表示所述第二升级指令为软件切换指令,根据所述软件切换指令确定切换运行区,所述切换运行区为所述第一运行区或第二运行区;
[0015]根据所述切换运行区更新所述版本运行标记。
[0016]在一些实施例中,所述根据所述软件下载指令获取版本数据包,包括:
[0017]根据所述软件下载指令接收发送至所述目标MCU的第一分片载荷数据,所述第一分片载荷数据包括第一分片数据包、所述第一分片数据包的第一校验数据、所述第一分片数据包的第一包序号和载荷数据总包数;
[0018]根据所述第一校验数据、所述第一包序号和所述载荷数据总包数对所述第一分片载荷数据进行分片数据包校验,得到第一校验结果;
[0019]若所述第一校验结果表示所述第一校验数据为校验通过且所述第一包序号等于所述载荷数据总包数,根据所述第一分片数据包确定所述版本数据包。
[0020]在一些实施例中,在所述根据所述版本数据包对所述第一目标运行区进行升级处理,得到升级处理结果之前,所述方法还包括:
[0021]若所述第一校验结果表示所述第一校验数据为校验通过且所述第一包序号不等于所述载荷数据总包数,根据所述软件下载指令接收发送至所述目标MCU的第二分片载荷数据,其中,所述第二分片载荷数据包括第二分片数据包、所述第二分片数据包的第二校验数据、所述第二分片数据包的第二包序号和所述载荷数据总包数,且所述第二包序号大于所述第一包序号;
[0022]根据所述第二校验数据、所述第二包序号和所述载荷数据总包数对所述第二分片载荷数据进行分片数据包校验,得到第二校验结果;
[0023]若所述第二校验结果表示所述第二校验数据为校验通过且所述第二包序号等于所述载荷数据总包数,根据所述第一分片数据包和所述第二分片数据包确定所述版本数据包。
[0024]在一些实施例中,所述根据所述版本数据包对所述第一目标运行区进行升级处理,得到升级处理结果,包括:
[0025]若所述第一目标运行区包括存储的历史应用程序,对所述历史应用程序进行程序删除,更新所述第一目标运行区;
[0026]根据所述版本数据包对更新后的所述第一目标运行区进行升级处理,得到所述升级处理结果。
[0027]在一些实施例中,所述MCU内存还包括引导区,所述引导区用于存储引导所述目标MCU进行升级的引导程序,在所述接收发送至所述目标MCU的第一升级指令之前,所述方法还包括:
[0028]接收发送至所述目标MCU的启动信号;
[0029]根据启动后的所述目标MCU启动所述引导区中的所述引导程序;
[0030]根据所述版本运行标记从所述引导区跳转到所述初始运行区,并运行所述初始运行区中存储的应用程序。
[0031]在一些实施例中,所述根据更新后的所述版本运行标记重启所述目标MCU,包括:
[0032]若识别到所述目标MCU升级完成,接收发送至所述目标MCU的MCU重启信号;
[0033]根据重启后的所述目标MCU再次启动所述引导区中的所述引导程序;
[0034]根据更新后的所述版本运行标记确定更新后的所述初始运行区,并运行更新后的所述初始运行区中存储的应用程序。
[0035]为实现上述目的,本申请实施例的第二方面提出了一种MCU升级系统,所述系统包括:
[0036]内存获取模块,用于获取目标MCU的MCU内存,所述MCU内存包括第一运行区、第二运行区、激活标记区,所述激活标记区用于存储所述目标MCU的版本运行标记,所述版本运行标记用于标识所述目标MCU的初始运行区,其中,所述初始运行区为所述第一运行区或所述第二运行区,且所述第一运行区和所述第二运行区用于存储不同的应用程序;
[0037]指令接收模块,用于接收发送至所述目标MCU的第一升级指令,并对所述第一升级指令进行指令类型判断,得到第一指令判断结果;
[0038]运行区确定模块,用于若所述第一指令判断结果表示所述第一升级指令为软件下载指令,根据所述版本运行标记确定第一目标运行区,所述第一目标运行区为所述第一运行区或所述第二运行区,且所述第一目标运行区不同于所述初始运行区;
[0039]数据包获取模块,用于根据所述软件下载指令获取版本数据包;
[0040]升级模块,用于根据所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种MCU升级方法,其特征在于,所述方法包括:获取目标MCU的MCU内存,所述MCU内存包括第一运行区、第二运行区、激活标记区,所述激活标记区用于存储所述目标MCU的版本运行标记,所述版本运行标记用于标识所述目标MCU的初始运行区,其中,所述初始运行区为所述第一运行区或所述第二运行区,且所述第一运行区和所述第二运行区用于存储不同的应用程序;接收发送至所述目标MCU的第一升级指令,并对所述第一升级指令进行指令类型判断,得到第一指令判断结果;若所述第一指令判断结果表示所述第一升级指令为软件下载指令,根据所述版本运行标记确定第一目标运行区,所述第一目标运行区为所述第一运行区或所述第二运行区,且所述第一目标运行区不同于所述初始运行区;根据所述软件下载指令获取版本数据包;根据所述版本数据包对所述第一目标运行区进行升级处理,得到升级处理结果;根据所述升级处理结果更新所述版本运行标记;根据更新后的所述版本运行标记重启所述目标MCU。2.根据权利要求1所述的方法,其特征在于,在所述根据更新后的所述版本运行标记重启所述目标MCU之前,所述方法还包括:接收到发送至所述目标MCU的第二升级指令,对所述第二升级指令进行指令类型判断,得到第二指令判断结果;若所述第二指令判断结果表示所述第二升级指令为软件切换指令,根据所述软件切换指令确定切换运行区,所述切换运行区为所述第一运行区或第二运行区;根据所述切换运行区更新所述版本运行标记。3.根据权利要求1所述的方法,其特征在于,所述根据所述软件下载指令获取版本数据包,包括:根据所述软件下载指令接收发送至所述目标MCU的第一分片载荷数据,所述第一分片载荷数据包括第一分片数据包、所述第一分片数据包的第一校验数据、所述第一分片数据包的第一包序号和载荷数据总包数;根据所述第一校验数据、所述第一包序号和所述载荷数据总包数对所述第一分片载荷数据进行分片数据包校验,得到第一校验结果;若所述第一校验结果表示所述第一校验数据为校验通过且所述第一包序号等于所述载荷数据总包数,根据所述第一分片数据包确定所述版本数据包。4.根据权利要求3所述的方法,其特征在于,在所述根据所述版本数据包对所述第一目标运行区进行升级处理,得到升级处理结果之前,所述方法还包括:若所述第一校验结果表示所述第一校验数据为校验通过且所述第一包序号不等于所述载荷数据总包数,根据所述软件下载指令接收发送至所述目标MCU的第二分片载荷数据,其中,所述第二分片载荷数据包括第二分片数据包、所述第二分片数据包的第二校验数据、所述第二分片数据包的第二包序号和所述载荷数据总包数,且所述第二包序号大于所述第一包序号;根据所述第二校验数据、所述第二包序号和所述载荷数据总包数对所述第二分片载荷数据进行分片数据包校验,得到第二校验结果;
若所述第二校验结果表示所述第二校验数据为校验通过且所述第二包序号等于所述载荷数据总包数,根据所述第一分片...

【专利技术属性】
技术研发人员:何顺
申请(专利权)人:易科奇通信技术深圳有限公司
类型:发明
国别省市:

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

1