cdc_uart: performance optimisations For RX, do burst reads without the SDK wrapper function which checks the FIFO flags for each read. For TX, avoid waiting for the FIFO to have space available, which causes significant thread stalls. Use a slightly pessimistic estimate of the number of bytes the TX FIFO should consume and only write up to that number. Also, there's no point tracking whether or not the scheduler parked the thread in a call to xTaskDelayUntil - missing a scheduler tick can't be recovered from.
Firmware source for the Raspberry Pi Debug Probe SWD/UART accessory. Can also be run on a Raspberry Pi Pico.
Raspberry Pi Debug Probe product page
Raspberry Pi Pico product page
Debug Probe documentation can be found in the Pico Getting Started Guide. See “Appendix A: Using the Debug Probe”.
For the purpose of making changes or studying of the code, you may want to compile the code yourself.
First, clone the repository:
git clone https://github.com/raspberrypi/debugprobe cd debugprobe
Initialize and update the submodules:
git submodule update --init --recursive
Then create and switch to the build directory:
mkdir build cd build
If your environment doesn't contain PICO_SDK_PATH, then either add it to your environment variables with export PICO_SDK_PATH=/path/to/sdk or add PICO_SDK_PATH=/path/to/sdk to the arguments to CMake below.
Run cmake and build the code:
cmake .. make
Done! You should now have a debugprobe.uf2 that you can upload to your Debug Probe via the UF2 bootloader.
If you want to create the version that runs on the Pico, then you need to invoke cmake in the sequence above with the DEBUG_ON_PICO=ON option:
cmake -DDEBUG_ON_PICO=ON ..
This will build with the configuration for the Pico and call the output program debugprobe_on_pico.uf2, as opposed to debugprobe.uf2 for the accessory hardware.
Note that if you first ran through the whole sequence to compile for the Debug Probe, then you don't need to start back at the top. You can just go back to the cmake step and start from there.
If using an existing debugprobe clone:
PICO_SDK_PATH must point to a version 2.0.0 or greater install.git submodule sync git submodule update --init mkdir build-pico2 cd build-pico2 cmake -DDEBUG_ON_PICO=1 -DPICO_BOARD=pico2 -DPICO_PLATFORM=rp2350 ../