commit | 2ff2c366428adc7ac417e5028d86488a27210597 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Wed Apr 24 09:11:17 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Apr 24 09:11:17 2024 +0000 |
tree | 0833b7b78f25bb5906a33948dc70716e2b268165 | |
parent | 9aa4b005a47303df0863f18a8ad110b64b6ab59a [diff] |
[third_party/pigweed] Roll 16 commits e01ca5820679aeb pw_containers: Omit size on FlatMap construction 36a94a20ffbaf42 pw_snapshot: Add python processor tests e7fc5d241ad4508 pw_bluetooth_proxy: Fix ordering of TEST arguments 314a7b9bfa1e540 pw_bluetooth: Comment why we include all emboss he a5052ba92950982 pw_allocator: Make AllMetrics internal 14e0d76298d7690 pw_unit_test: Standardize ASSERT_OK_AND_ASSIGN dea2ecf94d39c9c pw_unit_test: Clarify status macros are gunit-only 4c0dd405e0eedfa pw_build_info: Make the python module importable a9707e739fefa6f pw_allocator: Fix SynchonizedAllocator data race 3d2be38e99af311 pw_presubmit: Remove --verbose_explanations flag 69675d0eddb6ce8 pw_transfer: Implement adaptive windowing in Java 0ce38d914d7f6de pw_presubmit: Use _LOG global for logging 1e72e7e55cef252 pw_presubmit: RST format updates d01aa29f9f9e113 pw_presubmit: Allow disabling hook creation bc6388fd60ff21b pw_tokenizer: Switch detokenize.h docs to Doxygen 5ee9af02a1ef96c docs: Mention @deprecated in the Doxygen style gui https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: c6e83c173d13b52..e01ca5820679aeb Roller-URL: https://ci.chromium.org/b/8749787459871288417 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I2505e791cbce2752da3ed4a3d57cab39b9035b03 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/206074 Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.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))