Switch demos to run on a thread

Change-Id: Ibbf904ba3e036548893267c489d4ddb4fb631cf8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/174849
Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
10 files changed
tree: b499611e688032c341a349f9c14785d6767e8ab5
  1. applications/
  2. build_overrides/
  3. pcb/
  4. targets/
  5. third_party/
  6. tools/
  7. .gitignore
  8. .gitmodules
  9. .gn
  10. activate.bat
  11. banner.txt
  12. bootstrap.bat
  13. bootstrap.sh
  14. BUILD.gn
  15. BUILDCONFIG.gn
  16. OWNERS
  17. pigweed.json
  18. README.md
README.md

Kudzu

Compile:

pw build

Run:

Host Build

Run either of the host build apps:

./out/gn/host_debug/obj/applications/terminal_display/bin/terminal_demo
./out/gn/host_debug/obj/applications/32blit_demo/bin/32blit_demo

Flash a RP2040:

picotool reboot -f -u
sleep 3
picotool load -x ./out/gn/rp2040/obj/applications/terminal_display/terminal_demo.uf2
picotool reboot -f -u
sleep 3
picotool load -x ./out/gn/rp2040/obj/applications/32blit_demo/32blit_demo.uf2

Linux Setup

Udev Rules:

Put the following into /usr/lib/udev/rules.d/49-picoprobe.rules

# Pico app mode
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE:="0666", SYMLINK+="rp2040"

# RP2 Boot
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE:="0666", SYMLINK+="rp2040"

# Picoprobe
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666", SYMLINK+="picoprobe"

This will also symlink /dev/picoprobe and /dev/rp2040 to the respective vendor and product ids.

Apply the above rules with:

sudo udevadm control --reload-rules
sudo udevadm trigger