MCUIO/LININOIO - Virtualizing MCU peripherals
The MCUIO/LININOIO subsystem allows a Microprocessor Unit (MPU), somehow
connected to a Microcontroller Unit (MCU), to see the MCU's peripherals as
standard Linux peripherals (i.e. gpios, i2c adapters, pwms, ...).
The basic communication protocol is completely generic, it just defines ways
to read/write a (virtualized) memory space on the MCU. Standard, vendor
independent memory maps are then defined for each kind of MCU peripheral, so
that MCU specific implementation details can be ignored by the MPU.
Interrupt events can be spontaneously sent by the MCU to the MPU as write
requests.
The protocol is transport independent, only a bidirectional channel is required
(for instance rs232 or even a network connection).