#[repr(C)]pub struct UartRegisters {
pub fifo: u32,
pub control: Control,
pub status: Status,
}Expand description
Describes the UART’s registers
Use the MmioUartRegisters type to access a particular UART at a particular address.
Fields§
§fifo: u32Data FIFO
- Read here to get a byte from the FIFO
- Write here to put a byte into the FIFO
control: ControlControl Register
Adjust various UART settings
status: StatusStatus Register
Read-only UART status
Implementations§
Source§impl UartRegisters
impl UartRegisters
Sourcepub const unsafe fn new_mmio_at(addr: usize) -> MmioUartRegisters<'static>
pub const unsafe fn new_mmio_at(addr: usize) -> MmioUartRegisters<'static>
Create a new handle to this peripheral given an address.
§Safety
See the safety notes for Self::new_mmio.
Sourcepub const unsafe fn new_mmio(
ptr: *mut UartRegisters,
) -> MmioUartRegisters<'static>
pub const unsafe fn new_mmio( ptr: *mut UartRegisters, ) -> MmioUartRegisters<'static>
Create a new handle to this peripheral.
§Safety
The pointer given must have suitable alignment, and point to an object which matches the layout given by the structure pointed to.
If you create multiple instances of this handle at the same time, you are responsible for ensuring that there are no read-modify-write races on any of the registers.
The core::marker::Send trait is implemented for the MMIO handle. However, there are cases where this implementation might be incorrect, for example if an MMIO handle was created for a core-local private address.
In that case, it it is recommended to un-implement Send. on the register block structure.