tg-sbi

Crates.iotg-sbi
lib.rstg-sbi
version0.1.0-preview.1
created_at2026-01-24 16:01:43.199514+00
updated_at2026-01-24 16:01:43.199514+00
descriptionSBI (Supervisor Binary Interface) call wrappers for rCore tutorial OS.
homepagehttps://github.com/rcore-os/rCore-Tutorial-in-single-workspace
repositoryhttps://github.com/rcore-os/rCore-Tutorial-in-single-workspace
max_upload_size
id2066928
size16,234
Ivans (Ivans-11)

documentation

https://docs.rs/tg-sbi

README

tg-sbi

Crates.io Documentation License

SBI (Supervisor Binary Interface) 调用封装模块,为 rCore 教学操作系统提供 SBI 接口。

功能特性

  • 提供 RISC-V SBI 调用的 Rust 封装
  • 可选的内置 M-Mode SBI 实现(用于 -bios none 启动)
  • no_std 环境支持

支持的 SBI 扩展

  • Legacy 控制台 I/O(EID 0x01, 0x02)
  • Timer 扩展(EID 0x54494D45)
  • System Reset 扩展(EID 0x53525354)

使用方法

use tg_sbi::{console_putchar, set_timer, shutdown};

// 输出字符
console_putchar(b'H');

// 设置定时器中断
set_timer(1000000);

// 关闭系统
shutdown(false);

Features

  • nobios: 启用内置的 M-Mode SBI 实现。当使用 QEMU 的 -bios none 选项启动时, 此 feature 提供基本的 SBI 服务,包括 UART 控制台、定时器和系统重置功能。

硬件要求

nobios feature 专为 QEMU virt 机器设计,假设以下 MMIO 地址:

  • UART: 0x1000_0000
  • CLINT mtimecmp: 0x200_4000
  • QEMU virt test: 0x10_0000

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 242

cargo fmt