roll: third_party/pigweed 40d4c12..48712ad (18 commits)

48712ad:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249532 pw_transfer: Shrink window size on retried data
aeecb42:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/246732 pw_bluetooth_proxy: Prepare for BR/EDR ACL credit support
0959346:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249653 roll: fuchsia-infra-bazel-rules c97cd7f..a627dc1 (40 commits)
b4a75fd:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/248493 pw_bluetooth_proxy: Remove LDAP from TODOs
7a46cb5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/246736 pw_bluetooth_proxy: Move+copy constructors for channels
6360c3b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/246500 pw_bluetooth: Delete AttNotifyOverAcl
a88df25:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/246499 pw_bluetooth_proxy: Increase H4 buffer size
53d5391:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/237263 pw_bluetooth_proxy: Support queueing + L2CAP credits
11ca404:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249312 docs: Update changelog
f3d2187:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/248713 pw_bluetooth_proxy: Reintroduce std::lock_guard
144c028:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249432 pw_protobuf: Set minimum and maximum edition fields in plugin
81b8314:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/245592 docs: Configure docs_build to support emboss & sapphire
4dda096:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249352 OWNERS: Apply WORKSPACE_OWNERS to MODULE.bazel*
92e854a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249414 pw_rpc: Warn when client completion callback is disabled
c064969:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249413 pw_rpc: Simplify enabling packet debug logs
786f3bc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249512 pw_elf: Add pw_stream to Android.bp
d55664c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249332 pw_bluetooth_proxy: Update Android.bp
ae1e16c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249032 pw_log_tokenized: Pass module instead of using PW_LOG_MODULE_NAME

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 40d4c126127506..48712ad0655654
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8730943290274317585
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I78506fe2e51d3fd54f137e75e2fef2b7c895ab8e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/249619
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: f4b1269c5b81bff2638208b2135345c4f10418f7
  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))