需要在flash中添加bootloader的话,需要对flash进行分区,即bootloader区和app区(程序运行区),主要记录在 Keil 平台和 STM32CubeIDE平台 上的中断向量表偏移配置,以偏移 0x2800 为例,即预留10k大小的空间给bootloader
Keil
修改flash起始地址
打开工程魔术棒,Target→IROM1,填入flash起始地址为 0x8000000 偏移 0x2800 后的 0x8002800 ,芯片flash大小是 256k(0x40000),需要减掉偏移量 0x2800 之后是 0x3D800

修改中断向量表偏移
打开 system_stm32f1xx.c 文件(注意该工程由 CubeMX 配置而来),在其96行左右的宏定义 USER_VECT_TAB_ADDRESS 默认是注释掉的,把注释删了,在98行有这个宏的定义判断
如果程序要运行在SRAM则取消101行注释并修改SRAM的相关偏移量,否则则是使用下面flash相关的宏配置,110行中断向量的偏移量和Flash起始位置偏移量是一样的为 0x00002800U
编译工程后进入Debug调试模式,打开内存监视器,在 0x8000000 地址开始都是

&spm=1001.2101.3001.5002&articleId=146394286&d=1&t=3&u=83f88663f9c44583b58ae2b073ccb8e7)
576

被折叠的 条评论
为什么被折叠?



