2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2020年5月22日 |
---|---|
0.1.0 | 2020年5月6日 |
#314 在 WebAssembly
185KB
5K SLoC
riscv-rust
riscv-rust 是一个用 Rust 编写的 RISC-V 处理器模拟器项目。
演示
您可以在浏览器中的模拟器上运行 Linux 或 xv6。 在线演示在此
屏幕截图
文档
功能
指令/功能支持状态
- RV32/64I
- RV32/64M
- RV32/64F (部分)
- RV32/64D (部分)
- RV32/64Q
- RV32/64A (部分)
- RV64C/32C (部分)
- RV32/64Zifencei (部分)
- RV32/64Zicsr (部分)
- CSR (部分)
- SV32/39
- SV48
- 特权指令 (部分)
- PMP
等等...
如何将 riscv-rust 导入您的 Rust 项目
此模块在 crates.io 发布。将以下行添加到您的 Rust 项目的 Cargo.toml 中。
[dependencies]
riscv_emu_rust = "0.1.0"
有关示例代码,请参阅 cli/src/main.rs。
如何构建核心库
$ git clone https://github.com/takahirox/riscv-rust.git
$ cd riscv-rust
$ cargo build --release
如何将 Linux 或 xv6 作为 CLI 应用程序运行
$ cd riscv-rust/cli
# Run Linux
$ cargo run --release ../resources/linux/bbl -f ../resources/linux/busybear.bin -d ../resources/linux/dtb.dtb
# Run xv6
$ cargo run --release ../resources/xv6/kernel -f ../resources/xv6/fs.img
如何构建 WebAssembly 并在浏览器中运行
先决条件
$ cd riscv-rust/wasm
$ bash build.sh
# boot local server and access riscv-rust/wasm/web/index.html
如何安装 WebAssembly npm 包
$ npm install riscv_emu_rust_wasm
如何运行 riscv-tests
先决条件
$ cd riscv-rust/cli
$ cargo run $path_to_riscv_tets/isa/rv32ui-p-add -n
链接
Linux RISC-V 端口
xv6-riscv
xv6-riscv 是由 MIT 在当前 C 语言中重写的 UNIX V6(xv6)的 RISC-V 端口。