EMBEDDED · C++17 · HEAP-FREE
An on-device serial debug shell that runs on constrained targets — no heap, no std::function, no exceptions.
A command interpreter for embedded devices you can talk to over a UART. It reads a line of input, parses and validates it, and dispatches to the right handler — the kind of debug/diagnostic console real firmware needs on the bench. The whole thing is built to embedded constraints: it never touches the heap, avoids std::function, and reports outcomes with explicit Status codes instead of exceptions.
std::string_view tokens that point back into the original buffer — no string copies, no allocation.std::function), stored in a fixed-size array registry — deterministic, heap-free, ISR-friendly.set/get commands own a table of settings with min/max bounds and write straight to the target variable, rejecting out-of-range input with a clear status.help, echo, set, get, and history — with unit tests that run on the host.Every design choice maps to an embedded reality. string_view avoids allocation; function pointers keep the dispatch table small and predictable; explicit Status return codes replace exceptions (which are often banned in safety-critical firmware). It's a compact demonstration of writing modern, clean C++ that still respects the tight budget of a microcontroller.