AnsweredAssumed Answered

CAN bootloader: Go command works only for some uploads

Question asked by Krix N on Aug 23, 2017
Latest reply on Aug 25, 2017 by Clive One

I have managed to update firmware via CAN and the SSTM32 builtin bootloader.

I have a 40Kbyte firmware that works fine, after firmware upload I can run it with the "Go" command.

I have another 66Kbyte firmware that also uploads just fine, and the MCU acknowledges the "Go" command but the firmware fails to run. But I know the firmware was uploaded just fine, since it runs when I reboot the MCU.

 

The firmware upload procedure I use is:

1) global erase

2) read out some data to confirm erase

3) write new firmware (address 0x08000000 ...)

4) read out (some) data to confirm write

5) Go to address 0x08000000 ...

 

The manual talks about "vector table" as a possible reason. For both firmware builds, the file STM32L452RETx_FLASH.ld

contains the line

FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K

... which I assume reflects the firmware "run" address.

What am I doing wrong?

 

Disclaimer: I am a STM32 newbee. Really. Have not worked much with MCUs and firmware at all.

Outcomes