commit | c4a89f4b63ac8cc69c6cbceb257a16cda3fe192f | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Wed Mar 27 09:12:24 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Mar 27 09:12:24 2024 +0000 |
tree | 6b175509a425d89be15a74df94ce0b10f681f9d2 | |
parent | 235542941c621bddad2d418d9251c15881ea7e7d [diff] |
[third_party/pigweed] Roll 24 commits d595cc8bc24ce2e pw_hdlc: Add async router 9bbfe80a2ffff7c pw_{log_basic,sys_io}: Fix Soong definitions 9c33f41cda92196 pw_trace_tokenized: Fix static initialization 3473c9118a43845 pw_log_tokenized: Define as cc_static_library e0888f672378e3e pw_router: Define as cc_static_library 68e898711ea85b8 pw_toolchain: Define as cc_static_library df4efa0243b5dba pw_result: Define as cc_static_library 595fd9562a8d905 pw_build_info: Add log function of GNU build ID 6ebdfaf68c2e080 pw_span: Define as cc_static_library d99ef2cf38ae998 pw_preprocessor: Define as cc_static_library 04fbfa382513335 pw_bluetooth_sapphire: Add emulator start workflow e9441715b774fc7 pw_polyfill: Define as cc_static_library 5c53b840a4ecd3f pw_rpc_transport: Define as cc_static_library d6d27ec27a71859 pw_function: Define as cc_static_library e0abef00c07545a pw_multibuf: Define as cc_static_library cb32298c56d1b71 pw_log_null: Define as cc_static_library 7cffdd83bfd413c pw_thread: Follow Soong guidance 7682e4abe456481 pw_allocator: Add allocation detail storage to Tra ebcc8c717f3980d pw_channel: Add loopback channel 72a1d6f484ecbd1 pw_toolchain: Remove unusued source set 16d3c47ab5a6d45 pw_status: Add StatusWithSize::size_or 55b88ef80fc2403 pw_channel: Split open bits for read and write be2ee681c2c0176 pw_async2: Add PendFuncTask a9d379800be4ccd pw_allocator: Distinguish between requested, usabl https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: c59bb69e5e17000..d595cc8bc24ce2e Roller-URL: https://ci.chromium.org/b/8752324174510496177 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Id0b3d45d1c2240f3501cc4317e5ee9f4e339ca61 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/200610 Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.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))