- Notifications
You must be signed in to change notification settings - Fork25
Minimal support for uart_16550 serial output.
License
rust-osdev/uart_16550
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Minimal support forserial communication throughUART devices, which are compatible to the16550 UART. This crate supports I/O port-mapped (x86 only) and memory-mapped UARTS.
Depending on the system architecture, the UART can be either accessed throughport-mapped I/O ormemory-mapped I/O.
The UART is accessed through port-mapped I/O on architectures such asx86_64
. On these architectures, theSerialPort
type can be used:
use uart_16550::SerialPort;constSERIAL_IO_PORT:u16 =0x3F8;letmut serial_port =unsafe{SerialPort::new(SERIAL_IO_PORT)};serial_port.init();// Now the serial port is ready to be used. To send a byte:serial_port.send(42);// To receive a byte:let data = serial_port.receive();
Most other architectures, such asRISC-V, use memory-mapped I/O for accessing the UARTs. On these architectures, theMmioSerialPort
type can be used:
use uart_16550::MmioSerialPort;constSERIAL_PORT_BASE_ADDRESS:usize =0x1000_0000;letmut serial_port =unsafe{MmioSerialPort::new(SERIAL_PORT_BASE_ADDRESS)};serial_port.init();// Now the serial port is ready to be used. To send a byte:serial_port.send(42);// To receive a byte:let data = serial_port.receive();
This needs to have thecompile-time requirements of thecc
crate installed on your system.It was currently only tested on Linux and MacOS.
Licensed under the MIT license (LICENSE orhttp://opensource.org/licenses/MIT).
About
Minimal support for uart_16550 serial output.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors13
Uh oh!
There was an error while loading.Please reload this page.