target_toolchains: Add C++20 toolchains

Change-Id: I5b2f10214f3a597591172bc03342529b27098b6f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/97575
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Erik Gilling <konkers@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
GitOrigin-RevId: a5c06ded7de94a02d20f35556fd457f92e6fe180
1 file changed
tree: ce229cc5ab607489f17ab37b94c2d2af84bfffc9
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_pico/
  7. pw_board_led_stm32cube/
  8. pw_board_led_stm32f429i_disc1/
  9. pw_graphics/
  10. pw_spin_delay/
  11. pw_spin_delay_arduino/
  12. pw_spin_delay_host/
  13. pw_spin_delay_pico/
  14. pw_spin_delay_stm32cube/
  15. pw_spin_delay_stm32f429i_disc1/
  16. targets/
  17. tools/
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. activate.bat
  23. banner.txt
  24. bootstrap.bat
  25. bootstrap.sh
  26. BUILD.gn
  27. BUILDCONFIG.gn
  28. env_setup.json
  29. navbar.md
  30. OWNERS
  31. PW_PLUGINS
  32. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.

pw_graphics

The //pw_graphics folder contains some libraries for drawing to an RGB565 framebuffer and displaying it on various platforms.

The demo applications that make use of these libraries are:

Build instructions

First time setup:

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental
cd experimental
. ./bootstrap.sh
pw package install imgui
pw package install glfw
pw package install stm32cube_f4

STM32F429-DISC1

Compile:

gn gen out --export-compile-commands --args="
  dir_pw_third_party_stm32cube_f4=\"$PROJECT_DIR/.environment/packages/stm32cube_f4\"
"
ninja -C out

Flash:

openocd -f third_party/pigweed/targets/stm32f429i_disc1/py/stm32f429i_disc1_utils/openocd_stm32f4xx.cfg -c "program out/stm32f429i_disc1_stm32cube_debug/obj/applications/terminal_display/bin/terminal_demo.elf verify reset exit"

Linux, Windows or Mac

Compile:

gn gen out --export-compile-commands --args="
  dir_pw_third_party_imgui=\"$PROJECT_DIR/.environment/packages/imgui\"
"
ninja -C out

Run:

out/host_debug/obj/applications/terminal_display/bin/terminal_demo

Raspberry Pi Pico Connected to an ILI9341

Clone the pico-sdk repo:

cd $HOME
git clone https://github.com/raspberrypi/pico-sdk

Compile:

gn gen out --export-compile-commands --args="
  PICO_SRC_DIR=\"$HOME/pico-sdk\"
"
ninja -C out

Create a uf2 file for flashing the Pico with:

./out/host_debug/obj/targets/rp2040/bin/elf2uf2 ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2

Copy ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2 to your Pi Pico.