cancel
Showing results for 
Search instead for 
Did you mean: 

Changing program start address from 0x08000000 to 0x08020000 in STM32F769

Anand A
Associate III

Hello,

I have a use case to start user boot loader from 0x08020000 instead of 0x08000000 and 0th sector at 0x08000000 will be used to store read protected user data because of the sector size.

As per guidance from @Community member​ , i have made changes in linker file and in systeminit function. the change details are given below.

Linker changes which i made.

define symbol __ICFEDIT_intvec_start__ = 0x08020000;

define symbol __ICFEDIT_region_ROM_start__    = 0x08020000;

define symbol __ICFEDIT_region_ROM_end__      = 0x0803FFFF;

and in systeminit SCB->VTOR changed as below.

SCB->VTOR = 0x08020000;

after this change cstartup is calling main function in debug mode and works fine. But in normal operation after reset the program is not running. I think the jump to main function is not happening.

I am stuck at this point, what additional change i should do, Could some one help me on this.

Regards

AnanD

1 ACCEPTED SOLUTION

Accepted Solutions
Anand A
Associate III

Hello @Community member​ 

With option bytes address change code working as expected.

Thank you,

AnanD

View solution in original post

2 REPLIES 2

You'd need your loader code at 0x08000000 to transfer control​, or you'd need to change the start address in the option bytes.

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

Hello @Community member​ 

With option bytes address change code working as expected.

Thank you,

AnanD