Update PIO program to pass read/write commands through FIFO
alongside bit counts. Also, don't return RX data on write commands.
These two changes allow the probe code to return early after
pushing write commands into the FIFO, which improves throughput.
4 files changed
tree: bf089b7d5d4fbf81d9c70dfdccd0618c92f70578
  1. include/
  2. src/
  3. .gitmodules
  4. CMakeLists.txt
  5. FreeRTOS_Kernel_import.cmake
  6. pico_sdk_import.cmake
  7. README.md
README.md

Picoprobe

Picoprobe allows a Pico / RP2040 to be used as USB -> SWD and UART bridge. This means it can be used as a debugger and serial console for another Pico.

Documentation

Picoprobe documentation can be found in the Pico Getting Started Guide. See “Appendix A: Using Picoprobe”.

TODO

  • TinyUSB's vendor interface is FIFO-based and not packet-based. Using raw tx/rx callbacks is preferable as this stops DAP command batches from being concatenated, which confused openOCD.
  • Instead of polling, move the DAP thread to an asynchronously started/stopped one-shot operation to reduce CPU wakeups
  • AutoBaud selection, as PIO is a capable frequency counter
  • Possibly include RTT support