STM32F030在线升级

Posted shlb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F030在线升级相关的知识,希望对你有一定的参考价值。

网上关于STM32F030在线升级的帖子有不少,建议先看官方文档先。

技术图片

 图1 官方参考手册

 

STM32F030有三种Boot方式。

技术图片

图 1.1  三种启动模式的官方说明

 

可以利用Physical remap实现在线升级。

技术图片

图 1.2  Physical remap

 

图1.2是官方文档对Physical remap的说明,可以参考AN4065,该文档对Demo代码有详细的说明。

 

将引导程序flash地址设为0x0800000,启动后,通过串口接收要升级的APP代码,该代码可从任意地址开始(开发环境设定,例如0x0803000)将APP写入flash相应位置,然后跳转到APP代码。

技术图片

图2.1. APP中要将0x200000开始的空间分配给中断向量表

 

注意,APP代码是直接复制到0x0803000的地址上去的,中断向量表在Flash里面,所以在APP启动的时候,需要把中断向量表复制到RAM的起始地址中去,并将系统配置成从SRAM引导,以便中断向量表能被正确引用。

技术图片

图2.2. APP中要将中断向量表复制到0x200000并启动SRAM引导模式

 

APP中要将中断向量表复制到0x200000并启动SRAM引导模式(SYSCFG_MemoryRemapConfig)。

 

引导程序接收和烧录代码就不多讲了,因应用而异。官方代码给的是通过超级终端,采用YMODEM协议传输,烧写完毕后简单跳转。

技术图片

图3. 引导程序简单跳转

 

注意,官方提供的Demo代码比较简单,在跳转前还应该注意关闭中断,跳转后在APP中再开启中断。

以上是关于STM32F030在线升级的主要内容,如果未能解决你的问题,请参考以下文章

STM32F030 和 BOOT0 引脚

刚看到stm32f030的消息,stm8s还有意义吗

STM32F030 BootLoader与应用程序的跳转设置

STM32F030 定时器多次溢出才触发中断的问题

STM32F030 IO口外部中断应用

STM32F030F4 BLDC