2024-09-04 12:05 AM - edited 2024-09-04 01:44 AM
Hi, I have some problem about IAP.
It's not working application after jump from custom boot.
- MCU : Stm32F446RC
- Board : Custom board
- Boot address : 0x08000000 ~ 0x0801FFFF (128k)
- Application address : 0x08020000 (384k)
- Custom Boot Flash.ld
- Application Flash.ld
- Application system_stm32f4xx.c
- Jump to App code
I got the problem here
- HAL_Init() -> HAL_InitTick(TICK_INT_PRIORITY) -> HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn) in stm32f4xx_hal_timebase_tim.c
Anyone have some solution?
Please answer me.
Thanks.
Solved! Go to Solution.
2024-09-05 07:29 AM
Ahh you dont read i write RAM and this is 128k only. Then vector offset cant be 0x20000.
Comment out this and all works
//#define VECT_TAB_SRAM
2024-09-04 10:32 AM
Hello @TaronKim
What is the value of Application Start address?
I advise you refer to this article: How to jump to system bootloader from application ... - STMicroelectronics Community
2024-09-04 10:39 AM - edited 2024-09-04 10:40 AM
>>Anyone have some solution? Please answer me.
Use the Debugger, and step over the code.
Make sure that the vector table has viable content, and not filled with 0xFFFFFFFF
Failure suggests you're jumping anyway, or you reactivate an interrupt and it vectors there. Perhaps validate entire image say with signing or CRC.
Be a bit more circumspect before changing the SCB->VTOR and handing off control. Instrument your code so it's more apparent what's happening and why.
2024-09-04 11:25 AM
Your config cant work . You set RAM vectors with offset to non existed RAM area...
2024-09-04 05:09 PM - edited 2024-09-04 05:14 PM
-it's custom bootloader address
-it's application address
i got the problem after Jump from boot to application.
bootloader firmware is working well
2024-09-05 12:20 AM
I thought RC have 256k bytes memory, so it makes problem.
So i changed RC to RE. Re have 512k bytes memory.
But it's same problem..
2024-09-05 07:29 AM
Ahh you dont read i write RAM and this is 128k only. Then vector offset cant be 0x20000.
Comment out this and all works
//#define VECT_TAB_SRAM
2024-09-05 07:48 AM
>>But it's same problem..
Define the "problem" better
Show that SCB->VTOR = 0x08020000
Show what's happening as you step into the application
Show the point of failure, with registers and disassembly
Instrument so you can dump peripheral and cpu registers
If failing interrupts, show NVIC, show Vectors
2024-09-05 09:11 PM
Omg.. thanks a lot.
it's working now..
why i did..