pub struct AxiUartlite { /* private fields */ }Expand description
AXI UART Lite peripheral driver.
Implementations§
Source§impl AxiUartlite
impl AxiUartlite
Sourcepub const unsafe fn new(base_addr: u32) -> Self
pub const unsafe fn new(base_addr: u32) -> Self
Create a new AXI UART Lite peripheral driver.
§Safety
- The
base_addrmust be a valid memory-mapped register address of an AXI UART Lite peripheral. - Dereferencing an invalid or misaligned address results in undefined behavior.
- The caller must ensure that no other code concurrently modifies the same peripheral registers in an unsynchronized manner to prevent data races.
- This function does not enforce uniqueness of driver instances. Creating multiple instances
with the same
base_addrcan lead to unintended behavior if not externally synchronized. - The driver performs volatile reads and writes to the provided address.
Sourcepub const fn regs(&mut self) -> &mut MmioRegisters<'static>
pub const fn regs(&mut self) -> &mut MmioRegisters<'static>
Direct register access.
Sourcepub fn write_fifo(&mut self, data: u8) -> Result<(), Infallible>
pub fn write_fifo(&mut self, data: u8) -> Result<(), Infallible>
Write into the UART Lite.
Returns nb::Error::WouldBlock if the TX FIFO is full.
Sourcepub fn write_fifo_unchecked(&mut self, data: u8)
pub fn write_fifo_unchecked(&mut self, data: u8)
Write into the FIFO without checking the FIFO fill status.
This can be useful to completely fill the FIFO if it is known to be empty.
Sourcepub fn read_fifo(&mut self) -> Result<u8, Infallible>
pub fn read_fifo(&mut self) -> Result<u8, Infallible>
Read from the UART Lite.
Offers a
Sourcepub fn read_fifo_unchecked(&mut self) -> u8
pub fn read_fifo_unchecked(&mut self) -> u8
Read from the FIFO without checking the FIFO fill status.
Sourcepub fn tx_fifo_empty(&self) -> bool
pub fn tx_fifo_empty(&self) -> bool
Is the TX FIFO empty?
Sourcepub fn tx_fifo_full(&self) -> bool
pub fn tx_fifo_full(&self) -> bool
TX FIFO full status.
Sourcepub fn rx_has_data(&self) -> bool
pub fn rx_has_data(&self) -> bool
RX FIFO has data.
Sourcepub fn read_and_clear_errors(&mut self) -> RxErrorsCounted
pub fn read_and_clear_errors(&mut self) -> RxErrorsCounted
Read the error counters and also resets them.
Sourcepub fn reset_rx_fifo(&mut self)
pub fn reset_rx_fifo(&mut self)
Reset the RX FIFO.
Sourcepub fn reset_tx_fifo(&mut self)
pub fn reset_tx_fifo(&mut self)
Reset the TX FIFO.
Sourcepub fn enable_interrupt(&mut self)
pub fn enable_interrupt(&mut self)
Enable UART Lite interrupts.
Sourcepub fn disable_interrupt(&mut self)
pub fn disable_interrupt(&mut self)
Disable UART Lite interrupts.
Trait Implementations§
Source§impl ErrorType for AxiUartlite
impl ErrorType for AxiUartlite
Source§type Error = Infallible
type Error = Infallible
Error type
Source§impl ErrorType for AxiUartlite
impl ErrorType for AxiUartlite
Source§type Error = Infallible
type Error = Infallible
Error type of all the IO operations on this type.
Source§impl Read for AxiUartlite
impl Read for AxiUartlite
Source§impl Read for AxiUartlite
impl Read for AxiUartlite
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Source§fn read_exact(
&mut self,
buf: &mut [u8],
) -> Result<(), ReadExactError<Self::Error>>
fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>
Read the exact number of bytes required to fill
buf. Read moreSource§impl Write for AxiUartlite
impl Write for AxiUartlite
Source§impl Write for AxiUartlite
impl Write for AxiUartlite
Source§fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
Write a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Self::Error>
fn flush(&mut self) -> Result<(), Self::Error>
Flush this output stream, blocking until all intermediately buffered contents reach their destination.
Auto Trait Implementations§
impl Freeze for AxiUartlite
impl RefUnwindSafe for AxiUartlite
impl Send for AxiUartlite
impl !Sync for AxiUartlite
impl Unpin for AxiUartlite
impl UnwindSafe for AxiUartlite
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more