![]() |
NEORV32 - Software Framework Documentation
|
Main NEORV32 core library include file. More...
#include <stdint.h>
#include <inttypes.h>
#include <limits.h>
#include <unistd.h>
#include <stdlib.h>
#include "neorv32_intrinsics.h"
#include "neorv32_cpu.h"
#include "neorv32_cpu_csr.h"
#include "neorv32_cpu_cfu.h"
#include "neorv32_rte.h"
#include "neorv32_buskeeper.h"
#include "neorv32_cfs.h"
#include "neorv32_dm.h"
#include "neorv32_gpio.h"
#include "neorv32_gptmr.h"
#include "neorv32_mtime.h"
#include "neorv32_neoled.h"
#include "neorv32_onewire.h"
#include "neorv32_pwm.h"
#include "neorv32_sdi.h"
#include "neorv32_spi.h"
#include "neorv32_sysinfo.h"
#include "neorv32_trng.h"
#include "neorv32_twi.h"
#include "neorv32_uart.h"
#include "neorv32_wdt.h"
#include "neorv32_xip.h"
#include "neorv32_xirq.h"
#include "legacy.h"
Go to the source code of this file.
Enumerations | |
enum | NEORV32_CLOCK_PRSC_enum { CLK_PRSC_2 = 0 , CLK_PRSC_4 = 1 , CLK_PRSC_8 = 2 , CLK_PRSC_64 = 3 , CLK_PRSC_128 = 4 , CLK_PRSC_1024 = 5 , CLK_PRSC_2048 = 6 , CLK_PRSC_4096 = 7 } |
Main NEORV32 core library include file.
#define BOOTLOADER_BASE_ADDRESS (0xFFFF0000U) |
bootloader memory base address
#define CFS_FIRQ_ENABLE CSR_MIE_FIRQ1E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define CFS_FIRQ_PENDING CSR_MIP_FIRQ1P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define CFS_RTE_ID RTE_TRAP_FIRQ_1 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define CFS_TRAP_CODE TRAP_CODE_FIRQ_1 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define GPTMR_FIRQ_ENABLE CSR_MIE_FIRQ12E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define GPTMR_FIRQ_PENDING CSR_MIP_FIRQ12P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define GPTMR_RTE_ID RTE_TRAP_FIRQ_12 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define GPTMR_TRAP_CODE TRAP_CODE_FIRQ_12 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define IO_BASE_ADDRESS (0xFFFFFE00U) |
peripheral/IO devices memory base address
#define NEOLED_FIRQ_ENABLE CSR_MIE_FIRQ9E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define NEOLED_FIRQ_PENDING CSR_MIP_FIRQ9P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define NEOLED_RTE_ID RTE_TRAP_FIRQ_9 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define NEOLED_TRAP_CODE TRAP_CODE_FIRQ_9 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define NEORV32_ARCHID 19 |
Official NEORV32 RISC-V open-source architecture ID https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md
#define NEORV32_BUSKEEPER_BASE (0xFFFFFF78U) |
Bus Monitor (BUSKEEPER)
#define NEORV32_CFS_BASE (0xFFFFFE00U) |
Custom Functions Subsystem (CFS)
#define NEORV32_DM_BASE (0xFFFFF800U) |
On-Chip Debugger
#define NEORV32_GPIO_BASE (0xFFFFFFC0U) |
General Purpose Input/Output Port Unit (GPIO)
#define NEORV32_GPTMR_BASE (0xFFFFFF60U) |
General Purpose Timer (GPTMR)
#define NEORV32_MTIME_BASE (0xFFFFFF90U) |
Machine System Timer (MTIME)
#define NEORV32_NEOLED_BASE (0xFFFFFFD8U) |
Smart LED Hardware Interface (NEOLED)
#define NEORV32_ONEWIRE_BASE (0xFFFFFF70U) |
1-Wire Interface Controller (ONEWIRE)
#define NEORV32_PWM_BASE (0xFFFFFF50U) |
Pulse Width Modulation Controller (PWM)
#define NEORV32_SDI_BASE (0xFFFFFF00U) |
Serial Data Interface (SDI)
#define NEORV32_SPI_BASE (0xFFFFFFA8U) |
Serial Peripheral Interface Controller (SPI)
#define NEORV32_SYSINFO_BASE (0xFFFFFFE0U) |
System Configuration Information Memory (SYSINFO)
#define NEORV32_TRNG_BASE (0xFFFFFFB8U) |
True Random Number Generator (TRNG)
#define NEORV32_TWI_BASE (0xFFFFFFB0U) |
Two-Wire Interface Controller (TWI)
#define NEORV32_UART0_BASE (0xFFFFFFA0U) |
Primary Universal Asynchronous Receiver and Transmitter (UART0)
#define NEORV32_UART1_BASE (0xFFFFFFD0U) |
Secondary Universal Asynchronous Receiver and Transmitter (UART1)
#define NEORV32_WDT_BASE (0xFFFFFFBCU) |
Watchdog Timer (WDT)
#define NEORV32_XIP_BASE (0xFFFFFF40U) |
Execute In Place Module (XIP)
#define NEORV32_XIRQ_BASE (0xFFFFFF80U) |
External Interrupt Controller (XIRQ)
#define OCD_BASE_ADDRESS (0XFFFFF800U) |
on-chip debugger complex base address
#define ONEWIRE_FIRQ_ENABLE CSR_MIE_FIRQ13E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define ONEWIRE_FIRQ_PENDING CSR_MIP_FIRQ13P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define ONEWIRE_RTE_ID RTE_TRAP_FIRQ_13 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define ONEWIRE_TRAP_CODE TRAP_CODE_FIRQ_13 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define SDI_FIRQ_ENABLE CSR_MIE_FIRQ11E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define SDI_FIRQ_PENDING CSR_MIP_FIRQ11P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define SDI_RTE_ID RTE_TRAP_FIRQ_11 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define SDI_TRAP_CODE TRAP_CODE_FIRQ_11 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define SPI_FIRQ_ENABLE CSR_MIE_FIRQ6E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define SPI_FIRQ_PENDING CSR_MIP_FIRQ6P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define SPI_RTE_ID RTE_TRAP_FIRQ_6 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define SPI_TRAP_CODE TRAP_CODE_FIRQ_6 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define TWI_FIRQ_ENABLE CSR_MIE_FIRQ7E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define TWI_FIRQ_PENDING CSR_MIP_FIRQ7P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define TWI_RTE_ID RTE_TRAP_FIRQ_7 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define TWI_TRAP_CODE TRAP_CODE_FIRQ_7 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define UART0_RX_FIRQ_ENABLE CSR_MIE_FIRQ2E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define UART0_RX_FIRQ_PENDING CSR_MIP_FIRQ2P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define UART0_RX_RTE_ID RTE_TRAP_FIRQ_2 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define UART0_RX_TRAP_CODE TRAP_CODE_FIRQ_2 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define UART0_TX_FIRQ_ENABLE CSR_MIE_FIRQ3E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define UART0_TX_FIRQ_PENDING CSR_MIP_FIRQ3P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define UART0_TX_RTE_ID RTE_TRAP_FIRQ_3 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define UART0_TX_TRAP_CODE TRAP_CODE_FIRQ_3 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define UART1_RX_FIRQ_ENABLE CSR_MIE_FIRQ4E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define UART1_RX_FIRQ_PENDING CSR_MIP_FIRQ4P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define UART1_RX_RTE_ID RTE_TRAP_FIRQ_4 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define UART1_RX_TRAP_CODE TRAP_CODE_FIRQ_4 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define UART1_TX_FIRQ_ENABLE CSR_MIE_FIRQ5E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define UART1_TX_FIRQ_PENDING CSR_MIP_FIRQ5P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define UART1_TX_RTE_ID RTE_TRAP_FIRQ_5 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define UART1_TX_TRAP_CODE TRAP_CODE_FIRQ_5 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define WDT_FIRQ_ENABLE CSR_MIE_FIRQ0E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define WDT_FIRQ_PENDING CSR_MIP_FIRQ0P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define WDT_RTE_ID RTE_TRAP_FIRQ_0 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define WDT_TRAP_CODE TRAP_CODE_FIRQ_0 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
#define XIRQ_FIRQ_ENABLE CSR_MIE_FIRQ8E |
MIE CSR bit (NEORV32_CSR_MIE_enum)
#define XIRQ_FIRQ_PENDING CSR_MIP_FIRQ8P |
MIP CSR bit (NEORV32_CSR_MIP_enum)
#define XIRQ_RTE_ID RTE_TRAP_FIRQ_8 |
RTE entry code (NEORV32_RTE_TRAP_enum)
#define XIRQ_TRAP_CODE TRAP_CODE_FIRQ_8 |
MCAUSE CSR trap code (NEORV32_EXCEPTION_CODES_enum)
Processor clock prescaler select