STM32CubeIDE v2.2.0 : target doesn't run after programming using J-Link, requires reset
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)
