Skip to main content
Associate III
July 15, 2026
Question

STM32CubeIDE v2.2.0 : target doesn't run after programming using J-Link, requires reset

  • July 15, 2026
  • 3 replies
  • 63 views

Since updating to STM32CubeIDE v2.2.0 (and on a fresh install of v2.2.0), when I program my target STM32 (F413ZH) using a Segger J-Link, the code does not run until I power cycle the target. I’m fairly certain this issue coincided with me switching from CubeIDE 2.1.1 to 2.2.0.

I have tried all 3 reset methods in the Debugger settings (Normal, Core, ResetPin), and they all exhibit the same issue. With ResetPin selected, a scope capture of the NRST line shows it asserting only once at the beginning of programming.

I also tried STM32CubeProgrammer, with the J-Link dll update to v9.56, and it does work when the “Run after programming” box checked.

As far as I can remember I didn’t change anything in the Run configuration when switching from 2.1.1 to 2.2.0.  The GBD console log (below) shows “Starting target CPU...” and then right after “Debugger requested to halt target...Target halted” and then it is never resumed or started again. Additionally, I believe the GDB console in v2.1.1 had more at the end, like “Shutting down...” or something. It’s not clear from the log whether or not GDB is correctly releasing or closing, but based on what I’m seeing, it doesn’t seem like it is.

Has anyone encountered this problem, and have any suggestions on a fix? I would like the code to run on the target after programming without needing a power cycle. Let me know if any additional information is needed.

Run configuration Debugger settings:

 

GDB Console log:

SEGGER J-Link GDB Server V9.42 Command Line Version

JLinkARM.dll V9.42 (DLL compiled May 6 2026 12:25:27)

Command line: -port 2331 -s -device STM32F413ZH -endian little -speed 4000 -if swd -vd
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: STM32F413ZH
Target device parameters: none
Target interface: SWD
Target interface speed: 4000kHz
Target endian: little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link V12 compiled Jun 25 2026 10:23:52
Hardware: V12.00
S/N: 822004739
Feature(s): GDB
Checking target voltage...
Target voltage: 3.37 V
Listening on TCP/IP port 2331
Connecting to target...
Connected to target
Waiting for GDB connection...Connected to 0000:0000:0000:0000:0000:0000:0000:0001
GDB client (conn. 996) requested target.xml from GDB Server
Reading common registers:
Reading register 'r0' from hardware = 0x00000003
Reading register 'r1' from hardware = 0x00000000
Reading register 'r2' from hardware = 0x08160028
Reading register 'r3' from hardware = 0x00000001
Reading register 'r4' from hardware = 0x00000000
Reading register 'r5' from hardware = 0x00000001
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0x00000002
Reading register 'sp' from hardware = 0x2004FFD8
Reading register 'lr' from hardware = 0x08010A2B
Reading register 'pc' from hardware = 0x0801049E
Reading register 'xpsr' from hardware = 0x61000000
Read 4 bytes @ address 0x0801049E (Data = 0x4A8A4603)
Reading register 'msp' = 0x2004FFD8
Reading register 'psp' = 0x00000000
Reading 64 bytes @ address 0x2004FFC0
Read 4 bytes @ address 0x08010A2A (Data = 0x681A4B18)
Received monitor command: ReadAPEx 0x0 0xF8
O.K.:0xE00FF003
Received monitor command: ReadMemAP 0x0 0xE00FFFD0 0x8 0x0
O.K.:0x00000000,0x00000000,0x00000000,0x00000000,0x00000011,0x00000004,0x0000000A,0x00000000
Connected to 0000:0000:0000:0000:0000:0000:0000:0001
GDB client (conn. 1064) requested target.xml from GDB Server
Reading common registers:
Reading register 'r0' from hardware = 0x00000003
Reading register 'r1' from hardware = 0x00000000
Reading register 'r2' from hardware = 0x08160028
Reading register 'r3' from hardware = 0x00000001
Reading register 'r4' from hardware = 0x00000000
Reading register 'r5' from hardware = 0x00000001
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0x00000002
Reading register 'sp' from hardware = 0x2004FFD8
Reading register 'lr' from hardware = 0x08010A2B
Reading register 'pc' from hardware = 0x0801049E
Reading register 'xpsr' from hardware = 0x61000000
Read 4 bytes @ address 0x0801049E (Data = 0x4A8A4603)
Reading register 'msp' = 0x2004FFD8
Reading register 'psp' = 0x00000000
Reading 64 bytes @ address 0x2004FFC0
Read 4 bytes @ address 0x08010A2A (Data = 0x681A4B18)
Received monitor command: reset
Resetting target
Downloading 472 bytes @ address 0x08000000 - Verified OK
Downloading 63440 bytes @ address 0x08010000 - Verified OK
Downloading 51716 bytes @ address 0x0801F7D0 - Verified OK
Downloading 28444 bytes @ address 0x0802C1D4 - Verified OK
Downloading 8 bytes @ address 0x080330F0 - Verified OK
Downloading 4 bytes @ address 0x080330F8 - Verified OK
Downloading 4 bytes @ address 0x080330FC - Verified OK
Downloading 55876 bytes @ address 0x08033100 - Verified OK
Downloading 64 bytes @ address 0x0815FFC0 - Verified OK
Downloading 252 bytes @ address 0x08160000 - Verified OK
Writing register 'pc' = 0x08013734
Starting target CPU...
GDB closed TCP/IP connection (Socket 1064)
Debugger requested to halt target...
...Target halted (PC = 0x00000000080138CE)
Reading common registers:
Reading register 'r0' from hardware = 0x0000000A
Reading register 'r1' from hardware = 0x40000000
Reading register 'r2' from hardware = 0x00000000
Reading register 'r3' from hardware = 0x2000E3E4
Reading register 'r4' from hardware = 0x0000000B
Reading register 'r5' from hardware = 0x0000000C
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0xFFFFFFFD
Reading register 'sp' from hardware = 0x2004FFD8
Reading register 'lr' from hardware = 0x080138CB
Reading register 'pc' from hardware = 0x080138CE
Reading register 'xpsr' from hardware = 0x81000000
Read 4 bytes @ address 0x080138CE (Data = 0xBD38D3FA)
Reading register 'msp' = 0x2004FFD8
Reading register 'psp' = 0x00000000
Reading 64 bytes @ address 0x2004FFC0
Read 4 bytes @ address 0x08011E54 (Data = 0xF7FF200F)
GDB closed TCP/IP connection (Socket 996)

 

