IAP Jump to application not working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-04 12:05 AM - edited ‎2024-09-04 1: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.
- Labels:
-
STM32F4 Series
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-05 7: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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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
Thanks
Imen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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.
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-04 11:25 AM
Your config cant work . You set RAM vectors with offset to non existed RAM area...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-04 5:09 PM - edited ‎2024-09-04 5: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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-05 7: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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-05 7: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
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-09-05 9:11 PM
Omg.. thanks a lot.
it's working now..
why i did..
