cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F469AIHX: fails when using Bootloader + Application split at over 128Mhz

luisfynn1
Associate III

I am developing firmware with a Boot region and Application region split for OTA firmware update on STM32F469AIHX.

[Environment]
- MCU: STM32F469AIHX (Max core clock: 180MHz)
- IDE: STM32CubeIDE
- HAL Library: STM32CubeF4
- Flash layout: Bootloader (Sector 0~N) / Application (Sector N+1~)

[Problem]
When the flash is split into Boot and App regions, the system does not operate correctly at 180MHz.
However, setting the core clock to 128MHz works fine.
Also, the Application running alone from address 0x08000000 works fine at 180MHz.

[What I have already tried]
- Reset CubeMX configuration to default, only changed flash memory layout
- Verified VTOR is correctly set to APPLICATION_ADDRESS
- Verified SysTick_Handler calls HAL_IncTick()
- Confirmed uwTick does not increment when running at 180MHz after jump
- Removed HAL_RCC_DeInit() / HAL_DeInit() before jump in bootloader
- Tried setting SCB->VTOR before HAL_Init() in application main()

[Bootloader jump code]

__disable_irq();
SysTick->CTRL = 0;
SysTick->LOAD = 0;
SysTick->VAL = 0;
SCB->VTOR = APPLICATION_ADDRESS;
JumpAddress = *(__IO uint32_t*)(APPLICATION_ADDRESS + 4);
JumpToApplication = (pFunction)JumpAddress;
__set_MSP(*(__IO uint32_t*)APPLICATION_ADDRESS);
JumpToApplication();

[Question]
1. Why does 180MHz fail only when Boot+App split is used?
2. Is there any specific RCC or Flash latency configuration required when jumping from bootloader to application?
3. Could Flash wait states (FLASH_ACR latency) be the root cause?

Any advice would be greatly appreciated.
Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions

This issue has cleared. It's my fault.

View solution in original post

3 REPLIES 3
mƎALLEm
ST Employee

Hello,

Are bootloader and application running at the same system clock frequency? are you changing the flash wait states if the frequency is changing?

So if they are running at 180MHz the application doesn't start while if they are running at 128Mhz the application does?

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

This issue has cleared. It's my fault.

@luisfynn1 

You need to provide the solution and the exact issue and accept it rather than you tell that you've solved it without giving any hint.

So please provide the solution of your issue.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.