commit | cefc096882ec32079e1d6594868d6a705960326f | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Tue Jan 14 15:44:47 2025 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jan 14 15:44:47 2025 -0800 |
tree | 91e104fe44879b83435ec363e9c9cd7d8fe98978 | |
parent | 9674d5a1c67a4834f6b714a10ea886c6a49d21d8 [diff] |
roll: pigweed e977933..587b9d7 (12 commits) 587b9d7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260515 pw_watch: Watch for changes in .java files by default 1ca8d34:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260412 pw_*/docs.rst: Add pigweed-module:: directives to docs.rst files 29f2476:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260513 pw_docgen: Treat doc metadata tagline as optional 8ae255e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/259713 pw_web: Remove old react webconsole example app 86cb968:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260313 pw_sync: Split TimedBorrowable from Borrowable b3361cf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260472 pw_web: Run npm audit --fix and also fix jest config a90ad78:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/253267 pw_tokenizer: Create generic macro for a nested token format 8c5043f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/253972 pw_tokenizer: Update regex for nested arg domains a67cc22:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260094 pw_*/docs.rst: Remove outdated "under construction" notices 8e0e0a0:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260093 pw_presubmit: Use CQ cache instance 41b6f9a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260014 pw_digital_io_mcuxpresso: Remove deprecated headers c3fc5a1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/260432 pw_format: Fix use of type_alias_impl_trait Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: e977933e9bba9b..587b9d74490e30 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8725725158997981105 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I2c4ea3eceec4af87d918d7e30a7414a5379e5833 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/260375 Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
This repository contains a minimal example of a Bazel-based Pigweed project. It is a LED-blinking service (featuring RPC control!) for the Raspberry Pi Pico. It can also be run on any computer using the included simulator.
git clone https://pigweed.googlesource.com/pigweed/quickstart/bazel pw_bazel_quickstart cd pw_bazel_quickstart
The only dependency that must be installed is Bazelisk.
Bazelisk is a launcher for the Bazel build system that allows for easy management of multiple Bazel versions.
Instructions for installing Bazelisk can be found here.
To run the simulator, type: bazelisk run //apps/blinky:simulator_blinky
Then, in a new console, connect to the simulator using: bazelisk run //apps/blinky:simulator_console
To start, connect a Raspberry Pi Pico, Pico 2, or debug probe via USB.
To run on the Raspberry Pi Pico, type: bazelisk run //apps/blinky:flash_rp2040
Then, in a new console, connect to the device using: bazelisk run //apps/blinky:rp2040_console
Once connected with a console, RPCs can be sent to control the LED. Try running:
device.set_led(True) device.set_led(False) device.toggle_led() device.blink(blink_count=3)
bazelisk test //...
will run the unit tests defined in this project, such as the ones in modules/blinky/blinky_test.cc
.
bazelisk run @pigweed//targets/rp2040/py:unit_test_server
in one console followed by bazelisk test //... --config=rp2040
will also allow running the unit tests on-device.
Try poking around the codebase for inspiration about how Pigweed projects can be organized. Most of the relevant code in this quickstart (including RPC definitions) is inside modules/blinky
, with some client-side Python code in tools/console.py
.