Skip to content

makefiles/tools/openocd-adapters: let OpenOCD auto-select transport#21871

Merged
crasbe merged 1 commit intoRIOT-OS:masterfrom
crasbe:pr/stm32_openocd_adapter
Nov 11, 2025
Merged

makefiles/tools/openocd-adapters: let OpenOCD auto-select transport#21871
crasbe merged 1 commit intoRIOT-OS:masterfrom
crasbe:pr/stm32_openocd_adapter

Conversation

@crasbe
Copy link
Copy Markdown
Contributor

@crasbe crasbe commented Nov 11, 2025

Contribution description

As described in #21781, different OpenOCD versions require different transport protocols for the ST-Link and there is no common ground except for "let OpenOCD decide".

Therefore we do exactly that and let OpenOCD decide.

This PR also removes the forced prefixing, because perhaps we want to select swd and not hla_swd and the current code does not allow it.

Testing procedure

Flash an STM32 based board with OpenOCD 0.11, 0.12 Release and 0.12 Upstream, preferrably one based on an ST-Link V2 and ST-Link V3, also one with a new(ish) microcontroller such as the STM32C0.

Insert Test Traces here

Issues/PRs references

Fixes #21781.
Partly reverts #14480.

@crasbe crasbe added Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs labels Nov 11, 2025
@github-actions github-actions bot added Area: build system Area: Build system Area: tools Area: Supplementary tools labels Nov 11, 2025
@maribu
Copy link
Copy Markdown
Member

maribu commented Nov 11, 2025

This looks exactly like a downstream fix I need to use on Alpine when using the openocd-git instead of the openocd package.

@crasbe
Copy link
Copy Markdown
Contributor Author

crasbe commented Nov 11, 2025

Test Traces:

