12using namespace MaxOS::drivers;
20 m_interrupt_enable_port(0x3F9),
21 m_fifo_control_port(0x3FA),
22 m_line_control_port(0x3FB),
23 m_modem_control_port(0x3FC),
24 m_line_status_port(0x3FD)
28 m_interrupt_enable_port.
write(0x00);
31 m_line_control_port.
write(0x80);
34 m_data_port.
write(0x03);
35 m_interrupt_enable_port.
write(0x00);
38 m_line_control_port.
write(0x03);
41 m_fifo_control_port.
write(0xC7);
44 m_modem_control_port.
write(0x0B);
47 m_modem_control_port.
write(0x1E);
48 m_data_port.
write(0xAE);
49 if (m_data_port.
read() != 0xAE)
53 m_modem_control_port.
write(0x0F);
59SerialConsole::~SerialConsole() =
default;
69 while (0 == (m_line_status_port.
read() & 0x20));
A class that handles logging messages to the console and files.
void add_log_writer(OutputStream *log_writer)
Adds an output stream to the logger.
void write_char(char c) final
Writes a character to the output stream.
void put_character(char c)
Waits for the serial port to be ready, then writes a character to it.
SerialConsole(Logger *logger)
Constructs a new Serial Console object and initialises the serial port.
virtual uint8_t read()
read a byte from the port
virtual void write(uint8_t data)
write a byte to the port
Defines a SerialConsole driver for serial output.