当前位置:   article > 正文

STM32 CubeIDE中修改APP起始地址的方法_cubeide 0x8000000

cubeide 0x8000000

背景

在stm32上实现IAP编程(如通过BootLoader升级APP)功能时,比起常规直接通过j-link烧录的起始地址为默认(0x8000000)的APP,通过IAP烧录的APP的地址通常会有一个偏移。在以前的keil MDK中,修改很简单,只需照下图中修改即可。

keil MDK中修改APP起始地址

现在stm32官方推出的图形化配置、生成代码的软件CubeIDE慢慢推广了起来(虽然生成的代码执行很繁琐,但操作确实挺省事的,推荐使用),那么在CubeIDE中如何实现app起始地址的修改呢?

如何在CubeIDE中修改起始地址?

很简单,仅需两步,以STM32L496VGTX为例:
step1:修改链接文件的配置,具体操作
修改STM32L496VGTX_FLASH.ld中line40 -->
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
为 -->
FLASH (rx) : ORIGIN = 0x8020000, LENGTH = 1024K

step2:修改中断向量表偏移地址,具体操作
修改system_stm32l4xx.c中line126 -->
#define VECT_TAB_OFFSET 0x00
为 -->
#define VECT_TAB_OFFSET 0x20000
说明:0x20000是相对基地址的偏移,因为在我的项目中新APP地址为0x8020000,前面的0x20000空间用作BootLoader代码存储,上电默认执行BootLoader。

其他型号芯片对应的文件的修改步骤相同。

小结

执行以上操作后,新编译生成的代码即可有效,上电后,控制代码跳转至目标地址后即可正常运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56646
推荐阅读
相关标签
  

闽ICP备14008679号