hello all, I have writtten an IAP for STM32F100RBT6B and trying to jump to my LED blinking aplication.
bootloader start address : 0x08000000 application start address:0x08009000
I am using the below code to jump from bootloader to application.. Code:
typedef (void )(*pFunction)(void); pFunction Jump_To_Application; uint32_t JumpAddress;
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000) {
JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_MSP(*(__IO uint32_t*) ApplicationAddress);
Jump_To_Application(); }
when my pointer reaches "Jump_To_Application();" nothing gets updated in PC,SP.. or please suggest how can i see whether my bootloader code is jumping to application or not.
I have gone through a lot of post here but didn't find my answer. I am running bootloader code in debug mode. and using Atollic IDE. Plz help.. thanks in advance..
Thanks for the reply, I've compiled my application which is to be loaded at address 0x08009000.For that I made the following changes: Settings done: 1) Linker script file (.ld): FLASH (rx) : ORIGIN = 0x08009000, LENGTH = 80K 2) system_stm32f10x.c Line 132: #define VECT_TAB_OFFSET 0x9000
after all settings after compilation the .isr vector in .map file doesnot change..do i need to make anymore changes?
thanks
do i need to make anymore changes?
I wouldn't know. I'm using different tools these days. Let's hope someone else answers this.