掌桥专利:专业的专利平台
掌桥专利
首页

一种基于串口的MCU升级方法、系统、设备及介质

文献发布时间:2023-06-19 09:29:07


一种基于串口的MCU升级方法、系统、设备及介质

技术领域

本发明涉及MCU技术领域,特别指一种基于串口的MCU升级方法、系统、设备及介质。

背景技术

MCU即微控制单元,又称单片微型计算机(Single Chip Microcomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。

随着应用MCU的产品的功能日益完善,MCU的固件也需要同步进行升级。传统上对MCU的固件进行串口烧录升级时,需要先通过MCU的BOOT引脚触发升级模式;当MCU装在机壳内部时,就需要进行拆机操作,异常繁琐,费时费力。因此,如何提供一种基于串口的MCU升级方法、系统、设备及介质,实现提升MCU升级的便捷性,成为一个亟待解决的问题。

发明内容

本发明要解决的技术问题,在于提供一种基于串口的MCU升级方法、系统、设备及介质,实现提升MCU升级的便捷性。

第一方面,本发明提供了一种基于串口的MCU升级方法,包括如下步骤:

步骤S10、预设一地址段,基于所述地址段将IAP程序烧录至MCU;

步骤S20、IAP程序接收待升级的固件,并将所述固件存储于MCU中;

步骤S30、MCU的编译器对所述固件进行编译后自动运行,完成所述固件的自升级。

进一步地,所述步骤S10具体为:

预设一用于存储IAP程序的地址段,将IAP程序通过串口烧录至MCU的FLASH的所述地址段中。

进一步地,所述步骤S20具体为:

预设一起始地址,IAP程序接收待升级的固件,将所述固件转换为bin文件后,从MCU的FLASH的所述起始地址开始进行存储;所述起始地址为地址段的末尾地址加1。

进一步地,所述步骤S30具体为:

将MCU的编译器的起始编译地址修改为所述起始地址,通过编译器对所述bin文件进行编译后,IAP程序自动运行编译后的所述bin文件,完成所述固件的自升级。

第二方面,本发明提供了一种基于串口的MCU升级系统,包括如下模块:

IAP程序烧录模块,用于预设一地址段,基于所述地址段将IAP程序烧录至MCU;

固件存储模块,用于IAP程序接收待升级的固件,并将所述固件存储于MCU中;

固件自升级模块,用于MCU的编译器对所述固件进行编译后自动运行,完成所述固件的自升级。

进一步地,所述IAP程序烧录模块具体为:

预设一用于存储IAP程序的地址段,将IAP程序通过串口烧录至MCU的FLASH的所述地址段中。

进一步地,所述固件存储模块具体为:

预设一起始地址,IAP程序接收待升级的固件,将所述固件转换为bin文件后,从MCU的FLASH的所述起始地址开始进行存储;所述起始地址为地址段的末尾地址加1。

进一步地,所述固件自升级模块具体为:

将MCU的编译器的起始编译地址修改为所述起始地址,通过编译器对所述bin文件进行编译后,IAP程序自动运行编译后的所述bin文件,完成所述固件的自升级。

第三方面,本发明提供了一种基于串口的MCU升级设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

第四方面,本发明提供了一种基于串口的MCU升级介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

通过将IAP程序烧录至MCU,再利用IAP程序对接收的待升级的固件进行升级,不必像传统上需要先通过MCU的BOOT引脚触发升级模式,即省去了使用内部固件串口升级的硬件操作,当面对大批量的MCU升级时,可节省大量的人力物力,即极大的提升了MCU升级的便捷性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是本发明一种基于串口的MCU升级方法的流程图。

图2是本发明一种基于串口的MCU升级系统的结构示意图。

图3是本发明一种基于串口的MCU升级设备的结构示意图。

图4是本发明一种基于串口的MCU升级介质的结构示意图。

具体实施方式

本申请实施例通过提供一种基于串口的MCU升级方法、系统、设备及介质,实现提升MCU升级的便捷性。

本申请实施例中的技术方案,总体思路如下:将IAP程序烧录至MCU,再利用IAP程序对接收的固件进行自动升级,省去通过MCU的BOOT引脚触发升级模式。

实施例一

本实施例提供一种基于串口的MCU升级方法,如图1所示,包括如下步骤:

步骤S10、通过编译软件预设一地址段,基于所述地址段将IAP程序烧录至MCU;例如将所述地址段设为0x8000000~0x8001999;

步骤S20、IAP程序接收待升级的固件(应用程序),并将所述固件存储于MCU中;

步骤S30、MCU的编译器对所述固件进行编译后自动运行,完成所述固件的自升级。

所述步骤S10具体为:

预设一用于存储IAP程序的地址段,将IAP程序通过串口烧录至MCU的FLASH的所述地址段中。

所述步骤S20具体为:

预设一起始地址,IAP程序通过Ymodem协议接收待升级的固件,将所述固件转换为bin文件后,从MCU的FLASH的所述起始地址开始进行存储;所述起始地址为地址段的末尾地址加1。例如所述地址段设为0x8000000~0x8001999时,所述起始地址为0x8002000。

所述步骤S30具体为:

将MCU的编译器的起始编译地址修改为所述起始地址,通过编译器对所述bin文件进行编译后,IAP程序自动运行编译后的所述bin文件,完成所述固件的自升级。

若未修改起始编译地址,则默认从0x8000000进行编译。通过将ROM(rx):ORIGIN=0X8000000代码修改为ROM(rx):ORIGIN=0X8002000,且在main函数的最开头加入SCB->VTOR=0X8002000,则编译器编译完后代码运行时,会从MCU的FLASH的0X8002000地址开始运行,即实现所述固件的自升级。

实施例二

本实施例提供一种基于串口的MCU升级系统,如图2所示,包括如下模块:

IAP程序烧录模块,用于通过编译软件预设一地址段,基于所述地址段将IAP程序烧录至MCU;例如将所述地址段设为0x8000000~0x8001999;

固件存储模块,用于IAP程序接收待升级的固件(应用程序),并将所述固件存储于MCU中;

固件自升级模块,用于MCU的编译器对所述固件进行编译后自动运行,完成所述固件的自升级。

所述IAP程序烧录模块具体为:

预设一用于存储IAP程序的地址段,将IAP程序通过串口烧录至MCU的FLASH的所述地址段中。

所述固件存储模块具体为:

预设一起始地址,IAP程序通过Ymodem协议接收待升级的固件,将所述固件转换为bin文件后,从MCU的FLASH的所述起始地址开始进行存储;所述起始地址为地址段的末尾地址加1。例如所述地址段设为0x8000000~0x8001999时,所述起始地址为0x8002000。

所述固件自升级模块具体为:

将MCU的编译器的起始编译地址修改为所述起始地址,通过编译器对所述bin文件进行编译后,IAP程序自动运行编译后的所述bin文件,完成所述固件的自升级。

若未修改起始编译地址,则默认从0x8000000进行编译。通过将ROM(rx):ORIGIN=0X8000000代码修改为ROM(rx):ORIGIN=0X8002000,且在main函数的最开头加入SCB->VTOR=0X8002000,则编译器编译完后代码运行时,会从MCU的FLASH的0X8002000地址开始运行,即实现所述固件的自升级。

基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种基于串口的MCU升级设备,如图3所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。

实施例四

本实施例提供一种基于串口的MCU升级介质,如图4所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

通过将IAP程序烧录至MCU,再利用IAP程序对接收的待升级的固件进行升级,不必像传统上需要先通过MCU的BOOT引脚触发升级模式,即省去了使用内部固件串口升级的硬件操作,当面对大批量的MCU升级时,可节省大量的人力物力,即极大的提升了MCU升级的便捷性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

相关技术
  • 一种基于串口的MCU升级方法、系统、设备及介质
  • 一种基于单外接串口的多MCU系统软件升级方法
技术分类

06120112183864