cancel
Showing results for 
Search instead for 
Did you mean: 

custom bootloader - jump to specific address

TPrio.1
Associate II

Hello guys,

I am trying to implement a custom bootloader based on stm32f103rb.

I would like to jump in a flash address page e.g 0x8004000

When i am calling the app_reset_handler(), debugger break at address 0xfffffffe with no debug information.

I appreciate if someone could guide me to resolve this issue.

Let me attach the code:

void jump_application(void)

{

void (*app_reset_handler)(void);

volatile uint32_t addr = 0x8004000;

HAL_RCC_DeInit();

SysTick->CTRL = 0;

SysTick->LOAD = 0;

SysTick->VAL = 0;

 __disable_irq();

 SCB->VTOR = (FLASH_BASE | 0x4000);

 app_reset_handler = (void*)(*(__IO uint32_t *)(addr + 4));

 __set_MSP(*(uint32_t *)addr);

 app_reset_handler();

}

1 ACCEPTED SOLUTION

Accepted Solutions

You need to get your application image properly loaded into that memory space, and you need to double check that in your code.

Best to understand the expectations of the CPU than just copy code.​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

4 REPLIES 4

Try validating the value before jumping ​to it. Sounds like the blank memory value of 0xFFFFFFFF

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

first of all, thank you for your response.

you are right, it doesnt get the desired value.

How should i give this to my pointer function?

You need to get your application image properly loaded into that memory space, and you need to double check that in your code.

Best to understand the expectations of the CPU than just copy code.​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
TPrio.1
Associate II

Ooo i was tired and i didnt understand what i have done!

Sorry for this, i have to implement my own bootloader code in order to get the application firmware and after that i have to jump to this location.

Thank you very much

Have a nice day