roll: third_party/pigweed d453aad..4e39cf8 (21 commits) 4e39cf8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/482660 pw_bluetooth_sapphire: Fix error and pause handling in StartScan a79c9ab:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/482659 pw_bluetooth_sapphire: Prevent uint8_t overflow in APCF slot counting 0f5c008:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/479005 pw_bluetooth_sapphire: Clean up batch scanning logs eecd223:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/477294 pw_bluetooth_sapphire: Reduce verbosity of logs in advertising packet filter 2a932cc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/490175 pw_bluetooth_sapphire: Use SplitMix64 for DeviceAddress hashing bc46325:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/486309 pw_bluetooth_sapphire: Remove redundant this capture in GATT Client 1cd3689:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/490176 pw_bluetooth_sapphire: Guard closed bearer in Bearer::ReplyWithError cbf1831:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/490174 pw_bluetooth_sapphire: Guard null callback in AcknowledgeRead 427f22a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/491411 pw_tokenizer: Avoid endian.h in tokenize.h 3dd1f47:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/491333 docs: Restore source code link in header a4c51ff:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/455247 pw_format: Clean up documentation 1292a28:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/490173 pw_bluetooth_sapphire: Cap pending BR/EDR Remote_Name_Request commands 3dca9ae:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/485429 pw_kernel: Clean up InterruptGuard memory ordering a3dd2e0:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/486329 docs: Update pw_rust_docs.bzl to accept rust_doc targets bdca3b6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/478805 pw_tokenizer: Add C++ and Rust detokenize performance tests 586256d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/491371 docs: Fix external link cards b652bd2:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/489490 pw_async2: Add time_provider.cc to pw_async2 Android.bp 55c8d25:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/489649 pw_ghish: Include builds from equivalent earlier patchsets 2e7bb9a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/490172 pw_bluetooth_sapphire: Disconnect non-SSP peer without legacy pairing df38b55:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/479085 docs: Update and expand toolchain documentation 91bc8ab:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/427212 pw_tokenizer: Avoid <string_view> in headers Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: d453aadb634511..4e39cf8f5dea7e Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8669075994118549377 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I0ec743d710d8c5b63319dd396957343b77d180ac Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/492171
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))