27#if defined(STDIO_SEMIHOSTING)
38#define IO_BASE_ADDRESS (0XFFE00000U)
39#define NEORV32_BOOTROM_BASE (0xFFE00000U)
49#define NEORV32_TWD_BASE (0xFFEA0000U)
50#define NEORV32_CFS_BASE (0xFFEB0000U)
51#define NEORV32_SLINK_BASE (0xFFEC0000U)
52#define NEORV32_DMA_BASE (0xFFED0000U)
54#define NEORV32_SMC_BASE (0xFFEF0000U)
55#define NEORV32_PWM_BASE (0xFFF00000U)
56#define NEORV32_GPTMR_BASE (0xFFF10000U)
57#define NEORV32_ONEWIRE_BASE (0xFFF20000U)
58#define NEORV32_TRACEBUF_BASE (0xFFF30000U)
59#define NEORV32_CLINT_BASE (0xFFF40000U)
60#define NEORV32_UART0_BASE (0xFFF50000U)
61#define NEORV32_UART1_BASE (0xFFF60000U)
62#define NEORV32_SDI_BASE (0xFFF70000U)
63#define NEORV32_SPI_BASE (0xFFF80000U)
64#define NEORV32_TWI_BASE (0xFFF90000U)
65#define NEORV32_TRNG_BASE (0xFFFA0000U)
66#define NEORV32_WDT_BASE (0xFFFB0000U)
67#define NEORV32_GPIO_BASE (0xFFFC0000U)
68#define NEORV32_NEOLED_BASE (0xFFFD0000U)
69#define NEORV32_SYSINFO_BASE (0xFFFE0000U)
70#define NEORV32_DM_BASE (0xFFFF0000U)
79#define CFS_FIRQ_ENABLE CSR_MIE_FIRQ1E
80#define CFS_FIRQ_PENDING CSR_MIP_FIRQ1P
81#define CFS_TRAP_CODE TRAP_CODE_FIRQ_1
85#define UART0_FIRQ_ENABLE CSR_MIE_FIRQ2E
86#define UART0_FIRQ_PENDING CSR_MIP_FIRQ2P
87#define UART0_TRAP_CODE TRAP_CODE_FIRQ_2
91#define UART1_FIRQ_ENABLE CSR_MIE_FIRQ3E
92#define UART1_FIRQ_PENDING CSR_MIP_FIRQ3P
93#define UART1_TRAP_CODE TRAP_CODE_FIRQ_3
97#define TWD_FIRQ_ENABLE CSR_MIE_FIRQ4E
98#define TWD_FIRQ_PENDING CSR_MIP_FIRQ4P
99#define TWD_TRAP_CODE TRAP_CODE_FIRQ_4
103#define TRACEBUF_FIRQ_ENABLE CSR_MIE_FIRQ5E
104#define TRACEBUF_FIRQ_PENDING CSR_MIP_FIRQ5P
105#define TRACEBUF_TRAP_CODE TRAP_CODE_FIRQ_5
109#define SPI_FIRQ_ENABLE CSR_MIE_FIRQ6E
110#define SPI_FIRQ_PENDING CSR_MIP_FIRQ6P
111#define SPI_TRAP_CODE TRAP_CODE_FIRQ_6
115#define TWI_FIRQ_ENABLE CSR_MIE_FIRQ7E
116#define TWI_FIRQ_PENDING CSR_MIP_FIRQ7P
117#define TWI_TRAP_CODE TRAP_CODE_FIRQ_7
121#define GPIO_FIRQ_ENABLE CSR_MIE_FIRQ8E
122#define GPIO_FIRQ_PENDING CSR_MIP_FIRQ8P
123#define GPIO_TRAP_CODE TRAP_CODE_FIRQ_8
127#define NEOLED_FIRQ_ENABLE CSR_MIE_FIRQ9E
128#define NEOLED_FIRQ_PENDING CSR_MIP_FIRQ9P
129#define NEOLED_TRAP_CODE TRAP_CODE_FIRQ_9
133#define DMA_FIRQ_ENABLE CSR_MIE_FIRQ10E
134#define DMA_FIRQ_PENDING CSR_MIP_FIRQ10P
135#define DMA_TRAP_CODE TRAP_CODE_FIRQ_10
139#define SDI_FIRQ_ENABLE CSR_MIE_FIRQ11E
140#define SDI_FIRQ_PENDING CSR_MIP_FIRQ11P
141#define SDI_TRAP_CODE TRAP_CODE_FIRQ_11
145#define GPTMR_FIRQ_ENABLE CSR_MIE_FIRQ12E
146#define GPTMR_FIRQ_PENDING CSR_MIP_FIRQ12P
147#define GPTMR_TRAP_CODE TRAP_CODE_FIRQ_12
151#define ONEWIRE_FIRQ_ENABLE CSR_MIE_FIRQ13E
152#define ONEWIRE_FIRQ_PENDING CSR_MIP_FIRQ13P
153#define ONEWIRE_TRAP_CODE TRAP_CODE_FIRQ_13
157#define SLINK_FIRQ_ENABLE CSR_MIE_FIRQ14E
158#define SLINK_FIRQ_PENDING CSR_MIP_FIRQ14P
159#define SLINK_TRAP_CODE TRAP_CODE_FIRQ_14
163#define TRNG_FIRQ_ENABLE CSR_MIE_FIRQ15E
164#define TRNG_FIRQ_PENDING CSR_MIP_FIRQ15P
165#define TRNG_TRAP_CODE TRAP_CODE_FIRQ_15
182#define NEORV32_HEAP_BEGIN ((uint32_t)&__heap_start[0])
183#define NEORV32_HEAP_END ((uint32_t)&__heap_end[0])
184#define NEORV32_HEAP_SIZE ((uint32_t)&__crt0_max_heap[0])
185#define NEORV32_CRT0_ENTRY ((uint32_t)&__crt0_entry[0])
186#define NEORV32_ROM_BASE ((uint32_t)&__crt0_rom_base[0])
187#define NEORV32_ROM_SIZE ((uint32_t)&__crt0_rom_size[0])
188#define NEORV32_RAM_BASE ((uint32_t)&__crt0_ram_base[0])
189#define NEORV32_RAM_SIZE ((uint32_t)&__crt0_ram_size[0])
239#define __MMREG_BSET(r, m) ((r) |= (m))
240#define __MMREG_BCLR(r, m) ((r) &= ~(m))
241#define __MMREG_BINV(r, m) ((r) ^= (m))
243#if defined(__riscv_a) || defined(__riscv_zaamo)
244#define __MMREG32_BSET(r, m) (neorv32_cpu_amoor( (uint32_t)(&r), (uint32_t)(m)))
245#define __MMREG32_BCLR(r, m) (neorv32_cpu_amoand((uint32_t)(&r), ~(uint32_t)(m)))
246#define __MMREG32_BINV(r, m) (neorv32_cpu_amoxor((uint32_t)(&r), (uint32_t)(m)))
248#define __MMREG32_BSET(r, m) __MMREG_BSET(r, (uint32_t)(m))
249#define __MMREG32_BCLR(r, m) __MMREG_BCLR(r, (uint32_t)(m))
250#define __MMREG32_BINV(r, m) __MMREG_BINV(r, (uint32_t)(m))
253#define __MMREG16_BSET(r, m) __MMREG_BSET(r, (uint16_t)(m))
254#define __MMREG16_BCLR(r, m) __MMREG_BCLR(r, (uint16_t)(m))
255#define __MMREG16_BINV(r, m) __MMREG_BINV(r, (uint16_t)(m))
257#define __MMREG8_BSET(r, m) __MMREG_BSET(r, (uint8_t)(m))
258#define __MMREG8_BCLR(r, m) __MMREG_BCLR(r, (uint8_t)(m))
259#define __MMREG8_BINV(r, m) __MMREG_BINV(r, (uint8_t)(m))
NEORV32_CLOCK_PRSC_enum
Definition neorv32.h:196
@ CLK_PRSC_4096
Definition neorv32.h:204
@ CLK_PRSC_1024
Definition neorv32.h:202
@ CLK_PRSC_64
Definition neorv32.h:200
@ CLK_PRSC_4
Definition neorv32.h:198
@ CLK_PRSC_128
Definition neorv32.h:201
@ CLK_PRSC_2048
Definition neorv32.h:203
@ CLK_PRSC_8
Definition neorv32.h:199
@ CLK_PRSC_2
Definition neorv32.h:197
General auxiliary functions header file.
Custom Functions Subsystem (CFS) HW driver header file.
Core-Local Interruptor (CLINT) HW driver header file.
CPU Core Functions HW driver header file.
Control and Status Registers (CSR) definitions.
Direct Memory Access Controller (DMA) HW driver header file.
General purpose input/output port unit (GPIO) HW driver header file.
General purpose timer (GPTMR) HW driver header file.
Prototypes for custom RISC-V instructions ("intrinsics"). Based on the ".insn" pseudo directive: http...
Smart LED Interface (NEOLED) HW driver header file.
1-Wire Interface Controller (ONEWIRE) HW driver header file.
Pulse-Width Modulation Controller (PWM) HW driver header file.
NEORV32 Runtime Environment.
Serial data interface controller (SDI) HW driver header file.
RISC-V semihosting header file.
Stream Link Interface HW driver header file.
Serial memory controller (SMC) HW driver header file.
Symmetric multiprocessing (SMP) library header file.
Serial peripheral interface controller (SPI) HW driver header file.
System Information Memory (SYSINFO) HW driver header file.
Execution trace buffer (TRACEBUF) HW driver header file.
True Random Number Generator (TRNG) HW driver header file.
Two-Wire Device Controller (TWD) HW driver header file.
Two-Wire Interface Controller (TWI) HW driver header file.
Universal asynchronous receiver/transmitter (UART0/UART1) HW driver header file.
Watchdog Timer (WDT) HW driver header file.