commit | 90138f430097deffef3d78e2d89ac52c15bbca4d | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Thu May 15 19:06:57 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu May 15 19:06:57 2025 -0700 |
tree | a60d8564e7333fe895a9b9d2e2f4c95bd1648255 | |
parent | 780e46812a95ae4c36f9617ba3d862e895dd360e [diff] |
roll: third_party/pigweed 05f0749..a1e03da (20 commits) a1e03da:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242152 pw_uuid: Add new UUID module 54b73a2:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291973 pw_kernel: Add putc syscall 88088b1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291972 pw_tokenizer: Encode char as varint in rust 7e25bc1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/263373 pw_build: Optional Bazel-style sandboxing for CMake 866cbb9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/292037 docs: Update the default_bazel target 440bcbf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289984 third_party/fuchsia: Copybara import 675208e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289193 pw_build: Add runner for Zephyr's twister f9ef56a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291876 pw_kernel: Improve unit test terminal UI 91988cd:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289292 pw_kernel: Cortex-M Userspace 6e6b505:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291932 pw_kernel: Clean up unittest crates a41a6ff:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291933 pw_ide: Handle targets that start with @ ebcf95b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291053 pw_kernel: Add privileged thread support 0c7bb7f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291052 pw_kernel: Add enum field support to register macros 199d14d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/286472 pw_bluetooth: Migrate size reports to Bazel c1970dc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/288833 pw_containers: Introduce DynamicQueue, which wraps DynamicDeque 9650a20:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291792 pw_allocator: Fix -Wctad-maybe-unsupported warnings 24f8780:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/287715 pw_containers: Introduce DynamicDeque 79ed265:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/291358 bazel: Enforce CTAD warning across Pigweed 44fb3b2:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/287714 pw_containers: Move generic InlineDeque logic to GenericDeque 526fbc8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/287393 pw_ide: Revise docs Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 05f07498722601..a1e03da2c0a45d Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8714753498709982785 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Icc88efe975c147d2c21d57c26a2462fa8a8f36f2 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/292077 Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Make sure you've set up Pigweed's prerequisites.
If you're on Windows, you can automate the initial setup by downloading the first-time setup script from cmd.exe:
curl https://pigweed.googlesource.com/pigweed/sample_project/+/main/tools/setup_windows_prerequisites.bat?format=TEXT > setup_pigweed_prerequisites.b64 && certutil -decode -f setup_pigweed_prerequisites.b64 setup_pigweed_prerequisites.bat && del setup_pigweed_prerequisites.b64
Then you can run the script with the following command in cmd.exe:
setup_pigweed_prerequisites.bat
Note: You may see a few UAC prompts as the script installs Git, Python, and enables developer mode.
Once that is done, you can clone this project with the following command:
git clone https://pigweed.googlesource.com/pigweed/kudzu
Pigweed uses a local development environment for most of its tools. This means tools are not installed to your machine, and are instead stored in a directory inside your project (Note: git ignores this directory). The tools are temporarily added to the PATH of the current shell session.
To make sure the latest tooling has been fetched and set up, run the bootstrap command for your operating system:
Windows
bootstrap.bat
Linux & Mac
source ./bootstrap.sh
After tooling updates, you might need to run bootstrap again to ensure the latest tools.
After the initial bootstrap, you can use use the activate
scripts to configure the current shell for development without doing a full update.
Windows
activate.bat
Linux & Mac
source ./activate.sh
Install the pico SDK and tool to flash the device.
pw package install pico_sdk
pw package install picotool
These packages will be built and added to the path automatically. There is no need to add these to the gn arguments.
Install the GLFW OpenGL library
sudo apt install libglfw3-dev libglfw3
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
pw build
Run the host app and connect to it via pw console
:
./out/gn/host_device_simulator.speed_optimized/obj/applications/badge/bin/badge & \ pw console --socket-addr default ; \ killall badge
export ELF=./out/gn/rp2040.size_optimized/obj/applications/badge/bin/badge.elf picotool reboot -f -u && \ sleep 3 && \ picotool load -x $ELF
Connect with pw console
:
pw console --verbose \ --baudrate 115200 \ --token-databases ./out/gn/rp2040.size_optimized/obj/applications/badge/bin/badge.elf \ --device /dev/rp2040
From Python Repl window you can issue RPCs interactively:
>>> device.rpcs.kudzu.rpc.Kudzu.PackageTemp() (Status.OK, kudzu.rpc.PackageTempResponse(temp=27.60657501220703))