3个版本
0.0.2 | 2024年5月14日 |
---|---|
0.0.1 | 2024年5月7日 |
0.0.0 | 2023年12月29日 |
#5 in #sbi
每月 24 次下载
33KB
575 行
RustSBI
RISC-V 管理器二进制接口 (SBI) 库,用Rust编写;在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项目本身存在错误,请发起一个问题或拉取请求来让我们知道!
许可证 & 版权
本项目受以下任一许可证的许可:
- 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基金会根据Creative Commons Attribution 4.0国际许可证(CC-BY 4.0)版权所有。完整的许可证文本可在https://creativecommons.org/licenses/by/4.0/找到。
依赖关系
~265–710KB
~17K SLoC