commit | f144bf38df1b914d0d023a5be07a24db795f07b2 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Fri Sep 06 09:11:16 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Sep 06 09:11:16 2024 +0000 |
tree | 36b23a2b795b852b6dfba35ecadd105b42fe3d07 | |
parent | 802148bc372f67b25628ec6338e29189216dac08 [diff] |
roll: third_party/pigweed 17 commits c1053db0462769f docs: Adopt pydata-sphinx-theme de38a67fb1b342a SEED-0130: Update Sphinx theme 54c90e55d7d27b7 pw_bluetooth_sapphire: Document how tests are run 13eef66fafd043a pw_tokenizer: Set prefix in Detokenizer; fix typin bce3cdbb55763e7 pw_system: Add missing host cmake build deps 9ee719d8a2770ac pw_bluetooth_sapphire: Clean up unnecessary deps i 444d211943b4813 pw_bluetooth: Add SniffModeCommand f56b3e7d3905c04 pw_bluetooth_sapphire: Add transport Bazel unit te 006f279167ca591 docs: Add logging recommendations 196272619238281 pw_bluetooth_sapphire: Add testing Bazel unit test 7e9104fb19c00c3 pw_package: Fix pictotool install on mac 1eb09016e8bd33e pw_bluetooth_sapphire: Add sm Bazel unit test targ 1c6ecb99c9eb472 pw_bluetooth_sapphire: Add sdp Bazel unit test tar 1d6978a9f251c70 pw_bluetooth: Add LEAdvertisingSetTerminated event d726d01274174ab pw_bluetooth_sapphire: Add sco Bazel unit test tar 4fee7205aac81c2 pw_bluetooth: Format emboss files d06bb1cc4fa470d docs: Update bug reference to a public one https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: 02e9f98073cc396..c1053db0462769f Roller-URL: https://ci.chromium.org/b/8737556869557742913 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ie24b06d881f5d0bf87218debd36d4e1d6a3f647e Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/234130 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))