cancel
Showing results for 
Search instead for 
Did you mean: 

Issue related to application start address in bootloader

Bui Tuan
Associate II

Hello everyone,

I am facing an isssue related to Bootloader project in STM32F407VGT6. My bootloader placed at start address of internal flash memory 0x0800 0000 and occupied 16kB. My application's size is 74kB. If the application is placed at 0x0806 0000, it works well. But when i move it to 0x0801 0000, when the application is executed, it seems that the threads does not execute (i used FreeRTOS to create a thread to blink LED but LED did not blink). The peripherals still work and have no faults. In two cases, i changed the VTOR register's value to correspondant application start address. The only difference is application start address. Do you know where i was wrong?

Thank you.

2 REPLIES 2

I'd probably review the .MAP and .LST files to understand what the build process generated, and the content of the various tables, and initialization code, etc.

The Vector Table contains absolute addresses for functions, and is the most address dependent part of the output.

The table has expectations on memory alignment, but is not likely the issue here.

One would typically use a debugger, and understand the transition between sections of code, and the points of failure.

Have an effective Hard Fault Handler, this will catch a lot of the grosser failures.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Thank you for your responding,

I reviewed .MAP files and only difference here is the addresses in .MAP file is shifted corresponding to the application start address. When the application is placed at 0x0801 0000, there is no fault reports, all peripherals work well and FreeRTOS also works (i saw the PSP is used, prvIdleTask is executed) but my threads did not work. When i move application to 0x0806 0000 and set VTOR to this value, everything work perfectly. It's so magic and so far, i don't know where i was wrong.