commit | 0172f1e1340e491f582085d539a4caa7c633d013 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Mon Sep 02 09:11:38 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Sep 02 09:11:38 2024 +0000 |
tree | 7ac1c1cef539f085323f834c962ae87046242bb1 | |
parent | f144c443037644ece858c2c4e88eaf77550b86c0 [diff] |
roll: third_party/pigweed 26 commits 8512b20c7f93492 roll: ninja 77d7e1bd03b006d roll: python-wheel 6d7e370608feb19 roll: fuchsia_infra 10 commits 15ebf243605e7ac roll: cmake a271a3881ffa966 roll: rust 60a6b4dfb9e60e0 pw_bluetooth_sapphire: Emboss LEReadSupportedState 4df6f289fe3c1a0 pw_bluetooth_sapphire: Embossify ReadPageScanActiv 7286a9d4c200a46 pw_bluetooth_sapphire: Embossify ReadSimplePairing 2a2c2ad3be8241c pw_bluetooth_sapphire: Embossify ReadPageScanTypeR aeecd225558b918 pw_bluetooth_sapphire: Remove ReadInquiryScanTypeR 904184e5b1590ca pw_bluetooth_sapphire: Embossify ReadLocalNameRetu 99acb268bf50ca0 bazel: Update to an unreleased version faa7a78eab6a6c8 pw_bluetooth_sapphire: Allow LE remote feature int 107eecb0b87c664 pw_bluetooth_sapphire: Add flag to enable/disable 8bb808922dc58b5 pw_sensor: Add supported bus 38c6f7ca2ecdb4c pw_bluetooth_sapphire: Move inspect_testing under 03ed76e33aa5c5b pw_bluetooth_sapphire: Add random & async tests to 8db14c55863eed5 bazel: Enable ResultStore 25bb1a383ded8da pw_bluetooth_sapphire: Use Fuchsia API level 23 f8775ef1491d4a2 pw_rpc: Provide examples of raw methods in docs 1d56596636fd46b pw_async2: Add TimeProvider f35a192883013ad pw_bluetooth_proxy: Log why GATT send is unavailab 6829156f7dcf15b pw_bluetooth_sapphire: Fuchsia test outputs in CQ 3e2889942fadf1c pw_rpc: Relocate RPC classes from pw_hdlc 4d14bbfc72409cb pw_bluetooth_sapphire: Add fuchsia/lib/fidl d5f2d5a71ed4d7b bazel: Update Fuchsia SDK to 23.20240829.4.1 https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: fe1758863affc08..8512b20c7f93492 Roller-URL: https://ci.chromium.org/b/8737919256029813313 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ie204ecb5083bfc1f37c301b19cf7e592cd0b0ba3 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/233372 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.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))