pw_sys_io: Add facade constraint_setting, docs

Adds a constraint_setting associated with the pw_sys_io facade, and
constraint_values for the backends for this facade provided by Pigweed.
Also documents how this mechanism should be used.

pw_sys_io is just the first facade to receive this treatment: the rest
will be handled in followup CLs.

Bug: b/272090220
Change-Id: Id1f670ce194757f4ccfe489e0f29ac936f36a1ab
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133290
Reviewed-by: Erik Gilling <konkers@google.com>
Commit-Queue: Ted Pudlik <tpudlik@google.com>
Reviewed-by: Kayce Basques <kayce@google.com>
13 files changed
tree: a167463a7fd90fc9880bee13d601cfe5c1834ea4
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. pw_alignment/
  7. pw_allocator/
  8. pw_analog/
  9. pw_android_toolchain/
  10. pw_arduino_build/
  11. pw_assert/
  12. pw_assert_basic/
  13. pw_assert_log/
  14. pw_assert_tokenized/
  15. pw_assert_zephyr/
  16. pw_async/
  17. pw_async_basic/
  18. pw_base64/
  19. pw_bloat/
  20. pw_blob_store/
  21. pw_bluetooth/
  22. pw_bluetooth_hci/
  23. pw_bluetooth_profiles/
  24. pw_boot/
  25. pw_boot_cortex_m/
  26. pw_build/
  27. pw_build_info/
  28. pw_build_mcuxpresso/
  29. pw_bytes/
  30. pw_checksum/
  31. pw_chrono/
  32. pw_chrono_embos/
  33. pw_chrono_freertos/
  34. pw_chrono_stl/
  35. pw_chrono_threadx/
  36. pw_chrono_zephyr/
  37. pw_cli/
  38. pw_compilation_testing/
  39. pw_console/
  40. pw_containers/
  41. pw_cpu_exception/
  42. pw_cpu_exception_cortex_m/
  43. pw_crypto/
  44. pw_digital_io/
  45. pw_digital_io_mcuxpresso/
  46. pw_docgen/
  47. pw_doctor/
  48. pw_env_setup/
  49. pw_file/
  50. pw_function/
  51. pw_fuzzer/
  52. pw_hdlc/
  53. pw_hex_dump/
  54. pw_i2c/
  55. pw_i2c_linux/
  56. pw_i2c_mcuxpresso/
  57. pw_ide/
  58. pw_interrupt/
  59. pw_interrupt_cortex_m/
  60. pw_interrupt_zephyr/
  61. pw_intrusive_ptr/
  62. pw_kvs/
  63. pw_libc/
  64. pw_log/
  65. pw_log_android/
  66. pw_log_basic/
  67. pw_log_null/
  68. pw_log_rpc/
  69. pw_log_string/
  70. pw_log_tokenized/
  71. pw_log_zephyr/
  72. pw_malloc/
  73. pw_malloc_freelist/
  74. pw_metric/
  75. pw_minimal_cpp_stdlib/
  76. pw_module/
  77. pw_multisink/
  78. pw_package/
  79. pw_perf_test/
  80. pw_persistent_ram/
  81. pw_polyfill/
  82. pw_preprocessor/
  83. pw_presubmit/
  84. pw_protobuf/
  85. pw_protobuf_compiler/
  86. pw_random/
  87. pw_result/
  88. pw_ring_buffer/
  89. pw_router/
  90. pw_rpc/
  91. pw_rpc_transport/
  92. pw_rust/
  93. pw_snapshot/
  94. pw_software_update/
  95. pw_span/
  96. pw_spi/
  97. pw_spi_mcuxpresso/
  98. pw_status/
  99. pw_stm32cube_build/
  100. pw_stream/
  101. pw_stream_uart_mcuxpresso/
  102. pw_string/
  103. pw_symbolizer/
  104. pw_sync/
  105. pw_sync_baremetal/
  106. pw_sync_embos/
  107. pw_sync_freertos/
  108. pw_sync_stl/
  109. pw_sync_threadx/
  110. pw_sync_zephyr/
  111. pw_sys_io/
  112. pw_sys_io_arduino/
  113. pw_sys_io_baremetal_lm3s6965evb/
  114. pw_sys_io_baremetal_stm32f429/
  115. pw_sys_io_emcraft_sf2/
  116. pw_sys_io_mcuxpresso/
  117. pw_sys_io_pico/
  118. pw_sys_io_stdio/
  119. pw_sys_io_stm32cube/
  120. pw_sys_io_zephyr/
  121. pw_system/
  122. pw_target_runner/
  123. pw_thread/
  124. pw_thread_embos/
  125. pw_thread_freertos/
  126. pw_thread_stl/
  127. pw_thread_threadx/
  128. pw_thread_zephyr/
  129. pw_tls_client/
  130. pw_tls_client_boringssl/
  131. pw_tls_client_mbedtls/
  132. pw_tokenizer/
  133. pw_tool/
  134. pw_toolchain/
  135. pw_trace/
  136. pw_trace_tokenized/
  137. pw_transfer/
  138. pw_unit_test/
  139. pw_unit_test_zephyr/
  140. pw_varint/
  141. pw_watch/
  142. pw_web/
  143. pw_work_queue/
  144. seed/
  145. targets/
  146. third_party/
  147. ts/
  148. zephyr/
  149. .bazelignore
  150. .bazelrc
  151. .black.toml
  152. .clang-format
  153. .clang-tidy
  154. .eslintrc.json
  155. .git-blame-ignore-revs
  156. .gitattributes
  157. .gitignore
  158. .gn
  159. .mypy.ini
  160. .prettierrc.js
  161. .pw_ide.yaml
  162. .pylintrc
  163. activate.bat
  164. Android.bp
  165. AUTHORS
  166. bootstrap.bat
  167. bootstrap.sh
  168. BUILD.bazel
  169. BUILD.gn
  170. BUILDCONFIG.gn
  171. CMakeLists.txt
  172. jest.config.ts
  173. Kconfig.zephyr
  174. LICENSE
  175. modules.gni
  176. OWNERS
  177. package-lock.json
  178. package.json
  179. pigweed.json
  180. PIGWEED_MODULES
  181. README.md
  182. rollup.config.js
  183. tsconfig.json
  184. WORKSPACE
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