This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

STM32F100xx custom bootloader to application jump

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..

Parents
  • 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

Reply
  • 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

Children