Question
Jump To Application From
Hello,
I am working on a custom bootloader for STM32F105 which it is possible to write a bin file into the flash via CAN bus(CAN2).
My issue is that the part of bootloader to jump to application doesn't work.
Here is the jump function code:
#define MAIN_PROGRAM_START_ADDRESS 0x08002000
void JumpToApplication(void)
{
JumpAddress = *(__IO uint32_t*)(MAIN_PROGRAM_START_ADDRESS + 4);
Jump_To_Application = (pFunction) JumpAddress;
__HAL_RCC_GPIOC_CLK_DISABLE();
__HAL_RCC_GPIOD_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOA_CLK_DISABLE();
HAL_RCC_DeInit();
HAL_DeInit();
SysTick->CTRL = 0;
SysTick->LOAD = 0;
SysTick->VAL = 0;
/**
* Step: Disable all interrupts
*/
__disable_irq();
__set_MSP(*(volatile uint32_t*) MAIN_PROGRAM_START_ADDRESS);
Jump_To_Application();
}Function HAL_RCC_DeInit() jumps directly to HardFault_Handler(). I am using an external crystal ocsilator 8MHz.
Without calling HAL_RCC_DeInit(), the Jump_To_Application() jumps directly to HardFault_Handler().
Any idea?
Thank you.
