Expand description
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).