Crate serial_port

source ·
Expand description

A full serial driver with more advanced I/O support, e.g., interrupt-based data receival.

This crate builds on [serial_port_basic], which provides the lower-level types and functions that enable simple interactions with serial ports. This crate extends that functionality to provide interrupt handlers for receiving data and handling data access in a deferred, asynchronous manner. It also implements additional higher-level I/O traits for serial ports, namely [core2::io::Read] and [core2::io::Write].


Typically, drivers do not need to be designed in this split manner. However, the serial port is the very earliest device to be initialized and used in Theseus, as it acts as the backend output stream for Theseus’s logger.


  • A chunk of data read from a serial port that will be transmitted to a receiver.
  • An empty error type indicating that a data sender could not be set for a serial port because a sender had already been set for it.
  • A serial port abstraction with support for interrupt-based data receival.
  • A serial port and its various data and control registers.