RISCV32 Emulation (QEMU)

Overview

The RISCV32 QEMU board configuration is used to emulate the RISCV32 architecture.

Programming and Debugging

Applications for the qemu_riscv32 board configuration can be built and run in the usual way for emulated boards (see Build an Application and Run an Application for more details).

Flashing

While this board is emulated and you can’t “flash” it, you can use this configuration to run basic Zephyr applications and kernel tests in the QEMU emulated environment. For example, with the Synchronization Sample:

cd $ZEPHYR_BASE/samples/synchronization
mkdir build && cd build

# Use cmake to configure a Ninja-based build system:
cmake -GNinja -DBOARD=qemu_riscv32 ..

# Now run ninja on the generated build system:
ninja run

This will build an image with the synchronization sample app, boot it using QEMU, and display the following console output:

***** BOOTING ZEPHYR OS v1.8.99 - BUILD: Jun 27 2017 13:09:26 *****
threadA: Hello World from riscv32!
threadB: Hello World from riscv32!
threadA: Hello World from riscv32!
threadB: Hello World from riscv32!
threadA: Hello World from riscv32!
threadB: Hello World from riscv32!
threadA: Hello World from riscv32!
threadB: Hello World from riscv32!
threadA: Hello World from riscv32!
threadB: Hello World from riscv32!

Debugging

Refer to the detailed overview about Custom Board and SOC Definitions.