3 replies

MGogr.1
Senior
July 16, 2026

Revert to old version 2.1.1

DazaiAuthor
Associate III
July 16, 2026

This issue does seem to be a bug in CubeIDE v2.2.0.  I reinstalled v2.1.1 and it started the code after programming.  The last two lines in this output from the v2.1.1 GDB console is missing in the v2.2.0 output, so I suspect v2.2.0 is not restoring the target state and releasing the J-Link connection:

Read 4 bytes @ address 0x08011B0A (Data = 0x47706818)
GDB closed TCP/IP connection (Socket 948)
Restoring target state and closing J-Link connection...
Shutting down...

Full v2.1.1 GDB console output:

SEGGER J-Link GDB Server V9.24 Command Line Version

JLinkARM.dll V9.24 (DLL compiled Mar 3 2026 16:24:17)

Command line: -port 2331 -s -device STM32F413ZH -endian little -speed 4000 -if swd -vd
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: STM32F413ZH
Target device parameters: none
Target interface: SWD
Target interface speed: 4000kHz
Target endian: little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link V12 compiled Jun 25 2026 10:23:52
Hardware: V12.00
S/N: 822004739
Feature(s): GDB
Checking target voltage...
Target voltage: 3.18 V
Listening on TCP/IP port 2331
Connecting to target...
Halting core...
Connected to target
Waiting for GDB connection...Connected to 0000:0000:0000:0000:0000:0000:0000:0001
GDB client (conn. 948) requested target.xml from GDB Server
Reading common registers:
Reading register 'r0' from hardware = 0x40020C00
Reading register 'r1' from hardware = 0x08000000
Reading register 'r2' from hardware = 0x2000E3E8
Reading register 'r3' from hardware = 0x00000000
Reading register 'r4' from hardware = 0x0000000C
Reading register 'r5' from hardware = 0x00000000
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0x00000008
Reading register 'sp' from hardware = 0x2004FFF0
Reading register 'lr' from hardware = 0x08011E0F
Reading register 'pc' from hardware = 0x08011F02
Reading register 'xpsr' from hardware = 0x81000000
Read 4 bytes @ address 0x08011F02 (Data = 0x68124A08)
Received monitor command: ReadAPEx 0x0 0xF8
O.K.:0xE00FF003
Received monitor command: ReadMemAP 0x0 0xE00FFFD0 0x8 0x0
O.K.:0x00000000,0x00000000,0x00000000,0x00000000,0x00000011,0x00000004,0x0000000A,0x00000000
Connected to 0000:0000:0000:0000:0000:0000:0000:0001
GDB client (conn. 984) requested target.xml from GDB Server
Reading common registers:
Reading register 'r0' from hardware = 0x40020C00
Reading register 'r1' from hardware = 0x08000000
Reading register 'r2' from hardware = 0x2000E3E8
Reading register 'r3' from hardware = 0x00000000
Reading register 'r4' from hardware = 0x0000000C
Reading register 'r5' from hardware = 0x00000000
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0x00000008
Reading register 'sp' from hardware = 0x2004FFF0
Reading register 'lr' from hardware = 0x08011E0F
Reading register 'pc' from hardware = 0x08011F02
Reading register 'xpsr' from hardware = 0x81000000
Read 4 bytes @ address 0x08011F02 (Data = 0x68124A08)
Received monitor command: reset
Resetting target
Downloading 472 bytes @ address 0x08000000 - Verified OK
Downloading 63440 bytes @ address 0x08010000 - Verified OK
Downloading 51764 bytes @ address 0x0801F7D0 - Verified OK
Downloading 28444 bytes @ address 0x0802C204 - Verified OK
Downloading 8 bytes @ address 0x08033120 - Verified OK
Downloading 4 bytes @ address 0x08033128 - Verified OK
Downloading 4 bytes @ address 0x0803312C - Verified OK
Downloading 55876 bytes @ address 0x08033130 - Verified OK
Downloading 64 bytes @ address 0x0815FFC0 - Verified OK
Downloading 252 bytes @ address 0x08160000 - Verified OK
Writing register 'pc' = 0x08013764
Starting target CPU...
GDB closed TCP/IP connection (Socket 984)
Debugger requested to halt target...
...Target halted (PC = 0x0000000008011B0A)
Reading common registers:
Reading register 'r0' from hardware = 0x00000009
Reading register 'r1' from hardware = 0x40000000
Reading register 'r2' from hardware = 0x00000000
Reading register 'r3' from hardware = 0x2000E3FC
Reading register 'r4' from hardware = 0x0000000B
Reading register 'r5' from hardware = 0x0000000C
Reading register 'r6' from hardware = 0x00000000
Reading register 'r7' from hardware = 0x00000000
Reading register 'r8' from hardware = 0x00000000
Reading register 'r9' from hardware = 0x00000000
Reading register 'r10' from hardware = 0x00000000
Reading register 'r11' from hardware = 0x00000000
Reading register 'r12' from hardware = 0xFFFFFFFD
Reading register 'sp' from hardware = 0x2004FFD8
Reading register 'lr' from hardware = 0x080138FB
Reading register 'pc' from hardware = 0x08011B0A
Reading register 'xpsr' from hardware = 0x81000000
Read 4 bytes @ address 0x08011B0A (Data = 0x47706818)
GDB closed TCP/IP connection (Socket 948)
Restoring target state and closing J-Link connection...
Shutting down...

 

Karl Yamashita
Principal
July 22, 2026

I concur that after updating from 2.1.1 to 2.2.0 today, after programming Nucleo-F411RE with a J-Link that the FW doesn’t run after completion.

You have to manually press the reset button on a Nucleo board to run the FW.

With 2.1.1, it would run after programming.

If a reply has proven helpful, click on Accept as Solution so that it'll show at top of the post.CAN Jammer an open source CAN bus hacking toolCANableV3 Open Source