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中再开启中断。

猜你喜欢

转载自www.cnblogs.com/shlb/p/12235401.html