Wed Jan 22 08:40:31 EST 2020

That OS

What is needed?  In principle the interface between the OS layer and
the application could be just C, but in practice this is quite hard to
work with when modifying both at the same time, and having some
updated and some not.

So use some kind of "extend only" binairy interface.  It would be a
good exercise in doing so.  Changing the interface would then require
to update the OS layer for all devices.

So, each device has:
- gdbstub
- a standard interface to host (USB slip)
- A csp-style scheduler
- Some HAL that is connected through cbuf "commands".