cancel
Showing results for 
Search instead for 
Did you mean: 

SWO doesn't work in VScode

vector
Associate

Good afternoon,

I'm trying to use the SWO with a NUCLEO-G431KB board in VScode.

I've generated a project with CubeMX, imported it with the VScode extension and modified the launch.json file by adding 

"swoConfig": { "enabled": true, "cpuFrequency": 170000000, "swoFrequency": 2000000, "source": "probe", "decoders": [ { "type": "console", "label": "ITM", "showOnStartup": true, "port": 0, "encoding": "ascii" } ] },

However, when I launch the debugger, I get the warning "SWO support is not available from the probe when using the ST-Link GDB server. Disabling SWO.". Looking online it seems that it should work with the ST-Link GDB server, so am I misisng something obvious?

Is there a way to have SWO working in VScode?

Thanks you!

I add the full launch.json file for completeness:

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Build & Debug Microcontroller - ST-Link", "cwd": "${workspaceFolder}", "type": "cortex-debug", "executable": "${command:cmake.launchTargetPath}", // Let CMake extension decide executable: "${command:cmake.launchTargetPath}" // Or fixed file path: "${workspaceFolder}/path/to/filename.elf" "request": "launch", "servertype": "stlink", "device": "STM32G431KBTx", //MCU used "interface": "swd", "serialNumber": "", //Set ST-Link ID if you use multiple at the same time "runToEntryPoint": "main", "svdFile": "${config:STM32VSCodeExtension.cubeCLT.path}/STMicroelectronics_CMSIS_SVD/STM32G431.svd", "v1": false, //Change it depending on ST Link version "serverpath": "${config:STM32VSCodeExtension.cubeCLT.path}/STLink-gdb-server/bin/ST-LINK_gdbserver", "stm32cubeprogrammer":"${config:STM32VSCodeExtension.cubeCLT.path}/STM32CubeProgrammer/bin", "stlinkPath": "${config:STM32VSCodeExtension.cubeCLT.path}/STLink-gdb-server/bin/ST-LINK_gdbserver", "armToolchainPath": "${config:STM32VSCodeExtension.cubeCLT.path}/GNU-tools-for-STM32/bin", "gdbPath":"${config:STM32VSCodeExtension.cubeCLT.path}/GNU-tools-for-STM32/bin/arm-none-eabi-gdb", "serverArgs": [ "-m","0", ], "swoConfig": { "enabled": true, "cpuFrequency": 170000000, "swoFrequency": 2000000, "source": "probe", "decoders": [ { "type": "console", "label": "ITM", "showOnStartup": true, "port": 0, "encoding": "ascii" } ] }, //"preLaunchTask": "Build + Flash" /* If you use external loader, add additional arguments */ //"serverArgs": ["--extload", "path/to/ext/loader.stldr"], }, { "name": "Attach to Microcontroller - ST-Link", "cwd": "${workspaceFolder}", "type": "cortex-debug", "executable": "${command:cmake.launchTargetPath}", // Let CMake extension decide executable: "${command:cmake.launchTargetPath}" // Or fixed file path: "${workspaceFolder}/path/to/filename.elf" "request": "attach", "servertype": "stlink", "device": "STM32G431KBTx", //MCU used "interface": "swd", "serialNumber": "", //Set ST-Link ID if you use multiple at the same time "runToEntryPoint": "main", "svdFile": "${config:STM32VSCodeExtension.cubeCLT.path}/STMicroelectronics_CMSIS_SVD/STM32G431.svd", "v1": false, //Change it depending on ST Link version "serverpath": "${config:STM32VSCodeExtension.cubeCLT.path}/STLink-gdb-server/bin/ST-LINK_gdbserver", "stm32cubeprogrammer":"${config:STM32VSCodeExtension.cubeCLT.path}/STM32CubeProgrammer/bin", "stlinkPath": "${config:STM32VSCodeExtension.cubeCLT.path}/STLink-gdb-server/bin/ST-LINK_gdbserver", "armToolchainPath": "${config:STM32VSCodeExtension.cubeCLT.path}/GNU-tools-for-STM32/bin", "gdbPath":"${config:STM32VSCodeExtension.cubeCLT.path}/GNU-tools-for-STM32/bin/arm-none-eabi-gdb", "serverArgs": [ "-m","0", ], /* If you use external loader, add additional arguments */ //"serverArgs": ["--extload", "path/to/ext/loader.stldr"], } ] }
View more

 

2 REPLIES 2
Sarra.S
ST Employee

Hello @vector

Are yo using this cortex debug extension Marus/cortex-debug: Visual Studio Code extension for enhancing debug capabilities for Cortex-M Microcontrollers? It has partial support textane/stlink (st-util) GDB Servers (SWO can only be captured via a serial port)

Also, have you been able to debug with default debug configuration? 

"Build & Debug Microcontroller - ST-Link"

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

hi @Sarra.S ,

Yes I'm using that extension. I just noticed that the description I see on vscode says that it doesn't support SWO on STLink. I guess it's an older version. I will try to update it manually and see if this solves the issue.

Yes, I can debug correctly with the default configuration, only SWO doesn't work. 

Thank you for your help!