![]() |
API Reference
The NEORV32 RISC-V Processor
|
Stream Link Interface HW driver header file. More...
Go to the source code of this file.
Data Structures | |
| struct | neorv32_slink_t |
Functions | |
| static uint32_t | neorv32_slink_rx_get (void) |
| static int | neorv32_slink_rx_last (void) |
| static void | neorv32_slink_tx_put (uint32_t tx_data) |
| static void | neorv32_slink_tx_put_last (uint32_t tx_data) |
| static int | neorv32_slink_rx_empty (void) |
| static int | neorv32_slink_rx_half (void) |
| static int | neorv32_slink_rx_full (void) |
| static int | neorv32_slink_tx_empty (void) |
| static int | neorv32_slink_tx_half (void) |
| static int | neorv32_slink_tx_full (void) |
| static int | neorv32_slink_rx_irq_pending (void) |
| static int | neorv32_slink_tx_irq_pending (void) |
Prototypes | |
| int | neorv32_slink_available (void) |
| void | neorv32_slink_setup (int rx_irq_sel, int tx_irq_sel) |
| int | neorv32_slink_get_rx_fifo_depth (void) |
| int | neorv32_slink_get_tx_fifo_depth (void) |
IO Device: Stream Link Interface (SLINK) | |
| #define | NEORV32_SLINK ((neorv32_slink_t*) (NEORV32_SLINK_BASE)) |
| enum | NEORV32_SLINK_CTRL_enum { SLINK_CTRL_RX_EN = 0 , SLINK_CTRL_TX_EN = 1 , SLINK_CTRL_RX_LAST = 4 , SLINK_CTRL_RX_EMPTY = 8 , SLINK_CTRL_RX_HALF = 9 , SLINK_CTRL_RX_FULL = 10 , SLINK_CTRL_TX_EMPTY = 11 , SLINK_CTRL_TX_HALF = 12 , SLINK_CTRL_TX_FULL = 13 , SLINK_CTRL_RX_IRQ_SEL0 = 16 , SLINK_CTRL_RX_IRQ_SEL1 = 17 , SLINK_CTRL_TX_IRQ_SEL0 = 18 , SLINK_CTRL_TX_IRQ_SEL1 = 19 , SLINK_CTRL_RX_IRQ_PEND = 20 , SLINK_CTRL_TX_IRQ_PEND = 21 , SLINK_CTRL_RX_FIFO_LSB = 24 , SLINK_CTRL_RX_FIFO_MSB = 27 , SLINK_CTRL_TX_FIFO_LSB = 28 , SLINK_CTRL_TX_FIFO_MSB = 31 } |
| enum | NEORV32_SLINK_RX_IRQ_enum { SLINK_RX_IRQ_NONE = 0 , SLINK_RX_IRQ_AVAIL = 1 , SLINK_RX_IRQ_HALF = 2 , SLINK_RX_IRQ_FULL = 3 } |
| enum | NEORV32_SLINK_TX_IRQ_enum { SLINK_TX_IRQ_NONE = 0 , SLINK_TX_IRQ_EMPTY = 1 , SLINK_TX_IRQ_NHALF = 2 , SLINK_TX_IRQ_FREE = 3 } |
Stream Link Interface HW driver header file.
| #define NEORV32_SLINK ((neorv32_slink_t*) (NEORV32_SLINK_BASE)) |
SLINK module hardware handle (neorv32_slink_t)
SLINK control register bits
| int neorv32_slink_available | ( | void | ) |
Check if stream link interface was synthesized.
| int neorv32_slink_get_rx_fifo_depth | ( | void | ) |
Get FIFO depth of RX link.
| int neorv32_slink_get_tx_fifo_depth | ( | void | ) |
Get FIFO depth of TX link.
|
inlinestatic |
Check if RX FIFO is empty.
|
inlinestatic |
Check if RX FIFO is full.
|
inlinestatic |
Read data from RX link (non-blocking).
|
inlinestatic |
Check if RX FIFO is at least half full.
|
inlinestatic |
Check if RX interrupt is pending.
|
inlinestatic |
Check if last RX word has "end-of-stream" delimiter.
| void neorv32_slink_setup | ( | int | rx_irq_sel, |
| int | tx_irq_sel ) |
Reset, enable and configure SLINK.
| [in] | rx_irq_sel | RX interrupt condition (NEORV32_SLINK_RX_IRQ_enum). |
| [in] | tx_irq_sel | TX interrupt condition (NEORV32_SLINK_TX_IRQ_enum). |
|
inlinestatic |
Check if TX FIFO is empty.
|
inlinestatic |
Check if TX FIFO is full.
|
inlinestatic |
Check if TX FIFO is at least half full.
|
inlinestatic |
Check if TX interrupt is pending.
|
inlinestatic |
Write data to TX link (non-blocking).
| [in] | tx_data | Data to send. |
|
inlinestatic |
Write data to TX link (non-blocking) and set "last" (end-of-stream) delimiter.
| [in] | tx_data | Data to send. |