网上关于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中再开启中断。
原文地址:https://www.cnblogs.com/shlb/p/12235401.html
时间: 2024-11-10 13:53:28