OpenOCD v0.12.0 upstream with Nucleo-C071RB:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-c071rb OPENOCD=/usr/local/bin/openocd make -C examples/basic/h
ello-world flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-c071rb" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   6900       8    2292    9200    23f0 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-c071rb/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-c071rb/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.12.0+dev-02261-gab22b0bf8-dirty (2025-11-11-13:27)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : DEPRECATED: auto-selecting transport "swd (dapdirect)". Use 'transport select swd' to suppress this message.
swd (dapdirect)
srst_only separate srst_nogate srst_open_drain connect_assert_srst
DEPRECATED! use 'tcl port' not 'tcl_port'
DEPRECATED! use 'telnet port', not 'telnet_port'
DEPRECATED! use 'gdb port', not 'gdb_port'
Info : STLINK V2J45M31 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.248532
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : SWD DPIDR 0x0bc11477
Info : [stm32c0x.cpu] Cortex-M0+ r0p1 processor detected
Info : [stm32c0x.cpu] target has 4 breakpoints, 2 watchpoints
Info : [stm32c0x.cpu] Examination succeed
Info : [stm32c0x.cpu] starting gdb server on 0
Info : Listening on port 36137 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32c0x.cpu       cortex_m   little stm32c0x.cpu       unknown
[stm32c0x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x08000858 msp: 0x20000200
Info : device idcode = 0x10016493 (STM32C071xx - Rev Z : 0x1001)
Info : RDP level 0 (0xAA)
Info : flash size = 128 KiB
Info : flash mode : single-bank
Info : Padding image section 1 at 0x08001afc with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08001b00 .. 0x08001fff
auto erase enabled
wrote 6912 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-c071rb/hello-world.elf in 0.338345s (19.950 KiB/s)
verified 6908 bytes in 0.136267s (49.506 KiB/s)
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.11.0 Release with Nucleo-F302R8:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-f302r8 OPENOCD=/usr/bin/openocd make -C examples/basic/hello-w
orld flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-f302r8" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   7584       8    2304    9896    26a8 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_assert_srst

Info : clock speed 1000 kHz
Info : STLINK V2J45M31 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.253088
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f3x.cpu on 0
Info : Listening on port 36551 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f3x.cpu       hla_target little stm32f3x.cpu       reset

Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x080007d0 msp: 0x20000200
Info : device id = 0x10016439
Info : flash size = 64kbytes
auto erase enabled
wrote 8192 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf in 0.605429s (13.214 KiB/s)

verified 7592 bytes in 0.305499s (24.269 KiB/s)

Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.12.0 Release with Nucleo-F302R8:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-f302r8 OPENOCD=/usr/local/bin/openocd make -C examples/basic/hello-world flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-f302r8" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   7584       8    2304    9896    26a8 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.12.0-01004-g9ea7f3d64 (2025-11-11-14:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_assert_srst

Info : clock speed 1000 kHz
Info : STLINK V2J45M31 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.247800
Info : [stm32f3x.cpu] Cortex-M4 r0p1 processor detected
Info : [stm32f3x.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f3x.cpu on 0
Info : Listening on port 35759 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f3x.cpu       hla_target little stm32f3x.cpu       reset

Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
[stm32f3x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x080007d0 msp: 0x20000200
Info : device id = 0x10016439
Info : flash size = 64 KiB
Warn : Adding extra erase range, 0x08001da8 .. 0x08001fff
auto erase enabled
wrote 7592 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf in 0.572808s (12.943 KiB/s)

verified 7592 bytes in 0.271482s (27.310 KiB/s)

Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.12.0 Upstream with Nucleo-F302R8:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-f302r8 OPENOCD=/usr/local/bin/openocd make -C examples/basic/h
ello-world flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-f302r8" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   7584       8    2304    9896    26a8 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.12.0+dev-02261-gab22b0bf8-dirty (2025-11-11-13:27)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : DEPRECATED: auto-selecting transport "swd (dapdirect)". Use 'transport select swd' to suppress this message.
swd (dapdirect)
srst_only separate srst_nogate srst_open_drain connect_assert_srst
DEPRECATED! use 'tcl port' not 'tcl_port'
DEPRECATED! use 'telnet port', not 'telnet_port'
DEPRECATED! use 'gdb port', not 'gdb_port'
Info : STLINK V2J45M31 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.253088
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : SWD DPIDR 0x2ba01477
Info : [stm32f3x.cpu] Cortex-M4 r0p1 processor detected
Info : [stm32f3x.cpu] target has 6 breakpoints, 4 watchpoints
Info : [stm32f3x.cpu] Examination succeed
Info : [stm32f3x.cpu] starting gdb server on 0
Info : Listening on port 41073 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f3x.cpu       cortex_m   little stm32f3x.cpu       unknown
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
[stm32f3x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000a68 msp: 0x20000200
Info : device id = 0x10016439
Info : flash size = 64 KiB
Warn : Adding extra erase range, 0x08001da8 .. 0x08001fff
auto erase enabled
wrote 7592 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-f302r8/hello-world.elf in 0.622204s (11.916 KiB/s)
verified 7592 bytes in 0.299124s (24.786 KiB/s)
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.11.0 with Nucleo-WL55JC (this has an ST-Link V3 on board) WITHOUT fix from #21615 applied:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-wl55jc OPENOCD=/usr/bin/openocd make -C examples/basic/hello-w
orld flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-wl55jc" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   8292       8    2292   10592    2960 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_assert_srst

Info : clock speed 500 kHz
Info : STLINK V3J15M7 (API v3) VID:PID 0483:374E
Info : Target voltage: 3.259416
Info : stm32wlx.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32wlx.cpu on 0
Info : Listening on port 42395 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32wlx.cpu       hla_target little stm32wlx.cpu       reset

Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000898 msp: 0x20000200
Info : device idcode = 0x10036497 (STM32WLEx - Rev 'unknown' : 0x1003)
Info : flash size = 256kbytes
Info : flash mode : single-bank
Info : Padding image section 1 at 0x0800206c with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08002070 .. 0x080027ff
auto erase enabled
wrote 8304 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf in 0.666743s (12.163 KiB/s)

verified 8300 bytes in 0.473352s (17.124 KiB/s)

Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.12.0 release with Nucleo-WL55JC WITH fix from #21615 applied:

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-wl55jc OPENOCD=/usr/local/bin/openocd make -C examples/basic/hello-world flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-wl55jc" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/cpu/cortexm_common/periph
   text    data     bss     dec     hex filename
   8292       8    2292   10592    2960 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.12.0-01004-g9ea7f3d64 (2025-11-11-14:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_assert_srst

Info : clock speed 500 kHz
Info : STLINK V3J15M7 (API v3) VID:PID 0483:374E
Info : Target voltage: 3.259416
Info : [stm32wlx.cpu0] Cortex-M4 r0p1 processor detected
Info : [stm32wlx.cpu0] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32wlx.cpu0 on 0
Info : Listening on port 37041 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32wlx.cpu0      hla_target little stm32wlx.cpu       reset

Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
[stm32wlx.cpu0] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000758 msp: 0x20000200
Info : device idcode = 0x10036497 (STM32WLE/WL5x - Rev 'unknown' : 0x1003)
Info : RDP level 0 (0xAA)
Info : flash size = 256 KiB
Info : flash mode : single-bank
Info : Padding image section 1 at 0x0800206c with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08002070 .. 0x080027ff
auto erase enabled
wrote 8304 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf in 0.638582s (12.699 KiB/s)

verified 8300 bytes in 0.434203s (18.667 KiB/s)

Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

OpenOCD v0.12.0 upstream with Nucleo-WL55JC (with fix from #21615 applied):

cbuec@W11nMate:~/RIOTstuff/riot-guides/RIOT$ BOARD=nucleo-wl55jc OPENOCD=/usr/local/bin/openocd make -C examples/basic/hello-world flash -j
make: Entering directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'
Building application "hello-world" for "nucleo-wl55jc" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/pkg/cmsis/
...
"make" -C /home/cbuec/RIOTstuff/riot-guides/RIOT/sys/stdio_uart
   text    data     bss     dec     hex filename
   8292       8    2292   10592    2960 /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
/home/cbuec/RIOTstuff/riot-guides/RIOT/dist/tools/openocd/openocd.sh flash /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf
### Flashing Target ###
Open On-Chip Debugger 0.12.0+dev-02261-gab22b0bf8-dirty (2025-11-11-13:27)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : DEPRECATED: auto-selecting transport "swd (dapdirect)". Use 'transport select swd' to suppress this message.
swd (dapdirect)
srst_only separate srst_nogate srst_open_drain connect_assert_srst
DEPRECATED! use 'tcl port' not 'tcl_port'
DEPRECATED! use 'telnet port', not 'telnet_port'
DEPRECATED! use 'gdb port', not 'gdb_port'
Info : STLINK V3J15M7 (API v3) VID:PID 0483:374E
Info : Target voltage: 3.261008
Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : clock speed 200 kHz
Info : SWD DPIDR 0x6ba02477
Info : [stm32wlx.cpu0] Cortex-M4 r0p1 processor detected
Info : [stm32wlx.cpu0] target has 6 breakpoints, 4 watchpoints
Info : [stm32wlx.cpu0] Examination succeed
Info : [stm32wlx.cpu0] starting gdb server on 0
Info : Listening on port 46755 for gdb connections
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32wlx.cpu0      cortex_m   little stm32wlx.cpu       unknown
Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
[stm32wlx.cpu0] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000758 msp: 0x20000200
Info : device idcode = 0x10036497 (STM32WLE/WL5x - Rev 'unknown' : 0x1003)
Info : RDP level 0 (0xAA)
Info : flash size = 256 KiB
Info : flash mode : single-bank
Info : Padding image section 1 at 0x0800206c with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08002070 .. 0x080027ff
auto erase enabled
wrote 8304 bytes from file /home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world/bin/nucleo-wl55jc/hello-world.elf in 0.680846s (11.911 KiB/s)
verified 8300 bytes in 0.439054s (18.461 KiB/s)
Info : Unable to match requested speed 500 kHz, using 200 kHz
Info : Unable to match requested speed 500 kHz, using 200 kHz
shutdown command invoked
Done flashing
make: Leaving directory '/home/cbuec/RIOTstuff/riot-guides/RIOT/examples/basic/hello-world'

@crasbe crasbe enabled auto-merge November 11, 2025 14:08
@riot-ci
Copy link
Copy Markdown

riot-ci commented Nov 11, 2025

Murdock results

✔️ PASSED

180359a makefiles/tools/openocd-adapters: let OpenOCD select ST-Link transport

Success Failures Total Runtime
1 0 1 01m:17s

Artifacts

@crasbe crasbe added this pull request to the merge queue Nov 11, 2025
Merged via the queue into RIOT-OS:master with commit 16d06a1 Nov 11, 2025
29 checks passed
@leandrolanzieri leandrolanzieri added this to the Release 2026.01 milestone Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: build system Area: Build system Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

openocd: flashing the STM32C0 and other "new" boards

4 participants