pw_stream_uart_mcuxpresso: InterruptSafeWriter example

This change introduces a new interrupt safe writer example
that compiles by itself to ensure that the build
environment provides all the expected headers.

I have also decided to directly integrate the example
code from the documentation file, so that we know that
it is compiling correctly.

Test: w presubmit --step=gn_mimxrt595_freertos_build
Test: w presubmit --step=gn_mimxrt595_build

Bug: 343773769
Change-Id: I98180ae94e97e2a0bf57ae995fe2fa009ae8685c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212513
Reviewed-by: Jonathon Reinhart <jrreinhart@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Austin Foxley <afoxley@google.com>
Commit-Queue: Christoph Klee <chklee@google.com>
4 files changed
tree: 187be9ca13908571b5495d494a59727c5a1a2244
  1. .allstar/
  2. .github/
  3. .vscode/
  4. build_overrides/
  5. docker/
  6. docs/
  7. kudzu/
  8. pw_alignment/
  9. pw_allocator/
  10. pw_analog/
  11. pw_android_toolchain/
  12. pw_arduino_build/
  13. pw_assert/
  14. pw_assert_basic/
  15. pw_assert_log/
  16. pw_assert_tokenized/
  17. pw_assert_zephyr/
  18. pw_async/
  19. pw_async2/
  20. pw_async2_basic/
  21. pw_async2_epoll/
  22. pw_async_basic/
  23. pw_base64/
  24. pw_bloat/
  25. pw_blob_store/
  26. pw_bluetooth/
  27. pw_bluetooth_hci/
  28. pw_bluetooth_profiles/
  29. pw_bluetooth_proxy/
  30. pw_bluetooth_sapphire/
  31. pw_boot/
  32. pw_boot_cortex_m/
  33. pw_build/
  34. pw_build_android/
  35. pw_build_info/
  36. pw_build_mcuxpresso/
  37. pw_bytes/
  38. pw_channel/
  39. pw_checksum/
  40. pw_chre/
  41. pw_chrono/
  42. pw_chrono_embos/
  43. pw_chrono_freertos/
  44. pw_chrono_rp2040/
  45. pw_chrono_stl/
  46. pw_chrono_threadx/
  47. pw_chrono_zephyr/
  48. pw_cli/
  49. pw_clock_tree/
  50. pw_clock_tree_mcuxpresso/
  51. pw_compilation_testing/
  52. pw_config_loader/
  53. pw_console/
  54. pw_containers/
  55. pw_cpu_exception/
  56. pw_cpu_exception_cortex_m/
  57. pw_cpu_exception_risc_v/
  58. pw_crypto/
  59. pw_digital_io/
  60. pw_digital_io_linux/
  61. pw_digital_io_mcuxpresso/
  62. pw_digital_io_rp2040/
  63. pw_dma_mcuxpresso/
  64. pw_docgen/
  65. pw_doctor/
  66. pw_emu/
  67. pw_env_setup/
  68. pw_env_setup_zephyr/
  69. pw_file/
  70. pw_format/
  71. pw_function/
  72. pw_fuzzer/
  73. pw_grpc/
  74. pw_hdlc/
  75. pw_hex_dump/
  76. pw_i2c/
  77. pw_i2c_linux/
  78. pw_i2c_mcuxpresso/
  79. pw_i2c_rp2040/
  80. pw_ide/
  81. pw_interrupt/
  82. pw_interrupt_cortex_m/
  83. pw_interrupt_xtensa/
  84. pw_interrupt_zephyr/
  85. pw_intrusive_ptr/
  86. pw_json/
  87. pw_kvs/
  88. pw_libc/
  89. pw_libcxx/
  90. pw_log/
  91. pw_log_android/
  92. pw_log_basic/
  93. pw_log_null/
  94. pw_log_rpc/
  95. pw_log_string/
  96. pw_log_tokenized/
  97. pw_log_zephyr/
  98. pw_malloc/
  99. pw_malloc_freelist/
  100. pw_malloc_freertos/
  101. pw_metric/
  102. pw_minimal_cpp_stdlib/
  103. pw_module/
  104. pw_multibuf/
  105. pw_multisink/
  106. pw_package/
  107. pw_perf_test/
  108. pw_persistent_ram/
  109. pw_polyfill/
  110. pw_preprocessor/
  111. pw_presubmit/
  112. pw_protobuf/
  113. pw_protobuf_compiler/
  114. pw_random/
  115. pw_result/
  116. pw_ring_buffer/
  117. pw_router/
  118. pw_rpc/
  119. pw_rpc_transport/
  120. pw_rust/
  121. pw_sensor/
  122. pw_snapshot/
  123. pw_software_update/
  124. pw_span/
  125. pw_spi/
  126. pw_spi_linux/
  127. pw_spi_mcuxpresso/
  128. pw_spi_rp2040/
  129. pw_status/
  130. pw_stm32cube_build/
  131. pw_stream/
  132. pw_stream_shmem_mcuxpresso/
  133. pw_stream_uart_linux/
  134. pw_stream_uart_mcuxpresso/
  135. pw_string/
  136. pw_symbolizer/
  137. pw_sync/
  138. pw_sync_baremetal/
  139. pw_sync_embos/
  140. pw_sync_freertos/
  141. pw_sync_stl/
  142. pw_sync_threadx/
  143. pw_sync_zephyr/
  144. pw_sys_io/
  145. pw_sys_io_ambiq_sdk/
  146. pw_sys_io_arduino/
  147. pw_sys_io_baremetal_lm3s6965evb/
  148. pw_sys_io_baremetal_stm32f429/
  149. pw_sys_io_emcraft_sf2/
  150. pw_sys_io_mcuxpresso/
  151. pw_sys_io_rp2040/
  152. pw_sys_io_stdio/
  153. pw_sys_io_stm32cube/
  154. pw_sys_io_zephyr/
  155. pw_system/
  156. pw_target_runner/
  157. pw_thread/
  158. pw_thread_embos/
  159. pw_thread_freertos/
  160. pw_thread_stl/
  161. pw_thread_threadx/
  162. pw_thread_zephyr/
  163. pw_tls_client/
  164. pw_tls_client_boringssl/
  165. pw_tls_client_mbedtls/
  166. pw_tokenizer/
  167. pw_toolchain/
  168. pw_toolchain_bazel/
  169. pw_trace/
  170. pw_trace_tokenized/
  171. pw_transfer/
  172. pw_uart/
  173. pw_unit_test/
  174. pw_unit_test_zephyr/
  175. pw_varint/
  176. pw_watch/
  177. pw_web/
  178. pw_work_queue/
  179. seed/
  180. targets/
  181. third_party/
  182. ts/
  183. zephyr/
  184. .bazelignore
  185. .bazelrc
  186. .bazelversion
  187. .black.toml
  188. .clang-format
  189. .clang-tidy
  190. .eslintrc.cjs
  191. .git-blame-ignore-revs
  192. .gitattributes
  193. .gitignore
  194. .gn
  195. .mypy.ini
  196. .prettierignore
  197. .prettierrc.cjs
  198. .pw_ide.yaml
  199. .pylintrc
  200. activate.bat
  201. Android.bp
  202. AUTHORS
  203. bootstrap.bat
  204. bootstrap.sh
  205. BUILD.bazel
  206. BUILD.gn
  207. BUILDCONFIG.gn
  208. CMakeLists.txt
  209. jest.config.ts
  210. Kconfig.zephyr
  211. LICENSE
  212. modules.gni
  213. OWNERS
  214. package-lock.json
  215. package.json
  216. pigweed.json
  217. PIGWEED_MODULES
  218. README.md
  219. rollup.config.js
  220. tsconfig.json
  221. WORKSPACE
  222. WORKSPACE_OWNERS
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