zephyr: fix build for chameleon and ToT Zephyr

- Fix incorrect 'IMPLEMENTS_FACADE' which got away from me in code
  review.
- Update the zephyr implementation of pw_assert
- Fix selection of backends to happen at config time before including
  facades
- Update Kconfigs to stop using menus which ended up just making things
  confusing.
- Fix some missing 'select' statements in Kconfigs

Signed-off-by: Yuval Peress <peress@google.com>
Change-Id: I4b830481f62aa27932df4ef5fc19233719f69c74
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/102542
Reviewed-by: Paul Fagerburg <pfagerburg@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
17 files changed
tree: d7577cb9ff00d7bbcbf50c49fc34f6d096086396
  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_assert_tokenized/
  12. pw_assert_zephyr/
  13. pw_base64/
  14. pw_bloat/
  15. pw_blob_store/
  16. pw_bluetooth/
  17. pw_bluetooth_hci/
  18. pw_boot/
  19. pw_boot_cortex_m/
  20. pw_build/
  21. pw_build_info/
  22. pw_build_mcuxpresso/
  23. pw_bytes/
  24. pw_checksum/
  25. pw_chrono/
  26. pw_chrono_embos/
  27. pw_chrono_freertos/
  28. pw_chrono_stl/
  29. pw_chrono_threadx/
  30. pw_chrono_zephyr/
  31. pw_cli/
  32. pw_console/
  33. pw_containers/
  34. pw_cpu_exception/
  35. pw_cpu_exception_cortex_m/
  36. pw_crypto/
  37. pw_digital_io/
  38. pw_docgen/
  39. pw_doctor/
  40. pw_env_setup/
  41. pw_file/
  42. pw_function/
  43. pw_fuzzer/
  44. pw_hdlc/
  45. pw_hex_dump/
  46. pw_i2c/
  47. pw_i2c_mcuxpresso/
  48. pw_interrupt/
  49. pw_interrupt_cortex_m/
  50. pw_interrupt_zephyr/
  51. pw_kvs/
  52. pw_libc/
  53. pw_log/
  54. pw_log_android/
  55. pw_log_basic/
  56. pw_log_null/
  57. pw_log_rpc/
  58. pw_log_string/
  59. pw_log_tokenized/
  60. pw_log_zephyr/
  61. pw_malloc/
  62. pw_malloc_freelist/
  63. pw_metric/
  64. pw_minimal_cpp_stdlib/
  65. pw_module/
  66. pw_multisink/
  67. pw_package/
  68. pw_persistent_ram/
  69. pw_polyfill/
  70. pw_preprocessor/
  71. pw_presubmit/
  72. pw_protobuf/
  73. pw_protobuf_compiler/
  74. pw_random/
  75. pw_result/
  76. pw_ring_buffer/
  77. pw_router/
  78. pw_rpc/
  79. pw_snapshot/
  80. pw_software_update/
  81. pw_span/
  82. pw_spi/
  83. pw_status/
  84. pw_stm32cube_build/
  85. pw_stream/
  86. pw_string/
  87. pw_symbolizer/
  88. pw_sync/
  89. pw_sync_baremetal/
  90. pw_sync_embos/
  91. pw_sync_freertos/
  92. pw_sync_stl/
  93. pw_sync_threadx/
  94. pw_sync_zephyr/
  95. pw_sys_io/
  96. pw_sys_io_arduino/
  97. pw_sys_io_baremetal_lm3s6965evb/
  98. pw_sys_io_baremetal_stm32f429/
  99. pw_sys_io_emcraft_sf2/
  100. pw_sys_io_mcuxpresso/
  101. pw_sys_io_stdio/
  102. pw_sys_io_stm32cube/
  103. pw_sys_io_zephyr/
  104. pw_system/
  105. pw_target_runner/
  106. pw_thread/
  107. pw_thread_embos/
  108. pw_thread_freertos/
  109. pw_thread_stl/
  110. pw_thread_threadx/
  111. pw_tls_client/
  112. pw_tls_client_boringssl/
  113. pw_tls_client_mbedtls/
  114. pw_tokenizer/
  115. pw_tool/
  116. pw_toolchain/
  117. pw_trace/
  118. pw_trace_tokenized/
  119. pw_transfer/
  120. pw_unit_test/
  121. pw_varint/
  122. pw_watch/
  123. pw_web_ui/
  124. pw_work_queue/
  125. targets/
  126. third_party/
  127. zephyr/
  128. .bazelignore
  129. .bazelrc
  130. .clang-format
  131. .clang-tidy
  132. .eslintrc.json
  133. .gitattributes
  134. .gitignore
  135. .gn
  136. .prettierrc.js
  137. .pylintrc
  138. activate.bat
  139. Android.bp
  140. AUTHORS
  141. bootstrap.bat
  142. bootstrap.sh
  143. BUILD.bazel
  144. BUILD.gn
  145. BUILDCONFIG.gn
  146. CMakeLists.txt
  147. Kconfig.zephyr
  148. LICENSE
  149. modules.gni
  150. OWNERS
  151. package.json
  152. PIGWEED_MODULES
  153. PW_PLUGINS
  154. README.md
  155. rollup.config.js
  156. tsconfig.json
  157. tsconfig.rollup.json
  158. WORKSPACE
  159. 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