一种可靠的单片机应用程序更新的方法技术

技术编号:36709162 阅读:18 留言:0更新日期:2023-03-01 09:34
本发明专利技术公开一种可靠的单片机应用程序更新的方法,包括以下步骤:S1:预先设置升级标识1、升级标识2、升级标识3和升降标识4,分别对应通讯模式、复制模式、恢复模式和备份模式;S2:硬件初始化,并检查是否有升级标识,若有升级标识,则依据该升级标识对应的升级模式进行软件升级;S3:S2中若没有检查出升级标识,则校验app是否正常,若app校验异常,则直接采用恢复模式进行软件升级;S4:若备份区的程序校验异常,则将正常的程序从运行区复制到备份区,以完成程序备份。本发明专利技术稳定可靠,在升级过程中,因断电或者其他原因中断,导致文件无法运行时,会自动恢复为上一个版本的固件,保证软件能正常运行。能正常运行。能正常运行。

【技术实现步骤摘要】
一种可靠的单片机应用程序更新的方法


[0001]本专利技术涉及单片机应用程序升级
,尤其涉及一种可靠的单片机应用程序更新的方法。

技术介绍

[0002]嵌入式应用软件是指在执行独立功能的专用计算机系统中,嵌入的系统软件和应用软件。嵌入式系统在应用过程中,存在可扩展性,其可扩展设备大致分为三个部分,其中单片机(MCU)是核心部分,结合系统中的CPU装置和外围硬件设备,共同实现对程序的控制功能。在具体应用过程中,CPU装置会与系统的外围装置经由SPI口进行连接,实现CPU与单片机之间的数据信息交换。基于数据信息模块实现两者间的信息传输,单片机在系统之中的应用可以经过I/O口等接口实现功能性拓展,在与外围硬件系统的共同作用下,实现功能性转化。
[0003]MCU的软件在实际使用中,由于客户的需求不断变化,应用环境也不断变化,升级软件是难以避免的,而常规的MCU的软件升级的方法有以下几种:
[0004]1)ICP

(In

circuit programmer)
[0005]ICP表示在电路编程,MCU内部不需要有程序,直接上电就能够进行对程序存储区域进行编程的方式,如平时使用的JTAG或者SWD等就属于这种方式。这种方法一般是出厂前开发或者生产的时候使用,且这种方法,需要专用的下载工具,应用有局限性。
[0006]2)ISP

(In

system programer)
[0007]ISP表示在系统编程,通过MCU专用的串行编程接口进行编程,那也就是说MCU需要具有运行的外部条件,比如需要有晶振等等,比如说平时使用的stm32,通过设置boot引脚设置对应启动模式,然后通过串口等对内部Flash进行升级,可以说这种方式就是厂家在芯片内部固化了一个BootLoader程序,而这种方法,如果硬件不是固化的通讯方式或者电源控制引脚不一样,就不能使用,且存在不通用,无法自定义通讯引脚等问题,目前是很少用。
[0008]3)IAP

(In

application programer)
[0009]IAP表示在应用编程,相当于自己定制一个引导程序,自己通过编程设计可以实现各种升级的方式,比如串口、CAN、以太网等等,非常的灵活,这种方式是目前行业使用比较多,比较主流的一种方式,参照图1所示,为该升级方法常用的应用案例,该方法具有两个缺点,一是更新固件是直接擦除原来的flash2的数据,如果擦除之后通过通讯口升级过程中断,就无法自动恢复,需要重新升级;其二,则是如果更新了版本,倘若手上没有原来的版本就无法恢复版本,使用起来极为不便。

技术实现思路

