roll: third_party/pigweed 77 commits

d7f4cfe88a34541 pw_ide: VSC extension 1.0.0 release
37bbd5f8e53c1cf pw_bluetooth_sapphire: Remove unused method
f683c3b7e34055e pw_bluetooth_sapphire: Remove variant from LE Send
da931640a3ceaa3 pw_bluetooth_sapphire: Remove CommandPacketVariant
2cb52a5c040a068 pw_bluetooth_sapphire: Remove variant from QueueCo
cd2cdd36b55215d pw_bluetooth_sapphire: Remove variant from QueueLe
b9ee46f19af8b95 pw_bluetooth_sapphire: Create IsoDataChannel
b88802f6fb17d16 pw_bluetooth_sapphire: Check legacy adv for rand a
b2210dea6ecba21 pw_bluetooth_sapphire: Use platform-independent fo
11b6d22c96ffa25 pw_bluetooth_sapphire: Processing of CIS Establish
4e49c9a4d73cd65 roll: rules_python
e4e974a53ee236d pw_bluetooth_sapphire: Use pw_bytes for endianness
cbdf4ece80b860e pw_bluetooth_sapphire: Cleanup WritePageScanActivi
31314575c7d54b5 pw_bluetooth_sapphire: Cleanup into shared test fi
f5bb47bd0316e6a pw_bluetooth_sapphire: Cleanup WriteLocalNameRespo
5592c7588a11a66 pw_bluetooth_sapphire: Fix camel case for CIS acro
6f990918d3f2ee6 pw_bluetooth_sapphire: Cleanup Inquiry command pac
003bbe28674612a pw_bluetooth_sapphire: Implement AcceptCis()
d01cc5df086d910 pw_chrono_freertos: Work around no std::unique_loc
7bd3905ad725850 roll: Fuchsia SDK
29eecebfec5d803 pw_bluetooth_proxy: Remove debugging log
64fab36c47fbac1 pw_console: Default WebHandler.kernel_params to an
ee443d56579423e pw_stream_uart_mcuxpresso: Check init state in Dei
95951f4f88891c1 bazel: Modernize pip deps style
9c64c8d1cd1cec4 pw_cpu_exception_cortex_m: Make PC LR optional
a98647d744dc24c pw_toolchain: Add linux_sysroot.bzl
7dc26abc274fa80 pw_libcxx: Actually implement operator delete
b2afd53cde2dcc9 pw_ide: Revise docs
510f3669f3efa06 pw_bluetooth_sapphire: Use pw_bytes for endianness
110886b36198cfe pw_bluetooth_sapphire: Use pw_bytes for endianness
8874d47ccfa465d pw_bluetooth_sapphire: Reorganize test_packets.h/.
721173ca9019b69 pw_bluetooth_sapphire: Cleanup WriteInquiryScanAct
63a1dce944a0fbe pw_bluetooth_sapphire: Use pw_bytes for endianness
b335456fdb77bb9 pw_bluetooth_sapphire: Use pw_bytes for endianness
fbda534b8e330ba pw_bluetooth_sapphire: Use pw_bytes for endianness
548f5c7af1b9af5 pw_bluetooth_sapphire: Remove unneeded #include
edc32d2d6933838 pw_bluetooth_sapphire: Use pw_bytes for endianness
4524992ebf7d7a4 pw_bluetooth_sapphire: Use pw_bytes for endianness
d7e8d2ff283c451 pw_bluetooth_sapphire: Use pw_bytes for endianness
3e71386abd84aec pw_bluetooth_sapphire: Use pw_bytes for endianness
3ac62ffae11dbdb pw_bluetooth_sapphire: Rename link_initiated to ou
a532db5b0ae5a4b pw_bluetooth_sapphire: Cleanup WriteScanEnable pac
50f4a97a1903282 pw_bluetooth_sapphire: Cleanup ReadScanEnable pack
41f05bde0a0e51c pw_bluetooth_sapphire: Remove alias for BrEdrConne
4be96ee0d8d1e07 pw_bluetooth_sapphire: BrEdrConnectionRequest crea
217e8726bf1c9d7 pw_bluetooth_sapphire: Add connection role to fake
57000edcfd2bb92 pw_bluetooth_sapphire: Remove double std::move in
22c3381a3cc63e3 pw_bluetooth_sapphire: Fix BrEdrDynamicChannel cra
aae665e766a0865 pw_bluetooth_sapphire: Cleanup BrEdrConnectionRequ
565760fe5122a2e pw_bluetooth_sapphire: Implement IsoStreamServer
a8285a5c71eebb7 pw_bluetooth_sapphire: Modernize fuchsia.hardware.
aa4a8e3d13ed126 pw_bluetooth_sapphire: Rename to secure_simple_pai
0c81249d91bb21b pw_bluetooth_sapphire: Use weak hci::BrEdrConnecti
61111f8a0a8a584 pw_bluetooth_sapphire: Create and use PairingState
fed1a4ac940f060 pw_bluetooth_sapphire: Implement GetCodecLocalDela
2ff9fd8832b11ad pw_bluetooth_sapphire: Add Bazel rules for FIDL la
e8a0c91ac25a4a2 pw_bluetooth_sapphire: Refactor ScoConnection
2036fdef704762d pw_bluetooth_sapphire: Fix max connection event le
a622862b3f0bc5d pw_bluetooth_sapphire: Add AdvertisingData.ToStrin
8b518ec2b747f12 pw_bluetooth_sapphire: Make UUID string parsing op
ec2a45e92ab2918 pw_bluetooth_sapphire: Add Adapter::GetSupportedDe
9695b4b71c9a788 pw_bluetooth_sapphire: Clean up legacy advertising
135b5344b4b2750 pw_bluetooth_sapphire: Add missing climits include
4b00cebc95b7131 pw_bluetooth_sapphire: Add Emboss support to SendC
3688ecf89dbc109 pw_bluetooth_sapphire: Improve naming of android n
993d153724f7fc9 pw_bluetooth_sapphire: Migrate emboss aliases to n
196ab220be84690 pw_bluetooth_sapphire: Add tests for LE Read Max.
2265b2568b2ddc9 pw_bluetooth_sapphire: Ensure command is supported
eb4af40890efea5 pw_bluetooth_sapphire: Use duration_cast for const
a5ca74b914e8205 pw_bluetooth_sapphire: Implement extended adv. pdu
5cf904b2b9af5fa pw_bluetooth_sapphire: Use `ull` constants for enu
41608a281538865 pw_bluetooth_sapphire: Update semantics of `bredr.
f1ee471410b4b2c pw_bluetooth_sapphire: Add the credit-based flow c
72a8ca6b98eb503 pw_bluetooth_sapphire: Migrate LEAdvertisingReport
40351f96a88b4cf pw_bluetooth_sapphire: Lenient LEGetVendorCapabili
2295d1150aa5748 pw_unit_test: Removed duplicate from forwarded var
5522843e83b016f pw_ide: Update VSC extension packaging

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: cc2beaffedcc51a..d7f4cfe88a34541
Roller-URL: https://ci.chromium.org/b/8742086715206105873
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I6520d6e6823c84906150ae23da41ab74e28af34c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/224251
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
1 file changed
tree: ad97e1ef8594d8d6c4f544700063e5145cba50ed
  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))