This example provides files that illustrate how to use Microsoft(R) Visual Studio Code (VSCode) with a target connected via its Serial Wire Debug (SWD) port.
Many configurations are possible. VSCode might be running on:
- a Raspberry Pi wired directly to a target's SWD pins
- a PC or Mac connected to a target via a Pico running picoprobe
- a machine with an already running instance of
OpenOCD
Getting Started with the Raspberry Pi Pico describes a basic setup for VSCode and how to build picoprobe and OpenOCD
, a tool that connects to the GNU Debugger GDB.
Configuring VSCode to use the SWD port lets it upload code transparently and gives you step-through debugging from within the IDE.
The example assumes:
- A functioning development environment with pico-sdk, ARM Toolchain, VSCode and
OpenOCD
all built and installed according to the instructions in the Getting Started Guide. - A target connected via the SWD port (see above).
- Reasonable familiarity with pico-sdk, CMake and VSCode workspaces.
Note: The provided files illustrate working configurations but you will almost certainly want to customise them further to meet your needs.
-
Open a fresh VScode workspace, add a simple standalone SDK project (removing any existing
build
directory) and create a.vscode
folder at its top level. -
Choose the
launch-*-swd.json
file closest to your setup (see below), rename it tolaunch.json
and copy it to the.vscode
folder you created.Start with:
launch-probe-swd.json
if the target is connected via an SWD probe (e.g. picoprobe)launch-raspberrypi-swd.json
if the target is directly connected to a Raspberry Pi GPIOlaunch-remote-openocd.json
if VSCode should connect to an already running instance ofOpenOCD
.
Be sure to review the selected file and make any changes needed for your environment.
- Copy the
settings.json
file into the.vscode
folder. This illustrates how to configure the CMake plugin so that you debug using cortex-debug instead of trying to launch the executable on the host.
Lauching a debug session in the workspace (e.g. with f5) should now build the project and if successful upload it to the target, open a debug session and pause at the start of main()
.
VSCode has some background work to do the first time through. If appears to have stalled then leave it alone for at least a minute.
If
OpenOCD
reports that GDB won't launch or quits unexpectedly, you may need to adjust the gdbPath and/or configFiles settings inlaunch.json
. See the comments in the example files and check the latest Getting Started.