mini-rv32ima is a tiny header-only RISC-V emulator written in straightforward C. Its core implementation is only a few hundred lines and emulates the RV32IMA instruction set together with selected CSR, CLINT, and MMIO behavior. The emulator intentionally omits an MMU and other specification features that are unnecessary for its minimal Linux target. Despite its size, it can boot a no-MMU Linux environment and run user applications. A compact demonstration wrapper provides UART, kernel loading, device-tree loading, command-line interaction, and basic system control. The design is dependency-free at its core, easily embeddable, and deliberately structured so developers can extend instructions, registers, and device behavior.
Features
- Header-only RISC-V CPU emulator
- RV32IMA and CSR instruction support
- Linux no-MMU boot capability
- CLINT and MMIO emulation
- Small embeddable C implementation
- Extensible instructions, registers, and device hooks