1

I'm very inexperienced in STM32 programming and want to ask about firmware installment with ST-Link-Utility. I've a flight controller that must be flashed with custom firmware. The firmware provided by developer now is compiled as hex file and has starting address at 0x8008000. I need to change it's starting address to 0x2000000.

Is there any possibilities to do this, without modify source code of the hex file? What I need to do first in this case?

glts
  • 21,808
  • 12
  • 73
  • 94
rajadaudz
  • 11
  • 3
  • 1
    0x8'000'000 is the start of flash memory. Developer places it with 32 KiB offset, probably because he has some bootloader mechanism. 0x20'000'000 is the start of RAM but you can't have any data there permanently. And 0x2'000'000 you have mentioned is an invalid address. – Tagli Feb 08 '21 at 08:33
  • Where is this requirement of changing the starting address coming from? Developer? – A.R.C. Feb 08 '21 at 09:28
  • yes, it's from developer – rajadaudz Feb 08 '21 at 09:47
  • Maybe you can share the website of the developer of this custom firmware so we can take a look? – Tagli Feb 08 '21 at 12:01

2 Answers2

2

The firmware provided by developer now is compiled as hex file and has starting address at 0x8008000. I need to change it's starting address to 0x2000000.

This is not possible without recompiling / linking.

For example the controller must know where to find the vector table. And the position is defined somewhere in the hex.

theSealion
  • 1,082
  • 7
  • 13
0

I hope I got what you said. With ST-Link-Utility you can easily change offset of Flash Address this way: enter image description here

Check that and let me know.

Ali Esmailpor
  • 1,209
  • 3
  • 11
  • 22