pw_chrono_embos: adds SystemTimer backend

Adds a backend for pw::chrono::SystemTimer based on embOS's
software timer API.

Change-Id: I0d03c2b2b6474bcefb968a20897748f552ca1a7e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/50860
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_chrono_embos/BUILD b/pw_chrono_embos/BUILD
index 9248d51..b86d63d 100644
--- a/pw_chrono_embos/BUILD
+++ b/pw_chrono_embos/BUILD
@@ -54,3 +54,40 @@
         "//pw_chrono:system_clock_facade",
     ],
 )
+
+pw_cc_library(
+    name = "system_timer_headers",
+    hdrs = [
+        "public/pw_chrono_embos/system_timer_inline.h",
+        "public/pw_chrono_embos/system_timer_native.h",
+        "public_overrides/pw_chrono_backend/system_timer_inline.h",
+        "public_overrides/pw_chrono_backend/system_timer_native.h",
+    ],
+    includes = [
+        "public",
+        "public_overrides",
+    ],
+    deps = [
+        "//pw_chrono:system_clock",
+        "//pw_function",
+        "//pw_chrono:system_timer_facade",
+        # TODO(pwbug/317): This should depend on embOS but our third parties
+        # currently do not have Bazel support.
+    ],
+)
+
+pw_cc_library(
+    name = "system_timer",
+    srcs = [
+        "system_timer.cc",
+    ],
+    deps = [
+        ":system_timer_headers",
+        "//pw_chrono:system_timer_facade",
+        ":system_clock",
+        "//pw_assert",
+        "//pw_interrupt:context",
+        # TODO(pwbug/317): This should depend on embOS but our third parties
+        # currently do not have Bazel support.
+    ],
+)