commit | d4252bd66494fdef513d7408912975aa8b35c0fb | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Mon May 06 09:11:45 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon May 06 09:11:45 2024 +0000 |
tree | d006e19d598e4a0bd09782c7d900cb38b9bc5983 | |
parent | 16d34e714255600eb6ba6c4ef3418b5b91955912 [diff] |
[third_party/pigweed] Roll 19 commits 825f89f0c2fd45d roll: bazel 178dee4d673a285 emboss: Update emboss repo to tag v2024.0501.21542 33da8827caa5441 pw_package: Suppress package progress messages 6c158d179f8e53b pw_log: Add core::fmt style format string support f2bfca90d64a6d4 pw_bluetooth: Remove hci_vendor 664cea90c2e3998 pw_transfer: Lock resource_responder_ access c3c31b852086eb2 docs: Update changelog 63761bcd7861acf pw_bluetooth_proxy: Reserve ACL LE slots from host 64d7ace864708ce pw_log: Rename Rust logging API to be less verbose 1f22c59e3a2f664 pw_log: Add Rust support for untyped strings c3d2877b7aa6c78 pw_rpc: Fix macro name in docs and comments d0ff89e952d68de pw_toolchain: Fix CMake build on macOS d5f3adeb5cafd73 pw_protobuf_compiler: Fix bazel failure if proto d fc8d0557e06a367 pw_protobuf_compiler: Add a no_prefix test ac388e7bdae6d03 pw_ide: Raise specific error on bad settings file 6920d0bb3b6898a pw_protobuf_compiler: Tests fail to build under cm 3aa838ba32d99bb pw_allocator: Improve namespacing 89c90454a256760 pw_toolchain: Add no-canonical-system-headers 59bc1cdc76fbc59 pw_allocator: Use singletons for stateless allocat https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: 5b96d29bb8a6ff0..825f89f0c2fd45d Roller-URL: https://ci.chromium.org/b/8748700296436170561 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ibc7e079e83c7efd5c58bea1636e088b978edf9b5 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/208360 Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Commit-Queue: 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))