roll: pigweed afaeaef..e8efbdc (10 commits) e8efbdc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423543 pw_fortifier: Add cipd_setup JSON scanner for CIPD packages ecc3084:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/418752 pw_kernel: Add breakpoint support to pw_gdb_protocol 90e2896:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423542 pw_fortifier: Add a MODULE.bazel scanner for CIPD packages 9ac14a5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423541 pw_fortifier: Add copy.bara.sky scanner for Copybara repos 74e9f13:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423540 pw_fortifier: Add MODULE.bazel scanner for bazel_deps 684254f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423539 pw_fortifier: Add MODULE.bazel scanner for maven deps 13b93ba:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423538 pw_fortifier: Add requirements scanner for pip a5ca8de:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/416732 pw_enum: Add pw_cc_enum_source_set template 1db73f7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/423537 pw_fortifier: Add package.json scanner for npm 78ebcc1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/427275 pw_sync,pw_tokenizer: Add missing includes Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: afaeaef89c5abc..e8efbdc471b306 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8678158082392333761 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Iaf37c44673e97def6f8e5ee6f552e8d29e7d9a3e Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/427692
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.