pico-debug runs on one core in a RP2040 and provides a USB CMSIS-DAP interface to debug the other core
 
 
Go to file
Peter Lawrence 3871718a35 initial commit 2021-02-04 16:51:59 -06:00
CMSIS_5@61cfe5d56f initial commit 2021-02-04 16:51:59 -06:00
pico initial commit 2021-02-04 16:51:59 -06:00
rp2040 initial commit 2021-02-04 16:51:59 -06:00
tinyusb@42dad78dbc initial commit 2021-02-04 16:51:59 -06:00
.gitmodules initial commit 2021-02-04 16:51:59 -06:00
DAP_config.h initial commit 2021-02-04 16:51:59 -06:00
Makefile initial commit 2021-02-04 16:51:59 -06:00
README.md initial commit 2021-02-04 16:51:59 -06:00
RP2040_Startup.s initial commit 2021-02-04 16:51:59 -06:00
clock_setup.c initial commit 2021-02-04 16:51:59 -06:00
main.c initial commit 2021-02-04 16:51:59 -06:00
myboard.c initial commit 2021-02-04 16:51:59 -06:00
pico-debug.hzp initial commit 2021-02-04 16:51:59 -06:00
picodebug_MemoryMap.xml initial commit 2021-02-04 16:51:59 -06:00
picodebug_Startup.s initial commit 2021-02-04 16:51:59 -06:00
picodebug_placement.xml initial commit 2021-02-04 16:51:59 -06:00
ram_placement.xml initial commit 2021-02-04 16:51:59 -06:00
tusb_config.h initial commit 2021-02-04 16:51:59 -06:00
usb_descriptors.c initial commit 2021-02-04 16:51:59 -06:00

README.md

Description

RP2040 has two ARM Cortex-M0+ cores, and the second core normally remains dormant.

pico-debug runs on one core in a RP2040 and provides a USB CMSIS-DAP interface to debug the other core. No hardware is added; it is as if there were a virtual debug pod built-in.

Boot the RP2040 with the BOOTSEL button pressed, copy over pico-debug.uf2, and it immediately reboots as a CMSIS-DAP adapter. pico-debug loads as a RAM only .uf2 image, meaning that it is never written to flash and doesn't replace existing user code.

All 264kBytes of SRAM on the RP2040 is available for running user code; pico-debug shoehorns itself entirely into the 16kBytes of XIP_SRAM (aka flash cache).

If viewing this on github, a pre-built binary is available for download on the right under "Releases".

Caveats whilst using pico-debug

  • the flash cache cannot be used by the user code, as pico-debug is using this memory
  • user code cannot reconfigure the PLL and clocks, as the USB peripheral needs this
  • the USB peripheral is used to provide the debugger, so the user code cannot use it as well

License

TinyUSB and code specific to pico-debug is licensed under the MIT license.

ARM's CMSIS_5 code is licensed under the Apache 2.0 license.