pw_cpu_exception_cortex_m: Provide ARMv8-M specific build rules

Sets up the initial build framework to support ARMv8-M specific
capability in a way which supports re-using the existing ARMv7-M
code.

Also extends the pw_add_module_library to add PUBLIC_DEFINES and
PRIVATE_DEFINES in order to set the defines to re-use the same
source code.

Bug: 296
Bug: 583
Change-Id: I565a9b49b5dc4c4603dab1260c1d32c9a4156350
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/73880
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
4 files changed
tree: e4b2e8a28c38e103b27ca89b72463454ecaee7e7
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_android_toolchain/
  7. pw_arduino_build/
  8. pw_assert/
  9. pw_assert_basic/
  10. pw_assert_log/
  11. pw_base64/
  12. pw_bloat/
  13. pw_blob_store/
  14. pw_bluetooth_hci/
  15. pw_boot/
  16. pw_boot_cortex_m/
  17. pw_build/
  18. pw_build_info/
  19. pw_build_mcuxpresso/
  20. pw_bytes/
  21. pw_checksum/
  22. pw_chrono/
  23. pw_chrono_embos/
  24. pw_chrono_freertos/
  25. pw_chrono_stl/
  26. pw_chrono_threadx/
  27. pw_cli/
  28. pw_console/
  29. pw_containers/
  30. pw_cpu_exception/
  31. pw_cpu_exception_cortex_m/
  32. pw_crypto/
  33. pw_docgen/
  34. pw_doctor/
  35. pw_env_setup/
  36. pw_file/
  37. pw_function/
  38. pw_fuzzer/
  39. pw_hdlc/
  40. pw_hex_dump/
  41. pw_i2c/
  42. pw_interrupt/
  43. pw_interrupt_cortex_m/
  44. pw_kvs/
  45. pw_libc/
  46. pw_log/
  47. pw_log_basic/
  48. pw_log_null/
  49. pw_log_rpc/
  50. pw_log_tokenized/
  51. pw_malloc/
  52. pw_malloc_freelist/
  53. pw_metric/
  54. pw_minimal_cpp_stdlib/
  55. pw_module/
  56. pw_multisink/
  57. pw_package/
  58. pw_persistent_ram/
  59. pw_polyfill/
  60. pw_preprocessor/
  61. pw_presubmit/
  62. pw_protobuf/
  63. pw_protobuf_compiler/
  64. pw_random/
  65. pw_result/
  66. pw_ring_buffer/
  67. pw_router/
  68. pw_rpc/
  69. pw_snapshot/
  70. pw_software_update/
  71. pw_span/
  72. pw_status/
  73. pw_stm32cube_build/
  74. pw_stream/
  75. pw_string/
  76. pw_symbolizer/
  77. pw_sync/
  78. pw_sync_baremetal/
  79. pw_sync_embos/
  80. pw_sync_freertos/
  81. pw_sync_stl/
  82. pw_sync_threadx/
  83. pw_sys_io/
  84. pw_sys_io_arduino/
  85. pw_sys_io_baremetal_lm3s6965evb/
  86. pw_sys_io_baremetal_stm32f429/
  87. pw_sys_io_mcuxpresso/
  88. pw_sys_io_stdio/
  89. pw_sys_io_stm32cube/
  90. pw_system/
  91. pw_target_runner/
  92. pw_thread/
  93. pw_thread_embos/
  94. pw_thread_freertos/
  95. pw_thread_stl/
  96. pw_thread_threadx/
  97. pw_tls_client/
  98. pw_tls_client_boringssl/
  99. pw_tls_client_mbedtls/
  100. pw_tokenizer/
  101. pw_tool/
  102. pw_toolchain/
  103. pw_trace/
  104. pw_trace_tokenized/
  105. pw_transfer/
  106. pw_unit_test/
  107. pw_varint/
  108. pw_watch/
  109. pw_web_ui/
  110. pw_work_queue/
  111. targets/
  112. third_party/
  113. .bazelignore
  114. .bazelrc
  115. .clang-format
  116. .clang-tidy
  117. .eslintrc.json
  118. .gitattributes
  119. .gitignore
  120. .gn
  121. .prettierrc.js
  122. .pylintrc
  123. activate.bat
  124. Android.bp
  125. AUTHORS
  126. bootstrap.bat
  127. bootstrap.sh
  128. BUILD.bazel
  129. BUILD.gn
  130. BUILDCONFIG.gn
  131. CMakeLists.txt
  132. LICENSE
  133. modules.gni
  134. OWNERS
  135. package.json
  136. PW_PLUGINS
  137. README.md
  138. tsconfig.json
  139. WORKSPACE
  140. yarn.lock
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/

Links