4 years, 6 months ago.

Bootloader jump

I am trying to read bin file from SD card and writing into flash memory. and trying to jump the application location. But it is jumping the wrong location. what could be the problem.

MCU - STM32F429zi

Application location = 0x0800c000

_disable_irq(); uint32_t JumpAddress = (*(IO uint32_t*)(APP_ADDRESS + 4)); pFunction Jump = (pFunction)JumpAddress; HAL_RCC_DeInit(); HAL_DeInit(); SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0;

SCB->VTOR = APP_ADDRESS; set_MSP(*(IO uint32_t*)(APP_ADDRESS)); Jump();

2 Answers

4 years, 6 months ago.

Hi Raj,

You have to write your own bootloader which jumps to the address Application location = 0x0800c000

Regards, Pekka

4 years, 6 months ago.

Although mbed has special command for bootloader jump mbed_start_application(ADDRESS), it is not implemented for every target i think :(