[roll third_party/pigweed] pw_preprocessor: Add internal Cortex-M arch defines

Instead of forking build rules to be arch specific, which does not
scale well with the number of CortexM arches, use a common place to
determine the arch macros which can be used by other macros.

Note that these defines are private and internal to Pigweed and
should not be used by downstream projects, they are expected to
be moved and renamed in the near future.

The defines default to the format used by CMSIS, GCC, Clang, etc.
but they follow a module compile time configuration paradigm so
different toolchains can also make the following defines work:
- _PW_ARCH_ARM_V6M
- _PW_ARCH_ARM_V7M
- _PW_ARCH_ARM_V7EM
- _PW_ARCH_ARM_V8M_BASELINE
- _PW_ARCH_ARM_V8M_MAINLINE
- _PW_ARCH_ARM_V8_1M_MAINLINE

Lastly a helper is provided if any of the above have a value of 1:
- _PW_ARCH_ARM_CORTEX_M

Also updates pw_boot_cortex_m, pw_cpu_exception_cortex_m, and
pw_interrupt_cortex_m to use this source of architecture selection
deprecating the previously independent build targets.

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/75540

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: d56a6386ca2422c..242a27cc3b30338
Roller-URL: https://ci.chromium.org/b/8825399223636395569
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8825399223636395569
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Iffeceed196017cca9496fce339306ba2037bd309
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/77745
Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: 3be59ae477feabe3c49074924f5a83be0a8c582f
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cube/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cube/
  12. pw_spin_delay_stm32f429i_disc1/
  13. targets/
  14. third_party/
  15. tools/
  16. .gitattributes
  17. .gitignore
  18. .gitmodules
  19. .gn
  20. activate.bat
  21. banner.txt
  22. bootstrap.bat
  23. bootstrap.sh
  24. BUILD.gn
  25. BUILDCONFIG.gn
  26. env_setup.json
  27. navbar.md
  28. OWNERS
  29. PW_PLUGINS
  30. 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.