Portable C building blocks for embedded firmware and host tooling — concurrency primitives, networking abstractions, and small algorithms — designed to compile cleanly across Zephyr, RTOS, and Linux without scattered #ifdefs.
dtmc_base is part of the Embedded Applications Lab — a set of working applications based on a set of reusable libraries across MCU, Linux, and RTOS targets.
| Area | Examples |
|---|---|
| Concurrency | dttasker, dtsemaphore, dtlock, dtbufferqueue |
| Networking / I/O | dtnetportal, dtiox, dtframer, dtnetbridge |
| Hardware facades | dtgpiopin, dtadc, dtdisplay, dtdotstar |
| Storage | dtnvblob, dtradioconfig |
| Diagnostics | dtruntime, dttasker_registry, dtbusywork |
Most of the library is plain, platform-independent C. Where OS or hardware integration is unavoidable, dtmc_base defines a small porting contract — nine header-only interfaces you implement once per platform:
dtsemaphore dtlock dttasker dtcpu dtruntime dtgpiopin dtiox dtnvblob dtbufferqueue
Everything else builds on top of those without knowing the underlying OS.
Zephyr · FreeRTOS-style RTOS · Linux (reference port, testing, tooling)
See the dtmc_base documentation site for the full API reference and porting guide.