cancel
Showing results for 
Search instead for 
Did you mean: 

Bootloader jumps to some crazy address, but only on some PCBs

SKarl.3
Associate II

I'm having a strange issue here. I have a custom board design using the STM32L452RETx.

I have 17 boards in front of me, and most of them work as expected: bootloader runs at power up, and when it times-out, it jumps to the main app ( at 0x08008000). Perfect.

However, 4 of theses boards don't correctly make the jump. Everything seems to run as expected stepping through the code, but then when the time for the jump comes, they will jump to some address like 0x40010400.

All the boards are running the same boot loader code. One thing is that I think that some (maybe all) of the that aren't working correctly might have been programmed with from CubeIDE, were as the others were programmed using the .bin file with STM32 Programmer.... but, I'm not totally sure if that is a perfect 1-1 relationship

I have gone back and reprogrammed some of those failing ones with STM32 Programmer app, not the IDE, and it didn't resolve the issues.

Any idea what may be going on here?

Steve

 

2 REPLIES 2

Probably some combination of power, clocking, and flash wait states..

On other parts, might look at the VCAP, or bulk capacitance on the supplies.

I'd probably recommend some kind of CRC or integrity check of exactly what's running from FLASH.

Perhaps look at ST's safety libraries (STL ?) for a sanity check of MCU / functionality.

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

Compare the flash on a working board to a non-working board to determine if they are the same. Should be identical regardless of how they were programmed, assuming the same program was used.

If you feel a post has answered your question, please click "Accept as Solution".