26个版本
0.4.0-alpha.3 | 2024年5月14日 |
---|---|
0.4.0-alpha.1 | 2024年2月10日 |
0.3.2 | 2023年2月26日 |
0.3.0 | 2022年11月3日 |
0.0.2 | 2020年10月20日 |
77 in 嵌入式开发
141 每月下载量
270KB
3K SLoC
RustSBI
Rust中的RISC-V监控器二进制接口(SBI)库;在M模式或HS模式下运行。
二进制下载
大多数用户会从RustSBI原型系统获取RustSBI的二进制下载。请查看此处下载您平台上的二进制包。
板卡、SoC供应商和研究组将为支持的平台提供专门的RustSBI包。在awesome-rustsbi上存在一些包:这是一个关于RustSBI的精选列表,包括一些个人或社区维护的实现项目。
商业板用户可以访问特定于实现的分发链接,具体取决于他们需要的平台,或者如果供应商提供离散的RustSBI包支持,则可以咨询供应商。
最低支持的Rust版本
要编译RustSBI库,您至少需要Rust的稳定版本 rustc 1.65.0
。
构建此项目
RustSBI通常用作库或依赖项。如果您愿意,可以使用以下命令自行构建RustSBI库
cargo build
构建应无错误完成。
在本地平台上构建将允许开发虚拟机和仿真器。要为RISC-V平台环境交叉构建,您可以在该平台上安装目标并构建
# If you don't have the cross compile target installed, install it first
rustup target add riscv64imac-unknown-none-elf
# Build this project as library
cargo build --target riscv64imac-unknown-none-elf
RISC-V平台固件的平台通常是裸机目标。在正常情况下,这些目标在Rust中通常以 riscv??-
开头,以 -none-elf
结尾。
功能
- 丰富的功能且可扩展的操作系统运行时
- 支持机器、虚拟机和仿真器的兼容性
- 支持并与RISC-V SBI规范v2.0批准版本一起开发
- 用Rust编写,在稳定的Rust下构建
- 能够与其他固件生态系统项目一起开发
- 适用于您选择的操作系统内核模型
常见问题解答
- 我该如何构建RustSBI实现?
RustSBI在这方面有广泛的文档!无论您用它来构建什么,您都会找到一些关于RustSBI在裸机环境、虚拟机和仿真器上的文档。
请访问RustSBI文档主页查看。
- 我能在基于C的内核上使用RustSBI吗?
是的,您可以!RustSBI严格遵循RISC-V SBI标准。所有功能都为所有编程语言做好准备,只要它们支持RISC-V SBI定义的调用约定。
如果您的内核语言支持其他SBI实现,通常它将以相同的方式支持RustSBI。
演讲和文档
该项目最初是2020年rCore夏季代码活动的一部分,受到MeowSBI和其他类似项目的启发。现在它能够在广泛支持的RISC-V设备上运行rCore-Tutorial和其他操作系统内核。
从2020年8月起,有多个与RustSBI相关的演讲。这些演讲讨论了从RustSBI模块的设计和抽象到与RustSBI和RISC-V引导加载程序相关的实际生产和研究用例。这些演讲的公开幻灯片和博客文章可在RustSBI/slides页面找到。
平台实现注意事项
- RustSBI应作为库使用。在正常情况下,可以使用嵌入式Rust的
embedded-hal
库来实现RustSBI平台。 - 欢迎贡献!我们欢迎为FPGA核心和真实核心实现和测试RustSBI。也欢迎仿真器的实现。如果您准备好了,开始您自己的二进制项目并在其中使用RustSBI!
- 如果RustSBI项目中本身存在错误,请发起一个issue或pull request来让我们知道!
许可 & 版权
该项目受以下任一许可协议的许可
- MIT许可(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Mulan PSL v2(LICENSE-MULAN 或 https://opensource.org/licenses/MulanPSL-2.0)
本项目使用RISC-V SBI规范中的文档。这些文档由RISC-V Foundation根据Creative Commons Attribution 4.0国际许可协议(CC-BY 4.0)版权所有。完整许可文本可在https://creativecommons.org/licenses/by/4.0/找到。
依赖关系
~230–700KB
~17K SLoC