rivet-rt 0.2.0

Rivet RTOS: boot code (_start/Reset, bss/data init, vector table, panic handler) shared across boards
Documentation
  • Coverage
  • 100%
    1 out of 1 items documented0 out of 0 items with examples
  • Size
  • Source code size: 14.49 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 84.84 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 7s Average build duration of successful builds.
  • all releases: 8s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • habeelali/rivet-rtos
    9 0 3
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • habeelali

Rivet RTOS boot glue: _start/Reset, bss/data initialization, default exception handlers, and a default panic handler — everything that was previously copy-pasted into every example binary's main.rs.

Link this crate (use rivet_rt as _;) alongside one rivet-arch-* and one rivet-bsp-* crate, declare your entry point with rivet::main, and that's a complete binary:

#![no_std]
#![no_main]

use rivet_bsp_qemu_virt as _;
use rivet_rt as _;

#[rivet::main]
fn main() -> ! {
    rivet::println!("hello");
    rivet::run()
}

Unlike rivet/rivet-arch-*/rivet-bsp-*, this crate legitimately knows the target architecture (#[cfg(target_arch = ...)]) — it is boot glue for a known target, the same role cortex-m-rt/riscv-rt play in the wider embedded-Rust ecosystem, not kernel or board logic. It reaches no MMIO of its own beyond what every binary needs to boot at all (stack pointer, bss/data, and — on Cortex-M — the small set of exception vectors every board needs something installed at).