[third_party/pigweed] Roll 19 commits

3623b95aac6bcc7 roll: buildifier
5d8f62aff08aa9f roll: host_tools
d34022381ecd7d8 roll: gn
abe1cddf7f6d093 roll: clang
8e077c8c1b57e3f roll: cmake
ea445cca4e86ca2 pw_toolchain: Only fetch compatible Rust toolchain
813b9aa4293b8f9 docs: Update changelog
d7730bf21111a4d pw_bluetooth_sapphire: Fix pragma_once lint
8d2dd79f3c9dabf pw_bluetooth_sapphire: Fix linter errors
77c17e6d2a505bf pw_status: Adopt latest docs standard
ab02795c6850a9a bazel: Partial pw_system_console fix
8cc781838aee952 pw_toolchain_bazel: Add initial pw_cc_action_confi
12b2e2ad12207d1 pw_bluetooth_sapphire: Fix bazel formatting
ba33eb9c71d7135 pw_bluetooth_sapphire: Remove ICU from bazel build
3ff266eaa7f7144 pw_presubmit: Create Sapphire presubmit step
6d36251a6fa4ec3 pw_sapphire_bluetooth: Update copyright headers
e7dc0b5a0536a46 pw_bluetooth_sapphire: Refactor pw_bluetooth_sapph
98e8caa7fef8ebe third_party/icu: Add GN rules for ICU
1a83466e9c54b8c pw_package: Add ICU package

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: cd0d5b86bcd9be5..3623b95aac6bcc7
Roller-URL: https://ci.chromium.org/b/8763919013564882065
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I91a26156b76992497d410d7c7eee4b839d49091a
Reviewed-on: https://pigweed-review.googlesource.com/c/gonk/+/181671
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
1 file changed
tree: f66cf4e4fa906dcb27f56b1ea61c2aa32eb7e0b0
  1. applications/
  2. build_overrides/
  3. scripts/
  4. targets/
  5. third_party/
  6. tools/
  7. .gitignore
  8. .gitmodules
  9. .gn
  10. banner.txt
  11. bootstrap.sh
  12. BUILD.gn
  13. BUILDCONFIG.gn
  14. OWNERS
  15. pigweed.json
  16. README.md
README.md

Gonk

Getting Started

  1. Clone the repo

    git clone https://pigweed.googlesource.com/pigweed/gonk
    
  2. Source bootstrap.sh to download all compilers and tooling into the environment directory:

    . ./bootstrap.sh
    

    This should init all git submodules for you.

  3. From here on the Pigweed environment is activated. You can activate the environment in a new shell without re-running bootstrap by sourcing activate.sh

    . ./activate.sh
    

Compile:

Build for the host and device by running:

pw build

This is mostly a shortcut with nice output for running gn gen out/gn and ninja -C out/gn.

The build commands are defined in: //tools/gonk_tools/build_project.py.

Run:

Host

Run the host app and connect to it via pw-system-console:

./out/gn/host_device_simulator.speed_optimized/obj/applications/system_example/bin/system_example & \
  pw-system-console --socket-addr default \
    --proto-globs third_party/pigweed/pw_rpc/echo.proto ; \
  killall system_example

On device

Flashing

openocd -s $PW_PIGWEED_CIPD_INSTALL_DIR/share/openocd/scripts \
  -f $GONK_ROOT/targets/stm32f769i_disc0_stm32cube/openocd_stm32f7xx.cfg \
  -c "program out/gn/stm32f769i_disc0_stm32cube.size_optimized/obj/applications/system_example/bin/system_example.elf reset exit"

Updating STM32Cube

Checkout the desired commits in each of these submodules:

third_party/stm32cube_f7/cmsis_core
third_party/stm32cube_f7/cmsis_device
third_party/stm32cube_f7/hal_driver

Then run from Gonk root:

python -m pw_stm32cube_build gen_file_list third_party/stm32cube_f7