commit | da2cc921d54a611b7d5297f04459aad66f8c9ff8 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Tue Oct 29 09:11:34 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 29 09:11:34 2024 +0000 |
tree | 72adce130afd484d6766008f280cfe3ea8e82d58 | |
parent | 5151f749db19555e38d946c1a32486c0fdd91d54 [diff] |
roll: third_party/pigweed 6d68ac5..e0be8b2 (22 commits) e0be8b2:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244992 pw_build: Fix warning message typo afb18a6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240053 pw_containers: Add IntrusiveSet and IntrusiveMultiSet bde3f80:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/243257 pw_containers: Add methods to erase by item 03eff3c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/245133 pw_assert: Verify PW_CHECK message arguments in PW_CRASH and comparisons 752146e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244877 pw_async2: Add task implementation section d3e10fa:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/243892 pw_polyfill: Make PW_CONSTINIT support mandatory b49cd0a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244743 pw_channel: Test stream_channel_test.cc in GN; fix clang-tidy issues 2c0208d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244772 pw_allocator: Properly default initialize arrays b01f05a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244792 pw_assert_tokenized: Rename token variable to avoid shadowing c1c5bda:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/245092 third_party/fuchsia: Copybara import bbb4d52:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/245052 pw_async2: Show DoPend() in API reference 59e05fa:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/231331 pw_allocator: Add a benchmark test harness ef5f6bf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244793 pw_assert_tokenized: Support pw_assert_HandleFailure 099eb1c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/243256 pw_containers: Test more duplicates for multimap 673e56a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244744 pw_assert: Verify PW_CHECK message arguments in the API 8153a8a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244533 pw_bluetooth_sapphire: Use PW_CHECK directly for most asserts 7ddb65a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242640 docs: Fix broken links 93656ec:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/243032 pw_env_setup: Remove print_function imports 06d86b5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244932 pw_thread: Export thread_native.h 01d4453:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240703 docs: Build pw_boot docs with Bazel b40ecc9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/244672 pw_toolchain: Add ARM Cortex-M55F GCC toolchain 63ebec1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/243999 pw_async2: Update docs Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 6d68ac5934e136..e0be8b29a1d9f7 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8732755230607192865 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I53f6655ec5ea6509756c8bfe8ef7902b108cb22e Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/245176 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))