commit | a1b35e105803588fe23ba83d5fa85e37b3fa3362 | [log] [tgz] |
---|---|---|
author | Ewout van Bekkum <ewout@pigweed.infra.roller.google.com> | Tue Oct 29 23:04:37 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 29 23:04:37 2024 +0000 |
tree | de9ddfae8eb4594ec467ae9132a01310280dec89 | |
parent | d82634315e29e2d856a0e1549a61929b1fd1fa4f [diff] |
roll: pigweed pw_log: Explicitly pass verbosity to PW_LOG Updates the PW_LOG contract to ensure that PW_LOG's default implementation does not rely on any global preprocessor defines, instead it ensures that all arguments are explicitly passed. This is done by passing the verbosity explicitly as an argument by selecting them in the PW_LOG_* macros instead and updating the PW_LOG_ENABLE_IF to also take in verbosity. Lastly PW_LOG_ENABLE_IF_DEFAULT is removed and PW_LOG_ENABLE_IF is changed to be a module configuration option, meaning that there should be a single definition for a toolchain (this is not permitted to vary between compile units). Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/239035 Original-Revision: 661bf47f06e604384a4c7eb7bf79d2f3da71ee74 Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 0dff1169bf8b8c..661bf47f06e604 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8732702530444652273 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I69c91f358e0d6521090f0f41a7e6b69d6416e619 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/245452 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.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
.