1.. zephyr:board:: riscv32_virtual
2
3Overview
4********
5
6The RISCV32 Virtual board is a virtual platform made with Renode as an alternative to QEMU.
7Contrary to QEMU, the peripherals of this platform can be easily configured by editing the
8``riscv32_virtual.repl`` script and the devicetree files accordingly, this allows certain hardware
9configurations that only exist in proprietary boards/SoCs to be tested in upstream CI.
10
11Programming and debugging
12*************************
13
14Building
15========
16
17Applications for the ``riscv32_virtual`` board configuration can be built as usual
18(see :ref:`build_an_application`):
19
20.. zephyr-app-commands::
21   :board: riscv32_virtual
22   :goals: build
23
24Flashing
25========
26
27While this board is emulated and you can't "flash" it, you can use this
28configuration to run basic Zephyr applications and kernel tests in the Renode
29emulated environment. For example, with the :zephyr:code-sample:`synchronization` sample:
30
31.. zephyr-app-commands::
32   :zephyr-app: samples/synchronization
33   :host-os: unix
34   :board: riscv32_virtual
35   :goals: run
36
37This will build an image with the synchronization sample app, boot it using
38Renode, and display the following console output:
39
40.. code-block:: console
41
42        *** Booting Zephyr OS build zephyr-v3.5.0-1511-g56f73bde0fb0 ***
43        thread_a: Hello World from cpu 0 on riscv32_virtual!
44        thread_b: Hello World from cpu 0 on riscv32_virtual!
45        thread_a: Hello World from cpu 0 on riscv32_virtual!
46        thread_b: Hello World from cpu 0 on riscv32_virtual!
47
48Exit Renode by pressing :kbd:`CTRL+C`.
49
50Debugging
51=========
52
53Refer to the detailed overview about :ref:`application_debugging`.
54