roll: pigweed, pw_toolchain 84 commits

a200b716cd13652 pw_rpc: Restructure Channel / internal::Channel
8a07d9f1ce8b58f pw_allocator: Clean up Block interface
17c1ee08b087155 pw_{chrono,sync,thread}: Group common backends in
c7be3fb2f3c38dd bazel: Stop using deprecated pw_facade aliases
3b4fb527ad75a21 pw_ide: Add module metadata
9b6ab56d09056df pw_containers: Make Vector::at() use size_t
160897b097b64f9 pw_build: Move host_backend_alias (part 1)
446fcc3a5a5a9e0 pw_allocator: Make Layout constructor explicit
a0b08ffac6e3e91 pw_allocator: Remove FreeList and FreeListHeap
c07f0fa93561718 pw_docs: Fix search results increasing in width
7578677cbbc0f09 pw_allocator: Refactor Bucket chunk list
f135cd73cdbbafd targets/rp2040: Add bazel picotool support
9a99d41a5439dd8 docs: Fix Python package dependencies for sphinx
a80029d78185c5a pw_build: Add python.install into the default GN g
5542cfa8150d66a pw_watch: Enable watching from non-PW_ROOT
2755100342651a6 pw_presubmit: Add --fresh to cmake presubmits
946880dfed7ec1f targets/rp2040: Add bazel support for rp2040_utils
d1d6d4327c68da6 pw_toolchain: Enable PIC on host
5b4b97ce8950a92 bazel: Don't use llvm_toolchain for fuchsia_clang
6f7fefe19d86fbb rp2040: Temporarily disable remaining failing rp20
e59a11cf80ef7a8 pw_bloat: Build and run `pw bloat` CLI command in
c9d7fa45896c919 pw_transfer: Remove unused imports
81797a4675c000d pw_toolchain: Add bazel toolchain for cortex-m0plu
efb2fecfa02e3c7 pw_boot_cortex_m: Add module metadata
49b5549c829641d pw_clock_tree_mcuxpresso: Comment clean up
eaff6dedf7b7779 pw_clock_tree_mcuxpresso: Add ClockMcuxpressoRtc s
4495cb241efa07d pw_rpc: Use positional-only arguments in Python cl
9554bf970460e75 bazel: Fix reference to nonexistent file
ce49079e5e8eb3f docs: Auto-generate modules index from metadata
a36670c79ebae18 pw_bluetooth_proxy: Remove H4HciPacketSendFn alias
cd86f4e6e19ca9f pw_docgen: Update module metadata status badge col
5dab2b02e018ab5 pw_multibuf: Contiguous span functions
b6793d4757bc535 pw_multibuf: Functions for copying into and out of
667445792269183 pw_multibuf: Truncate after an iterator
b5068bcebcbf397 pw_build: Introduce pw_py_test to bazel
51e996e5c204e9a pw_system: Console interactive serial port selecti
6b2fe95f4b7a70d pw_toolchain: Add module metadata
e80cd8431b9aac5 docs: Update sitenav
d5a540ce2dea993 pw_assert: Add module metadata
e22d0f09ef92df9 pw_system: Host device simulator entrypoint
8238a71197c1740 pw_presubmit: Add coverage of rp2040 build
7caae4341a12221 pw_digital_io: Remove invalid digital_io_controlle
e5a422617a97261 pw_log_string: Introduce link time assert() wrappe
afc838865bf00de pw_stream: Fix include in mpsc_stream
b68fbb19c4f651c roll: go
737169c0ecf2742 roll: gn
031b9f01df16792 [fuchsia_infra] Roll 13 commits
e20b71297bac2ab roll: cmake
06c3c9f97963303 pw_target_runner: Switch to Bazel build
b753750344bd59f stm32f429i: Add baremetal bazel build support
f1f8d574b1228e8 pw_bluetooth_proxy: Fix const on sendGattNotify pa
d8be934be664a47 pw_console: Reload theme when using a config-file
f292106ab26479a pw_target_runner: Add module metadata
756c234dfe69d9d pw_build: Add module metadata
6f731832391b57a pw_checksum: Add module metadata
e0dd5e7778a97f4 rp2040: Fix test runner scripts to correct check i
3e894b59980e141 bazel: Roll latest rules_libusb
8e2614ad95412e7 io_bazel_rules_go: Update to fork which disables w
7db0eee96bdeb4b pw_bluetooth_profiles: Add module metadata
45fd0510f3a0816 pw_build_info: Add module metadata
1c97f713f41c5ad targets: Make host_device_simulator_binary `bazel
465d99734d3a1b1 pw_bluetooth_proxy: Mark unused parameters with [[
5f4e108bb91e1d4 pw_channel: Add module metadata
bd910367051aa32 pw_chre: Add module metadata
f20a2dc6ded67a5 pw_bluetooth: Add module metadata
13815f73d4aa893 pw_bytes: Add module metadata
d3fdc8b3a0e8d99 pw_bluetooth_hci: Add module metadata
3d3e59c25557e05 pw_build: Clarify docs on pw_elf_to_bin
1d82b0ff4c571fe pw_uart: Add module metadata
ec741c8c94303ff pw_build_mcuxpresso: Add module metadata
03d0423f7f196c8 pw_analog: Add module metadata
8d296361c1f6074 pw_base64: Add module metadata
9ea9ef130481b82 pw_multibuf: AdvanceToData in iterator constructor
98c249943f7a441 pw_blob_store: Add module metadata
30abcad0910ff68 pw_android_toolchain: Add module metadata
732c882e8ec9bfd pw_async: Add module metadata
3fa03cadd9b06a1 pw_cli: Fish shell completion
f4da9803f0e4e34 pw_presubmit: Add module metadata
e202b0b771cd818 pw_sensor: Add Bazel support for Python package
5cc356c68b27f7f pw_clock_tree_mcuxpresso: Remove unnecessary pw::
5b69003409b9ff3 pw_clock_tree_mcuxpresso: Add ClockMcuxpressoAudio
96a282aa6437950 pw_rpc: Add module metadata
13062c9ab277595 pw_router: Add module metadata
1dc0c0626a313f1 pw_varint: Add module metadata

https://pigweed.googlesource.com/pigweed/pigweed
pigweed, pw_toolchain Rolled-Commits: 243ba33cd5434c7..a200b716cd13652
Roller-URL: https://ci.chromium.org/b/8745130076784171521
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I906a7374a847065525dad25d12f3637167d024b3
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/216291
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
1 file changed
tree: 1c515aaa11c43689af0c3e68922f62b21ed2a08f
  1. .github/
  2. src/
  3. targets/
  4. tools/
  5. .bazelrc
  6. .bazelversion
  7. .gitignore
  8. BUILD.bazel
  9. echo.bzl
  10. LICENSE
  11. pigweed.json
  12. README.md
  13. requirements.in
  14. requirements_lock.txt
  15. WORKSPACE
README.md

Pigweed: minimal Bazel example

This repository contains a minimal example of a Bazel-based Pigweed project. It's an echo application for the STM32F429 Discovery Board.

Cloning

git clone --recursive https://pigweed.googlesource.com/pigweed/quickstart/bazel

If you already cloned but forgot to include --recursive, run git submodule update --init to pull all submodules.

TODO: b/300695111 - Don't require submodules for this example.

Building

We‘ll assume you already have Bazel on your system. If you don’t, the recommended way to get it is through Bazelisk.

To build the entire project (including building the application for both the host and the STM32 Discovery Board), run

bazel build //...

To run the application locally on your machine, run,

bazel run //src:echo

Flashing

To flash the firmware to a STM32F429 Discovery Board connected to your machine, run,

bazel run //tools:flash

Note that you don't need to build the firmware first: Bazel knows that the firmware images are needed to flash the board, and will build them for you. And if you edit the source of the firmware or any of its dependencies, it will get rebuilt when you flash.

Communicating

Run,

bazel run //tools:miniterm -- /dev/ttyACM0 --filter=debug

to communicate with the board. When you transmit a character, you should get the same character back!