26typedef volatile struct __attribute__((packed,aligned(4))) {
34#define NEORV32_UART0 ((neorv32_uart_t*) (NEORV32_UART0_BASE))
37#define NEORV32_UART1 ((neorv32_uart_t*) (NEORV32_UART1_BASE))
170 uartx->
DATA = (uint32_t)data;
180 return (
char)(uartx->
DATA);
196#define neorv32_uart0_available() neorv32_uart_available(NEORV32_UART0)
197#define neorv32_uart0_setup(baud, rx_irq, tx_irq) neorv32_uart_setup(NEORV32_UART0, baud, rx_irq, tx_irq)
198#define neorv32_uart0_putc(c) neorv32_uart_putc(NEORV32_UART0, c)
199#define neorv32_uart0_getc() neorv32_uart_getc(NEORV32_UART0)
200#define neorv32_uart0_puts(s) neorv32_uart_puts(NEORV32_UART0, s)
201#define neorv32_uart0_printf(...) neorv32_uart_printf(NEORV32_UART0, __VA_ARGS__)
202#define neorv32_uart0_scan(buffer, max_size, echo) neorv32_uart_scan(NEORV32_UART0, buffer, max_size, echo)
204#define neorv32_uart1_available() neorv32_uart_available(NEORV32_UART1)
205#define neorv32_uart1_setup(baud, rx_irq, tx_irq) neorv32_uart_setup(NEORV32_UART1, baud, rx_irq, tx_irq)
206#define neorv32_uart1_putc(c) neorv32_uart_putc(NEORV32_UART1, c)
207#define neorv32_uart1_getc() neorv32_uart_getc(NEORV32_UART1)
208#define neorv32_uart1_puts(s) neorv32_uart_puts(NEORV32_UART1, s)
209#define neorv32_uart1_printf(...) neorv32_uart_printf(NEORV32_UART1, __VA_ARGS__)
210#define neorv32_uart1_scan(buffer, max_size, echo) neorv32_uart_scan(NEORV32_UART1, buffer, max_size, echo)
Main NEORV32 core library / driver / HAL include file.
NEORV32_UART_RX_IRQ_SEL_enum
Definition neorv32_uart.h:70
@ UART_RX_IRQ_FULL
Definition neorv32_uart.h:74
@ UART_RX_IRQ_NONE
Definition neorv32_uart.h:71
@ UART_RX_IRQ_HALF
Definition neorv32_uart.h:73
@ UART_RX_IRQ_AVAIL
Definition neorv32_uart.h:72
static void neorv32_uart_tx_put(neorv32_uart_t *uartx, char data)
Definition neorv32_uart.h:169
void neorv32_uart_vprintf(neorv32_uart_t *uartx, const char *format, va_list args)
Definition neorv32_uart.c:149
char neorv32_uart_getc(neorv32_uart_t *uartx)
Definition neorv32_uart.c:116
static int neorv32_uart_tx_irq(neorv32_uart_t *uartx)
Definition neorv32_uart.h:133
void neorv32_uart_setup(neorv32_uart_t *uartx, uint32_t baud, int rx_irq, int tx_irq)
Definition neorv32_uart.c:44
static int neorv32_uart_rx_fifo_depth(neorv32_uart_t *uartx)
Definition neorv32_uart.h:106
void neorv32_uart_puts(neorv32_uart_t *uartx, const char *s)
Definition neorv32_uart.c:129
int neorv32_uart_available(neorv32_uart_t *uartx)
Definition neorv32_uart.c:24
void neorv32_uart_printf(neorv32_uart_t *uartx, const char *format,...)
Definition neorv32_uart.c:243
static int neorv32_uart_rx_avail(neorv32_uart_t *uartx)
Definition neorv32_uart.h:142
static int neorv32_uart_tx_busy(neorv32_uart_t *uartx)
Definition neorv32_uart.h:160
static int neorv32_uart_tx_fifo_depth(neorv32_uart_t *uartx)
Definition neorv32_uart.h:115
void neorv32_uart_putc(neorv32_uart_t *uartx, char c)
Definition neorv32_uart.c:104
NEORV32_UART_TX_IRQ_SEL_enum
Definition neorv32_uart.h:78
@ UART_TX_IRQ_NONE
Definition neorv32_uart.h:79
@ UART_TX_IRQ_IDLE
Definition neorv32_uart.h:80
@ UART_TX_IRQ_NFULL
Definition neorv32_uart.h:82
@ UART_TX_IRQ_NHALF
Definition neorv32_uart.h:81
static char neorv32_uart_rx_get(neorv32_uart_t *uartx)
Definition neorv32_uart.h:179
static int neorv32_uart_rx_irq(neorv32_uart_t *uartx)
Definition neorv32_uart.h:124
static int neorv32_uart_rx_overflow(neorv32_uart_t *uartx)
Definition neorv32_uart.h:188
static int neorv32_uart_tx_full(neorv32_uart_t *uartx)
Definition neorv32_uart.h:151
NEORV32_UART_CTRL_enum
Definition neorv32_uart.h:40
@ UART_CTRL_RX_IRQ_SEL0
Definition neorv32_uart.h:56
@ UART_CTRL_TX_IRQ_SEL0
Definition neorv32_uart.h:58
@ UART_CTRL_TX_BUSY
Definition neorv32_uart.h:54
@ UART_CTRL_RX_FIFO_LSB
Definition neorv32_uart.h:63
@ UART_CTRL_TX_IRQ_PEND
Definition neorv32_uart.h:61
@ UART_CTRL_RX_IRQ_PEND
Definition neorv32_uart.h:60
@ UART_CTRL_TX_FULL
Definition neorv32_uart.h:53
@ UART_CTRL_TX_IRQ_SEL1
Definition neorv32_uart.h:59
@ UART_CTRL_RX_HALF
Definition neorv32_uart.h:48
@ UART_CTRL_RX_FULL
Definition neorv32_uart.h:49
@ UART_CTRL_TX_SIM_EN
Definition neorv32_uart.h:43
@ UART_CTRL_RX_IRQ_SEL1
Definition neorv32_uart.h:57
@ UART_CTRL_RTS_EN
Definition neorv32_uart.h:44
@ UART_CTRL_TX_FIFO_LSB
Definition neorv32_uart.h:65
@ UART_CTRL_TX_EN
Definition neorv32_uart.h:42
@ UART_CTRL_RX_OVER
Definition neorv32_uart.h:50
@ UART_CTRL_TX_HALF
Definition neorv32_uart.h:52
@ UART_CTRL_RX_FIFO_MSB
Definition neorv32_uart.h:64
@ UART_CTRL_RX_EN
Definition neorv32_uart.h:41
@ UART_CTRL_CTS_EN
Definition neorv32_uart.h:45
@ UART_CTRL_TX_EMPTY
Definition neorv32_uart.h:51
@ UART_CTRL_RX_EMPTY
Definition neorv32_uart.h:47
@ UART_CTRL_TX_FIFO_MSB
Definition neorv32_uart.h:66
int neorv32_uart_scan(neorv32_uart_t *uartx, char *buffer, int max_size, int echo)
Definition neorv32_uart.c:260
Definition neorv32_uart.h:26
uint32_t CTRL
Definition neorv32_uart.h:27
uint32_t DATA
Definition neorv32_uart.h:29
uint32_t BAUD
Definition neorv32_uart.h:28
const uint32_t _rsv
Definition neorv32_uart.h:30