roll: third_party/pigweed 9ff1095..8437527 (34 commits)

8437527:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242192 docs: Consolidate content for pigweed.dev contributors
1eadbb9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240656 pw_numeric: Rounded integer division
0c98e51:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240655 pw_numeric: New module for mathematical utilities
1184ff5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242252 bazel: Add `load` statments for the builtin Bazel java rules
3eab170:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242332 pw_bytes: Remove deprecated whitespace
b854269:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240912 docs: Build pw_async2 docs with Bazel
a222b3f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242172 targets/rp2040: Add default linker script targets
f60e870:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242193 Revert "pw_protobuf: Force use of callbacks for oneof"
53d4032:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/236592 pw_protobuf: Force use of callbacks for oneof
064c768:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242133 pw_log_fuchsia: Replace stcompat cpp17::string_view with std version
d0dd0b3:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242016 roll: bazelisk-as-bazel
358d410:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/242013 *: Fix formatting
c221c63:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241953 roll: python-wheel
d3d8490:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241952 roll: ninja
98d4ea4:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241637 roll: fuchsia-infra-bazel-rules 589d68e..7011a76 (43 commits)
5a33668:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241913 roll: cmake
21c3798:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240732 pw_bluetooth_sapphire: Support creating LE dynamic channels in gap
676147b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/240713 pw_bluetooth_sapphire: Support creating LE dynamic channels in l2cap
de832f1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241194 targets/rp2040: Add --chip argument to unit_test_server.py
6bdaaa9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/238471 bzlmod: Add transitive deps for oss-fuzz
32f28d6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241136 pw_env_setup: Update clang next version
d08c60c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241201 pw_stream_uart_mcuxpresso: Remove dma_stream
b39ad5c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241200 pw_uart: Add pw::uart::UartStream
98667e8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241193 bazel: Switch to forked pre-release probe-rs prebuilts
ba98cd9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/237452 pw_bluetooth_sapphire: Cleanup compatibility attrs
f6a7bb7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/238393 pw_uart: Add UartBlockingAdapter
ebf33f5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159050 python: Add ruff linting
d44807b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/235638 roll: clang
bdcf658:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/238572 pw_uart: Add UartNonBlocking::FlushOutput()
840c58d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241199 pw_uart: Update OWNERS
a789e9c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241359 pw_env_setup: Remove black.json
9024130:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241472 bazel: Move WORKSPACE based toolchain declarations to generated repo
17df82d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241212 pw_tokenizer: Ignore whitespace in domain values
c4ea179:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/238052 pw_web: Improvements to `device` RPC APIs

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 9ff1095f2c990e..84375274c2a7db
Roll-Count: 1
Roller-URL: https://ci.chromium.org/b/8733973984746375345
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I0d241fc4b77fb063cf9fa0cf25748c821cff7833
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/242397
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>
1 file changed
tree: 2e6c4624e4b2a70671ec929d29bb5d42d9e738b2
  1. applications/
  2. build_overrides/
  3. lib/
  4. pcb/
  5. targets/
  6. third_party/
  7. tools/
  8. .bazelignore
  9. .bazelrc
  10. .bazelversion
  11. .gitignore
  12. .gitmodules
  13. .gn
  14. activate.bat
  15. banner.txt
  16. bootstrap.bat
  17. bootstrap.fish
  18. bootstrap.sh
  19. BUILD.gn
  20. BUILDCONFIG.gn
  21. OWNERS
  22. pigweed.json
  23. README.md
  24. WORKSPACE
README.md

Kudzu

Getting Started

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

Environment setup

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

Device tools setup

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.

Linux Setup

GLFW Dependency:

Install the GLFW OpenGL library

sudo apt install libglfw3-dev libglfw3

Udev Rules:

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

Compile:

pw build

Run:

Host

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

Kudzu

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))