[0010]本专利技术的目的是提供一种可靠的单片机应用程序更新的方法,该方法稳定可靠,在升级过程中,因断电或者其他原因中断,或者升级错误,导致文件无法运行时,会自动恢复为上一个版本的固件,保证软件能正常运行,且升级有多种模式,可供用户根据实际需
求,自由选择,通用性强。
[0011]为实现上述目的,采用以下技术方案:
[0012]一种可靠的单片机应用程序更新的方法,包括以下步骤:
[0013]S1:预先设置升级标识1、升级标识2、升级标识3和升降标识4,其中,升级标识1表示采用通讯模式进行软件升级,升降标识2表示采用复制模式进行软件升级,升级标识3表示采用恢复模式进行软件升级,升级标识4表示采用备份模式进行软件升级;
[0014]S2:硬件初始化,并检查是否有升级标识,若有升级标识,且升级标识为S1中的其中一个,则依据该升级标识对应的升级模式进行软件升级;
[0015]S3:S2中若没有检查出升级标识,则校验app是否正常,若app校验异常,则直接采用恢复模式进行软件升级,若app校验正常,则校验备份区的程序是否正常;
[0016]S4:若备份区的程序校验异常,则将正常的程序从运行区复制到备份区,以完成程序备份。
[0017]进一步地,所述通讯模式的软件升级方法具体包括以下步骤:
[0018]S11:向app发送升级指令,以使app跳转到引导区运行引导程序BootLoader;
[0019]S12:通过通讯接口,将固件数据直接写入内部flash的运行区;
[0020]S13:待固件下载完成后,校验运行区的固件数据,若校验成功,则跳转到运行区运行app,若校验失败,则从外部flash的备份区恢复原来的固件。
[0021]进一步地,所述复制模式的软件升级方法具体包括以下步骤:
[0022]S11:向app发送升级指令,并通过通讯接口,将固件数据直接写入外部flash中;
[0023]S12:待固件下载完成后,校验外部flash中的固件数据,若校验成功,跳转到引导区运行引导程序BootLoader;
[0024]S13:经引导程序BootLoader从外部flash中复制固件数据,并写入至内部flash;
[0025]S14:写入完成后,校验内部flash中的固件数据,若校验成功,则跳转到运行区运行app,若校验失败,则从外部flash的备份区恢复原来的固件。
[0026]进一步地,所述恢复模式的软件升级方法具体包括以下步骤:
[0027]S11:直接从外部flash的备份区复制固件数据至内部flash;
[0028]S12:复制完成后,校验内部flash中的固件数据,若校验成功,则跳转到运行区运行app。
[0029]进一步地,所述备份模式包括自动备份模式和人工备份模式。
[0030]进一步地,所述自动备份模式的软件升级方法具体包括以下步骤:
[0031]S51:校验内部flash中参数区中的数据是否正确,若不正确,则把当前运行区的app数据备份至外部flash的备份区;
[0032]S52:校验外部flash中的固件数据,若校验成功,将校验完成后的参数数据保存至内部flash中的参数区,并跳转至运行区运行app。
[0033]进一步地,所述人工备份模式的软件升级方法具体包括以下步骤:
[0034]S51:向app发送备份指令,以使其跳转到引导区运行引导程序BootLoader;
[0035]S52:将运行区的固件数据复制到外部flash;
[0036]S53:复制完成后,校验内部flash的固件数据,校验成功后,跳转到运行区运行app。
[0037]进一步地,所述通讯接口为以下接口中的任意一种:UART通讯接口、485通讯接口、CAN通讯接口。
[0038]采用上述方案,本专利技术的有益效果是:
[0039]该方法稳定可靠,在升级过程中,因断电或者其他原因中断,或者升级错误,导致文件无法运行时,会自动恢复为上一个版本的固件,保证软件能正常运行,且升级有多种模式,可供用户根据实际需求,自由选择,通用性强。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可靠的单片机应用程序更新的方法,其特征在于,包括以下步骤:S1:预先设置升级标识1、升级标识2、升级标识3和升降标识4,其中,升级标识1表示采用通讯模式进行软件升级,升降标识2表示采用复制模式进行软件升级,升级标识3表示采用恢复模式进行软件升级,升级标识4表示采用备份模式进行软件升级;S2:硬件初始化,并检查是否有升级标识,若有升级标识,且升级标识为S1中的其中一个,则依据该升级标识对应的升级模式进行软件升级;S3:S2中若没有检查出升级标识,则校验app是否正常,若app校验异常,则直接采用恢复模式进行软件升级,若app校验正常,则校验备份区的程序是否正常;S4:若备份区的程序校验异常,则将正常的程序从运行区复制到备份区,以完成程序备份。2.根据权利要求1所述的可靠的单片机应用程序更新的方法,其特征在于,所述通讯模式的软件升级方法具体包括以下步骤:S11:向app发送升级指令,以使app跳转到引导区运行引导程序BootLoader;S12:通过通讯接口,将固件数据直接写入内部flash的运行区;S13:待固件下载完成后,校验运行区的固件数据,若校验成功,则跳转到运行区运行app,若校验失败,则从外部flash的备份区恢复原来的固件。3.根据权利要求1所述的可靠的单片机应用程序更新的方法,其特征在于,所述复制模式的软件升级方法具体包括以下步骤:S11:向app发送升级指令,并通过通讯接口,将固件数据直接写入外部flash中;S12:待固件下载完成后,校验外部flash中的固件数据,若校验成功,跳转到引导区运行引导程序BootLoader;S13:经引导程序BootLoader从外部flash中复制固件数据,...

【专利技术属性】
技术研发人员:李振文李振威贤健军
申请(专利权)人:深圳市智锂能源科技有限公司
类型:发明
国别省市:

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

1