I am trying to flash two application in flash (nano bootloader and one application). Bootloader starts from 0x0 to 0x8000. and my application starts from 0x20000 to 0x40000. But i cant jump from bootloader to my application. I have change application IVT to 0x20000 (SCB->VTOR = 0x20000) and start memory location to 0x20000. while flashing both bootloader and application the jump is not working.
In my bootloader
SCB->VTOR = 0x00020000 & 0x1FFFFF80;
Anything i am doing wrong.
Hello Sanja Behera,
Before jumping to the application, you have to change to application IVT, load the stack pointer of the application code to the SP register and then call/jump to the ResetISR of the application code. The stack pointer value is available at the first location (0x20000 + 0x00) of the .bin image and address of ResetISR at (0x20000 + 0x04). So after loading the value, try to jump to the application space.
Also refer this thread for more detail and how to implement them...