`Getting started with Raspberry Pi Pico.pdf` Appendix A: Using Picoprobe. Chapoter 5.1.: Installing OpenOCD. Download `picoprobe.uf2`: https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html#resetting-flash-memory - flash it on a Pico. Wiring to target: Picoprobe GP2 -> Target Pico SWCLK (links) Picoprobe GP3 -> Target Pico SWDIO (rechts) UART: Picoprobe GP4/UART1 TX -> Target Pico GP1/UART0 RX Picoprobe GP5/UART1 RX -> Target Pico GP0/UART0 TX Power: Picoprobe VSYS -> Target Pico VSYS (if USB Device) Picoprobe VBUS -> Target Pico VBUS (if USB HOST) => power attached device Build OpenOCD: cd ~/pico sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1 cd openocd ./bootstrap ./configure make -j4 sudo make install NOTE: after ./configure: libjaylink configuration summary: - Package version ................ 0.2.0 - Library version ................ 1:0:1 - Installation prefix ............ /usr/local Enabled transports: - USB ............................ yes - TCP ............................ yes OpenOCD configuration summary -------------------------------------------------- MPSSE mode of FTDI based devices yes (auto) Raspberry Pi Pico Probe yes (auto) ST-Link Programmer yes (auto) TI ICDI JTAG Programmer yes (auto) Keil ULINK JTAG Programmer yes (auto) Altera USB-Blaster II Compatible yes (auto) Bitbang mode of FT232R based devices yes (auto) Versaloon-Link JTAG Programmer yes (auto) TI XDS110 Debug Probe yes (auto) CMSIS-DAP v2 Compliant Debugger yes (auto) OSBDM (JTAG only) Programmer yes (auto) eStick/opendous JTAG Programmer yes (auto) Andes JTAG Programmer yes (auto) USBProg JTAG Programmer yes (auto) Raisonance RLink JTAG Programmer yes (auto) Olimex ARM-JTAG-EW Programmer yes (auto) CMSIS-DAP Compliant Debugger no Nu-Link Programmer no Cypress KitProg Programmer no Altera USB-Blaster Compatible yes (auto) ASIX Presto Adapter yes (auto) OpenJTAG Adapter yes (auto) Linux GPIO bitbang through libgpiod no SEGGER J-Link Programmer yes (auto) Use Capstone disassembly framework no Ensure that you are a member of dialout and plugdev groups. start OpenOCD server: cd pico sudo cp openocd/contrib/60-openocd.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger sudo apt update sudo apt install binutils-multiarch cd /usr/bin sudo ln -s /usr/bin/objdump objdump-multiarch sudo ln -s /usr/bin/nm nm-multiarch #openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl ALT #openocd -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg -s tcl openocd -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg #openocd -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg -c "program blinky.elf verify reset exit" Install GDB multi-arch: sudo apt install gdb-multiarch cd pico cp pico-examples/ide/vscode/launch-probe-swd.json MY_PROJECT/.vscode/launch.json cp pico-examples/ide/vscode/settings.json MY_PROJECT/.vscode/settings.json in launch.json add: "openOCDLaunchCommands": ["adapter speed 5000"] install vs code from https://code.visualstudio.com/download (.deb package) c/c++ extension marus25 cortex-debug .bashrc: (or type it every time before starting `code`) export PICO_SDK_PATH=/home/kio/pub/Develop/Projects/pico/pico-sdk