NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_sdi.h
Go to the documentation of this file.
1// ================================================================================ //
2// The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 //
3// Copyright (c) NEORV32 contributors. //
4// Copyright (c) 2020 - 2025 Stephan Nolting. All rights reserved. //
5// Licensed under the BSD-3-Clause license, see LICENSE for details. //
6// SPDX-License-Identifier: BSD-3-Clause //
7// ================================================================================ //
8
14#ifndef NEORV32_SDI_H
15#define NEORV32_SDI_H
16
17#include <stdint.h>
18
19
20/**********************************************************************/
25typedef volatile struct __attribute__((packed,aligned(4))) {
26 uint32_t CTRL;
27 uint32_t DATA;
29
31#define NEORV32_SDI ((neorv32_sdi_t*) (NEORV32_SDI_BASE))
32
56/**********************************************************************/
60int neorv32_sdi_available(void);
61void neorv32_sdi_setup(uint32_t irq_mask);
62void neorv32_sdi_disable(void);
63void neorv32_sdi_enable(void);
65void neorv32_sdi_put(uint8_t data);
66uint8_t neorv32_sdi_get(void);
67void neorv32_sdi_put_nonblocking(uint8_t data);
68uint8_t neorv32_sdi_get_nonblocking(void);
69int neorv32_sdi_rx_empty(void);
70int neorv32_sdi_rx_full(void);
71int neorv32_sdi_tx_empty(void);
72int neorv32_sdi_tx_full(void);
73int neorv32_sdi_rx_empty(void);
74int neorv32_sdi_rx_full(void);
75int neorv32_sdi_tx_empty(void);
76int neorv32_sdi_tx_full(void);
77void neorv32_sdi_rx_clear(void);
78void neorv32_sdi_tx_clear(void);
79int neorv32_sdi_check_cs(void);
83#endif // NEORV32_SDI_H
uint8_t neorv32_sdi_get_nonblocking(void)
Definition neorv32_sdi.c:117
int neorv32_sdi_tx_empty(void)
Definition neorv32_sdi.c:150
void neorv32_sdi_put_nonblocking(uint8_t data)
Definition neorv32_sdi.c:106
int neorv32_sdi_check_cs(void)
Definition neorv32_sdi.c:190
void neorv32_sdi_setup(uint32_t irq_mask)
Definition neorv32_sdi.c:34
void neorv32_sdi_put(uint8_t data)
Definition neorv32_sdi.c:82
int neorv32_sdi_available(void)
Definition neorv32_sdi.c:22
void neorv32_sdi_enable(void)
Definition neorv32_sdi.c:59
void neorv32_sdi_rx_clear(void)
Definition neorv32_sdi.c:170
uint8_t neorv32_sdi_get(void)
Definition neorv32_sdi.c:94
void neorv32_sdi_tx_clear(void)
Definition neorv32_sdi.c:179
int neorv32_sdi_get_fifo_depth(void)
Definition neorv32_sdi.c:70
void neorv32_sdi_disable(void)
Definition neorv32_sdi.c:50
NEORV32_SDI_CTRL_enum
Definition neorv32_sdi.h:34
@ SDI_CTRL_IRQ_RX_FULL
Definition neorv32_sdi.h:43
@ SDI_CTRL_RX_EMPTY
Definition neorv32_sdi.h:46
@ SDI_CTRL_RX_FULL
Definition neorv32_sdi.h:47
@ SDI_CTRL_IRQ_RX_NEMPTY
Definition neorv32_sdi.h:42
@ SDI_CTRL_IRQ_TX_EMPTY
Definition neorv32_sdi.h:44
@ SDI_CTRL_CLR_RX
Definition neorv32_sdi.h:36
@ SDI_CTRL_CLR_TX
Definition neorv32_sdi.h:37
@ SDI_CTRL_FIFO_LSB
Definition neorv32_sdi.h:39
@ SDI_CTRL_TX_EMPTY
Definition neorv32_sdi.h:48
@ SDI_CTRL_FIFO_MSB
Definition neorv32_sdi.h:40
@ SDI_CTRL_CS_ACTIVE
Definition neorv32_sdi.h:51
@ SDI_CTRL_TX_FULL
Definition neorv32_sdi.h:49
@ SDI_CTRL_EN
Definition neorv32_sdi.h:35
int neorv32_sdi_rx_full(void)
Definition neorv32_sdi.c:139
int neorv32_sdi_rx_empty(void)
Definition neorv32_sdi.c:128
int neorv32_sdi_tx_full(void)
Definition neorv32_sdi.c:161
Definition neorv32_sdi.h:25
uint32_t DATA
Definition neorv32_sdi.h:27
uint32_t CTRL
Definition neorv32_sdi.h:26