BootLoader和APP独立编译,独立烧写。


一、BootLoader的地址空间配置

假设BootLoader需要占用0x2000字节的空间。

BootLoader配置IROM1起始0x08000000,size为0x2000

BootLoader配置IRAM1起始0x20000100,(size需要减少0x100)


二、APP的地址空间配置

根据在startup_xx.s中__Vectors和__Vectors_End之间的中断入口函数数量计算APP的向量表的大小

比如有50个DCD定义,则APP的向量表大小为50*4=200(0xC8)个字节


APP配置IROM1起始0x08002000  (size需要减少0x2000)

APP配置IRAM1起始0x20000000+0xC8  (size需要减少0xC8)


三、BootLoader跳转方法

1)BootLoader跳转到APP之前,把0x08000000~0x080000C8复制到SRAM的0x20000000~0x200000C8中

2)先关闭中断,然后配置SYSCFG_CFGR1,把SRAM映射在 0x00000000

3)接下来设置栈顶指针MSP为0x08002000的内容对应的地址

4)跳转到APP入口地址,即0x08002000+4的内容对应的地址(APP内开中断)


四、参考文档

http://www.51hei.com/bbs/dpj-40235-1.html

STM32F0系列MCU中断向量表的重映射


https://www.cnblogs.com/andyzhao365/p/6576718.html

关于Cortex M0系列MCU中断向量表重映射问题


https://blog.csdn.net/qq_39340220/article/details/108882352

Cortex m0 做bootloader中断向量表重映射


https://blog.csdn.net/weixin_45444963/article/details/144692268

STM32在bootloader跳转到application时设置MSP



本文链接地址: ARM Cortex-M0 的 BootLoader 跳转到 APP 的一种方法
https://blog.qingfengju.com/index.asp?id=458

分类:嵌入式/电子 查看次数:9 发布时间:2025/11/19 12:36:04