cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U5A5 application doesn't run after power cycle but runs from debugger after flashing

Alex R
Senior

Hi,

I'm developing a new application for the STM32U5A5 processor. The application runs correctly if I program (flash) and debug with the JTAG/SWD debugger. Even after disconnecting the debugger, the application still runs, and it is possible to re-program again (multiple times), and restarts if the RST pin is driven low.

However, as soon as the eval board power is cycled, the application doesn't run at all. Reset Pin doesn't seem to reset the application, and it is necessary to run the debugger again (re-flashing not required) to get the application running again.

Test Setup:

Eval Board: NUCLEO-UA5AZJ-Q

Debugger: Embedded STLINK

Compiler/Debugger: ARM Keil MDK-ARM v5.39

TZEN Disabled (Global TrustZone security)

SWAP_BANK = Unchecked (Bank1 and Bank2 address not swapped)

nSWBOOT0 = Checked (Software BOOT0 taken from PH3/BOOT0 pin)

nBOOT0 = Checked (nBOOT0 = 1)

NSBOOTADD0 Value=0x100000 Address:0x08000000

NSBOOTADD1 Value=0x17f200 Address:0x0bf90000

 

See attached file for debug configuration file.

 

Questions:

1. Is there any hidden setting or register programming that the debugger does to run the application, but is not done after power cycle the board?

2. Is there a known workaround for this behavior?

 

Thanks!

Alex.

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Alex R
Senior

Hi,

After further analysis, it was determined that the application was indeed running, but was being blocked by a trace library (Percepio's Tracealyzer) when the debugger was not connected/enabled, or after power cycle.

 

Disabling the trace library allows the rest of the code to run as expected.

Regards,

Alex R.

View solution in original post

1 REPLY 1
Alex R
Senior

Hi,

After further analysis, it was determined that the application was indeed running, but was being blocked by a trace library (Percepio's Tracealyzer) when the debugger was not connected/enabled, or after power cycle.

 

Disabling the trace library allows the rest of the code to run as expected.

Regards,

Alex R.