![]() |
NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
|
| ▼ sw | |
| ▼ bootloader | |
| ► hal | |
| ► include | |
| sdcard.h | SD card driver |
| spi_flash.h | SPI flash driver |
| system.h | Bare-metal system management |
| twi_flash.h | TWI flash driver |
| uart.h | Minimal UART0 driver |
| ► source | |
| sdcard.c | SD card driver |
| spi_flash.c | SPI flash driver |
| system.c | Bare-metal system management |
| twi_flash.c | TWI flash driver |
| uart.c | Minimal UART0 driver |
| ► petit_fatfs | |
| diskio.h | |
| pff.h | |
| pffconf.h | |
| config.h | Bootloader configuration |
| ▼ example | |
| ► bus_explorer | |
| main.c | Interactive memory inspector |
| ► demo_blink_led | |
| main.c | Minimal blinking LED demo program using the lowest 8 bits of the GPIO.output port |
| ► demo_cfs | |
| main.c | Simple demo program for the default custom functions subsystem (CFS) module |
| ► demo_cfu | |
| main.c | Example program showing how to use the CFU's custom instructions (XTEA example). Take a look at the commented "hardware-counterpart" of this CFU example in 'rtl/core/neorv32_cpu_cp_cfu.vhd' |
| ► demo_clint | |
| main.c | Simple core local interruptor (CLINT) usage example |
| ► demo_dma | |
| main.c | DMA demo program |
| ► demo_dual_core | |
| main.c | Simple dual-core SMP demo program |
| spinlock.c | Single simple spinlock based on atomic reservation-set operations |
| spinlock.h | Single simple spin-lock based on atomic memory operations |
| ► demo_dual_core_primes | |
| main.c | Find prime numbers by combining the power of both CPU cores |
| ► demo_dual_core_rte | |
| main.c | SMP dual-core program to show how to use the RTE on two cores. This example runs the same code on both cores and triggers the timer and software interrupts to showcase dual-core trap handling using the NEORV32 runtime environment (RTE) |
| spinlock.c | Single simple spinlock based on atomic memory operations |
| spinlock.h | Single simple spin-lock based on atomic memory operations |
| ► demo_emulate_unaligned | |
| main.c | Demo program for emulating unaligned memory accesses using the NEORV32 run-time environment (RTE) |
| ► demo_gpio | |
| main.c | GPIO input pins interrupt example |
| ► demo_gptmr | |
| main.c | Simple GPTMR timer-match interrupt example |
| ► demo_hpm | |
| main.c | Hardware performance monitor (HPM) example program |
| ► demo_newlib | |
| main.c | Demo/test program for NEORV32's newlib C standard library support |
| ► demo_onewire | |
| main.c | Demo program for the NEORV32 1-Wire interface controller (ONEWIRE) |
| onewire_aux.h | |
| ► demo_pwm | |
| main.c | Simple PWM demo program |
| ► demo_sdi | |
| main.c | SDI test program (direct access to the SDI module) |
| ► demo_semihosting | |
| main.c | Showcase RISC-V semihosting. See https://embeddedinn.com/articles/tutorial/understanding-riscv-semihosting/ |
| ► demo_slink | |
| main.c | SLINK demo program |
| ► demo_spi | |
| main.c | SPI bus explorer (execute SPI transactions by hand) |
| ► demo_tracer | |
| main.c | Simple execution trace demo program |
| ► demo_trng | |
| main.c | True random number generator demo program |
| ► demo_twi | |
| main.c | TWI bus explorer |
| ► demo_wdt | |
| main.c | Watchdog demo program |
| ► dhrystone | |
| dhry.h | |
| ► floating_point_test | |
| main.c | Verification program for the NEORV32 'Zfinx' extension (floating-point in x registers) using pseudo-random data as input; compares results from hardware against pure-sw reference functions |
| neorv32_zfinx_extension_intrinsics.h | "Intrinsic" library for the NEORV32 single-precision floating-point in x registers (Zfinx) extension. Also provides emulation functions for all intrinsics (functionality re-built in pure software). The functionality of the emulation functions is based on the RISC-V floating-point spec |
| ► game_of_life | |
| main.c | Conway's game of life in a UART terminal |
| ► hello_world | |
| main.c | Classic 'hello world' demo program |
| ► processor_check | |
| main.c | CPU/Processor test/verification program |
| ▼ lib | |
| ► include | |
| neorv32.h | Main NEORV32 core library / driver / HAL include file |
| neorv32_aux.h | General auxiliary functions header file |
| neorv32_cfs.h | Custom Functions Subsystem (CFS) HW driver header file |
| neorv32_cfu.h | CPU Core custom functions unit HW driver header file |
| neorv32_clint.h | Hardware Local Interruptor (CLINT) HW driver header file |
| neorv32_cpu.h | CPU Core Functions HW driver header file |
| neorv32_csr.h | Control and Status Registers (CSR) definitions |
| neorv32_dma.h | Direct Memory Access Controller (DMA) HW driver header file |
| neorv32_gpio.h | General purpose input/output port unit (GPIO) HW driver header file |
| neorv32_gptmr.h | General purpose timer (GPTMR) HW driver header file |
| neorv32_intrinsics.h | Helper macros for custom instructions / "intrinsics" |
| neorv32_legacy.h | Legacy backwards compatibility layer |
| neorv32_neoled.h | Smart LED Interface (NEOLED) HW driver header file |
| neorv32_onewire.h | 1-Wire Interface Controller (ONEWIRE) HW driver header file |
| neorv32_pwm.h | Pulse-Width Modulation Controller (PWM) HW driver header file |
| neorv32_rte.h | NEORV32 Runtime Environment |
| neorv32_sdi.h | Serial data interface controller (SPPI) HW driver header file |
| neorv32_semihosting.h | RISC-V semihosting header file |
| neorv32_slink.h | Stream Link Interface HW driver header file |
| neorv32_smp.h | Symmetric multiprocessing (SMP) library header file |
| neorv32_spi.h | Serial peripheral interface controller (SPI) HW driver header file |
| neorv32_sysinfo.h | System Information Memory (SYSINFO) HW driver header file |
| neorv32_tracer.h | Execution trace buffer (TRACER) HW driver header file |
| neorv32_trng.h | True Random Number Generator (TRNG) HW driver header file |
| neorv32_twd.h | Two-Wire Device Controller (TWD) HW driver header file |
| neorv32_twi.h | Two-Wire Interface Controller (TWI) HW driver header file |
| neorv32_uart.h | Universal asynchronous receiver/transmitter (UART0/UART1) HW driver header file |
| neorv32_wdt.h | Watchdog Timer (WDT) HW driver header file |
| ► source | |
| neorv32_aux.c | General auxiliary functions source file |
| neorv32_cfs.c | Custom Functions Subsystem (CFS) HW driver source file |
| neorv32_cfu.c | CPU Core custom functions unit HW driver source file |
| neorv32_clint.c | Hardware Local Interruptor (CLINT) HW driver source file |
| neorv32_cpu.c | CPU Core Functions HW driver source file |
| neorv32_gpio.c | General purpose input/output port unit (GPIO) HW driver source file |
| neorv32_gptmr.c | General purpose timer (GPTMR) HW driver source file |
| neorv32_neoled.c | Smart LED Interface (NEOLED) HW driver source file |
| neorv32_newlib.c | NEORV32-specific Newlib system calls |
| neorv32_onewire.c | 1-Wire Interface Controller (ONEWIRE) HW driver source file |
| neorv32_pwm.c | Pulse-Width Modulation Controller (PWM) HW driver source file |
| neorv32_rte.c | NEORV32 Runtime Environment (RTE) |
| neorv32_sdi.c | Serial data interface controller (SDI) HW driver source file |
| neorv32_semihosting.c | RISC-V semihosting source file |
| neorv32_slink.c | Stream Link Interface HW driver source file |
| neorv32_smp.c | Symmetric multiprocessing (SMP) library source file |
| neorv32_spi.c | Serial peripheral interface controller (SPI) HW driver source file |
| neorv32_tracer.c | Execution trace buffer (TRACER) HW driver source file |
| neorv32_trng.c | True Random Number Generator (TRNG) HW driver source file |
| neorv32_twd.c | Two-Wire Device Controller (TWD) HW driver source file |
| neorv32_twi.c | Two-Wire Interface Controller (TWI) HW driver source file |
| neorv32_uart.c | Universal asynchronous receiver/transmitter (UART0/UART1) HW driver source file |
| neorv32_wdt.c | Direct Memory Access Controller (DMA) HW driver source file |
