gitextract_zs0_rad3/ ├── .clang-format ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── CITATION.cff ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── env/ │ └── basic/ │ └── vp-display/ │ ├── CMakeLists.txt │ ├── VP-Display.pro │ ├── framebuffer.h │ ├── main.cpp │ ├── mainwindow.cpp │ ├── mainwindow.h │ ├── mainwindow.ui │ ├── vpdisplayserver.cpp │ └── vpdisplayserver.h ├── sw/ │ ├── .gitignore │ ├── Makefile │ ├── Makefile.common │ ├── README.md │ ├── basic-asm/ │ │ ├── Makefile │ │ └── sum.S │ ├── basic-c/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── main.c │ │ └── sum.c │ ├── basic-debug/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── eclipse-remote-debug-readme.txt │ │ ├── main.c │ │ ├── remote-debug-readme.txt │ │ └── test-ignore │ ├── basic-dma/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── irq.c │ │ ├── irq.h │ │ └── main.c │ ├── basic-e/ │ │ ├── Makefile │ │ └── sum.S │ ├── basic-gcov/ │ │ ├── Makefile │ │ └── test-ignore │ ├── basic-gpio/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── gpio.h │ │ ├── link.ld │ │ ├── main.c │ │ ├── platform.h │ │ ├── uart.c │ │ ├── uart.h │ │ ├── util.c │ │ └── util.h │ ├── basic-multicore/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ └── main.c │ ├── blocking-sleep/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── irq.S │ │ └── main.c │ ├── busy-wait-sleep/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ └── main.c │ ├── c++-lib/ │ │ ├── Makefile │ │ └── main.cpp │ ├── clock-ticks/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── irq.c │ │ ├── irq.h │ │ └── main.c │ ├── crc8/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── link.ld │ │ ├── main.c │ │ ├── platform.h │ │ ├── uart.c │ │ ├── uart.h │ │ ├── util.c │ │ └── util.h │ ├── flashTest/ │ │ ├── Makefile │ │ ├── main.cpp │ │ └── test-ignore │ ├── mramTest/ │ │ ├── Makefile │ │ └── main.cpp │ ├── mrv32-uart/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── link.ld │ │ ├── main.c │ │ ├── platform.h │ │ ├── uart.c │ │ ├── uart.h │ │ ├── util.c │ │ └── util.h │ ├── peripheral-in-the-loop/ │ │ ├── Makefile │ │ └── main.c │ ├── printf/ │ │ ├── Makefile │ │ ├── entry.S │ │ └── main.c │ ├── simple-display/ │ │ ├── Makefile │ │ ├── libDisplay.cpp │ │ ├── libDisplay.hpp │ │ ├── main.cpp │ │ └── test-ignore │ ├── simple-scheduler/ │ │ ├── Makefile │ │ ├── cor.S │ │ ├── main.c │ │ └── no-clib/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── cor.S │ │ └── main.c │ ├── simple-sensor/ │ │ ├── Makefile │ │ ├── bootstrap.S │ │ ├── irq.c │ │ ├── irq.h │ │ └── main.c │ ├── sys-read/ │ │ ├── Makefile │ │ ├── main.c │ │ └── test-ignore │ └── test.sh └── vp/ ├── .gitignore ├── CMakeLists.txt ├── cmake/ │ └── AddGitSubmodule.cmake └── src/ ├── CMakeLists.txt ├── core/ │ ├── CMakeLists.txt │ ├── common/ │ │ ├── CMakeLists.txt │ │ ├── bus_lock_if.h │ │ ├── clint.h │ │ ├── clint_if.h │ │ ├── core_defs.h │ │ ├── debug.h │ │ ├── debug_memory.cpp │ │ ├── debug_memory.h │ │ ├── dmi.h │ │ ├── elf_loader.h │ │ ├── fp.h │ │ ├── gdb-mc/ │ │ │ ├── CMakeLists.txt │ │ │ ├── gdb_runner.cpp │ │ │ ├── gdb_runner.h │ │ │ ├── gdb_server.cpp │ │ │ ├── gdb_server.h │ │ │ ├── handler.cpp │ │ │ ├── libgdb/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── libgdb/ │ │ │ │ │ ├── parser1.h │ │ │ │ │ ├── parser2.h │ │ │ │ │ └── response.h │ │ │ │ ├── internal.h │ │ │ │ ├── parser1.c │ │ │ │ ├── parser2.c │ │ │ │ ├── parser2.h │ │ │ │ ├── response.c │ │ │ │ └── util.c │ │ │ ├── register_format.cpp │ │ │ └── register_format.h │ │ ├── instr.cpp │ │ ├── instr.h │ │ ├── irq_if.h │ │ ├── load_if.h │ │ ├── mmu.h │ │ ├── mmu_mem_if.h │ │ ├── rawmode.cpp │ │ ├── rawmode.h │ │ ├── real_clint.cpp │ │ ├── real_clint.h │ │ ├── timer.cpp │ │ ├── timer.h │ │ └── trap.h │ ├── rv32/ │ │ ├── CMakeLists.txt │ │ ├── csr.h │ │ ├── elf_loader.h │ │ ├── iss.cpp │ │ ├── iss.h │ │ ├── mem.h │ │ ├── mem_if.h │ │ ├── mmu.h │ │ ├── syscall.cpp │ │ ├── syscall.h │ │ ├── syscall_if.h │ │ └── timing/ │ │ ├── timing_external.h │ │ └── timing_simple.h │ └── rv64/ │ ├── CMakeLists.txt │ ├── csr.h │ ├── elf_loader.h │ ├── iss.cpp │ ├── iss.h │ ├── mem.h │ ├── mem_if.h │ ├── mmu.h │ ├── syscall.cpp │ ├── syscall.h │ └── syscall_if.h ├── platform/ │ ├── CMakeLists.txt │ ├── basic/ │ │ ├── CMakeLists.txt │ │ ├── basic_timer.h │ │ ├── display.cpp │ │ ├── display.hpp │ │ ├── dma.h │ │ ├── ethernet.cpp │ │ ├── ethernet.h │ │ ├── flash.h │ │ ├── main.cpp │ │ ├── random_source.h │ │ ├── sensor.h │ │ └── sensor2.h │ ├── common/ │ │ ├── CMakeLists.txt │ │ ├── async_event.h │ │ ├── bus.h │ │ ├── fd_abstract_uart.cpp │ │ ├── fd_abstract_uart.h │ │ ├── fe310_plic.cpp │ │ ├── fe310_plic.h │ │ ├── fu540_plic.cpp │ │ ├── fu540_plic.h │ │ ├── memory.h │ │ ├── memory_mapped_file.h │ │ ├── options.cpp │ │ ├── options.h │ │ ├── slip.cpp │ │ ├── slip.h │ │ ├── terminal.h │ │ ├── uart.cpp │ │ ├── uart.h │ │ ├── uart16550.h │ │ ├── uart_if.cpp │ │ ├── uart_if.h │ │ └── util.h │ ├── hifive/ │ │ ├── CMakeLists.txt │ │ ├── aon.h │ │ ├── can/ │ │ │ ├── 90-slcan.rules │ │ │ ├── CAN-Howto.md │ │ │ ├── cantest.cpp │ │ │ ├── mcp_can_dfs.h │ │ │ ├── slcan_add.sh │ │ │ └── slcan_remove.sh │ │ ├── can.cpp │ │ ├── can.h │ │ ├── gpio.cpp │ │ ├── gpio.h │ │ ├── hifive_main.cpp │ │ ├── maskROM.h │ │ ├── oled/ │ │ │ ├── common.cpp │ │ │ ├── common.hpp │ │ │ ├── oled.cpp │ │ │ └── oled.hpp │ │ ├── otp.h │ │ ├── prci.h │ │ ├── spi.h │ │ ├── tunnel-uart.cpp │ │ └── tunnel-uart.hpp │ ├── hwitl/ │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── virtual_bus_tlm_connector.cpp │ │ └── virtual_bus_tlm_connector.hpp │ ├── linux/ │ │ ├── CMakeLists.txt │ │ ├── linux_main.cpp │ │ └── prci.h │ ├── linux32/ │ │ ├── CMakeLists.txt │ │ ├── linux32_main.cpp │ │ └── prci.h │ ├── microrv32/ │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── microrv32_gpio.h │ │ ├── microrv32_led.h │ │ └── microrv32_uart.h │ ├── test32/ │ │ ├── CMakeLists.txt │ │ ├── htif.h │ │ └── test32_main.cpp │ ├── tiny32/ │ │ ├── CMakeLists.txt │ │ └── tiny32_main.cpp │ ├── tiny32-mc/ │ │ ├── CMakeLists.txt │ │ └── mc_main.cpp │ ├── tiny64/ │ │ ├── CMakeLists.txt │ │ └── tiny64_main.cpp │ └── tiny64-mc/ │ ├── CMakeLists.txt │ └── mc_main.cpp ├── util/ │ ├── common.h │ ├── elegantEnums.cpp │ ├── elegantEnums.hpp │ ├── gtkwave_riscv-filter/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ └── riscv-filter.cpp │ ├── gtkwave_riscv-filter.py │ ├── memory_map.h │ ├── options.h │ └── tlm_map.h └── vendor/ ├── CMakeLists.txt └── softfloat/ ├── CMakeLists.txt ├── f128_add.c ├── f128_classify.c ├── f128_div.c ├── f128_eq.c ├── f128_eq_signaling.c ├── f128_isSignalingNaN.c ├── f128_le.c ├── f128_le_quiet.c ├── f128_lt.c ├── f128_lt_quiet.c ├── f128_mul.c ├── f128_mulAdd.c ├── f128_rem.c ├── f128_roundToInt.c ├── f128_sqrt.c ├── f128_sub.c ├── f128_to_f16.c ├── f128_to_f32.c ├── f128_to_f64.c ├── f128_to_i32.c ├── f128_to_i32_r_minMag.c ├── f128_to_i64.c ├── f128_to_i64_r_minMag.c ├── f128_to_ui32.c ├── f128_to_ui32_r_minMag.c ├── f128_to_ui64.c ├── f128_to_ui64_r_minMag.c ├── f16_add.c ├── f16_div.c ├── f16_eq.c ├── f16_eq_signaling.c ├── f16_isSignalingNaN.c ├── f16_le.c ├── f16_le_quiet.c ├── f16_lt.c ├── f16_lt_quiet.c ├── f16_mul.c ├── f16_mulAdd.c ├── f16_rem.c ├── f16_roundToInt.c ├── f16_sqrt.c ├── f16_sub.c ├── f16_to_f128.c ├── f16_to_f32.c ├── f16_to_f64.c ├── f16_to_i32.c ├── f16_to_i32_r_minMag.c ├── f16_to_i64.c ├── f16_to_i64_r_minMag.c ├── f16_to_ui32.c ├── f16_to_ui32_r_minMag.c ├── f16_to_ui64.c ├── f16_to_ui64_r_minMag.c ├── f32_add.c ├── f32_classify.c ├── f32_div.c ├── f32_eq.c ├── f32_eq_signaling.c ├── f32_isSignalingNaN.c ├── f32_le.c ├── f32_le_quiet.c ├── f32_lt.c ├── f32_lt_quiet.c ├── f32_mul.c ├── f32_mulAdd.c ├── f32_rem.c ├── f32_roundToInt.c ├── f32_sqrt.c ├── f32_sub.c ├── f32_to_f128.c ├── f32_to_f16.c ├── f32_to_f64.c ├── f32_to_i32.c ├── f32_to_i32_r_minMag.c ├── f32_to_i64.c ├── f32_to_i64_r_minMag.c ├── f32_to_ui32.c ├── f32_to_ui32_r_minMag.c ├── f32_to_ui64.c ├── f32_to_ui64_r_minMag.c ├── f64_add.c ├── f64_classify.c ├── f64_div.c ├── f64_eq.c ├── f64_eq_signaling.c ├── f64_isSignalingNaN.c ├── f64_le.c ├── f64_le_quiet.c ├── f64_lt.c ├── f64_lt_quiet.c ├── f64_mul.c ├── f64_mulAdd.c ├── f64_rem.c ├── f64_roundToInt.c ├── f64_sqrt.c ├── f64_sub.c ├── f64_to_f128.c ├── f64_to_f16.c ├── f64_to_f32.c ├── f64_to_i32.c ├── f64_to_i32_r_minMag.c ├── f64_to_i64.c ├── f64_to_i64_r_minMag.c ├── f64_to_ui32.c ├── f64_to_ui32_r_minMag.c ├── f64_to_ui64.c ├── f64_to_ui64_r_minMag.c ├── i32_to_f128.c ├── i32_to_f16.c ├── i32_to_f32.c ├── i32_to_f64.c ├── i64_to_f128.c ├── i64_to_f16.c ├── i64_to_f32.c ├── i64_to_f64.c ├── include/ │ └── softfloat/ │ ├── internals.h │ ├── platform.h │ ├── primitiveTypes.h │ ├── primitives.h │ ├── softfloat.h │ ├── softfloat.hpp │ ├── softfloat_types.h │ └── specialize.h ├── s_add128.c ├── s_add256M.c ├── s_addCarryM.c ├── s_addComplCarryM.c ├── s_addM.c ├── s_addMagsF128.c ├── s_addMagsF16.c ├── s_addMagsF32.c ├── s_addMagsF64.c ├── s_approxRecip32_1.c ├── s_approxRecipSqrt32_1.c ├── s_approxRecipSqrt_1Ks.c ├── s_approxRecip_1Ks.c ├── s_commonNaNToF128UI.c ├── s_commonNaNToF16UI.c ├── s_commonNaNToF32UI.c ├── s_commonNaNToF64UI.c ├── s_compare128M.c ├── s_compare96M.c ├── s_countLeadingZeros16.c ├── s_countLeadingZeros32.c ├── s_countLeadingZeros64.c ├── s_countLeadingZeros8.c ├── s_eq128.c ├── s_f128UIToCommonNaN.c ├── s_f16UIToCommonNaN.c ├── s_f32UIToCommonNaN.c ├── s_f64UIToCommonNaN.c ├── s_le128.c ├── s_lt128.c ├── s_mul128By32.c ├── s_mul128MTo256M.c ├── s_mul128To256M.c ├── s_mul64ByShifted32To128.c ├── s_mul64To128.c ├── s_mul64To128M.c ├── s_mulAddF128.c ├── s_mulAddF16.c ├── s_mulAddF32.c ├── s_mulAddF64.c ├── s_negXM.c ├── s_normRoundPackToF128.c ├── s_normRoundPackToF16.c ├── s_normRoundPackToF32.c ├── s_normRoundPackToF64.c ├── s_normSubnormalF128Sig.c ├── s_normSubnormalF16Sig.c ├── s_normSubnormalF32Sig.c ├── s_normSubnormalF64Sig.c ├── s_propagateNaNF128UI.c ├── s_propagateNaNF16UI.c ├── s_propagateNaNF32UI.c ├── s_propagateNaNF64UI.c ├── s_remStepMBy32.c ├── s_roundMToI64.c ├── s_roundMToUI64.c ├── s_roundPackMToI64.c ├── s_roundPackMToUI64.c ├── s_roundPackToF128.c ├── s_roundPackToF16.c ├── s_roundPackToF32.c ├── s_roundPackToF64.c ├── s_roundPackToI32.c ├── s_roundPackToI64.c ├── s_roundPackToUI32.c ├── s_roundPackToUI64.c ├── s_roundToI32.c ├── s_roundToI64.c ├── s_roundToUI32.c ├── s_roundToUI64.c ├── s_shiftRightJam128.c ├── s_shiftRightJam128Extra.c ├── s_shiftRightJam256M.c ├── s_shiftRightJam32.c ├── s_shiftRightJam64.c ├── s_shiftRightJam64Extra.c ├── s_shortShiftLeft128.c ├── s_shortShiftLeft64To96M.c ├── s_shortShiftRight128.c ├── s_shortShiftRightExtendM.c ├── s_shortShiftRightJam128.c ├── s_shortShiftRightJam128Extra.c ├── s_shortShiftRightJam64.c ├── s_shortShiftRightJam64Extra.c ├── s_shortShiftRightM.c ├── s_sub128.c ├── s_sub1XM.c ├── s_sub256M.c ├── s_subM.c ├── s_subMagsF128.c ├── s_subMagsF16.c ├── s_subMagsF32.c ├── s_subMagsF64.c ├── softfloat_raiseFlags.c ├── softfloat_state.c ├── ui32_to_f128.c ├── ui32_to_f16.c ├── ui32_to_f32.c ├── ui32_to_f64.c ├── ui64_to_f128.c ├── ui64_to_f16.c ├── ui64_to_f32.c └── ui64_to_f64.c