#startup #vex-v5 #vex #v5

no-std vexide-startup

User program startup and runtime support for vexide

24 releases

Uses new Rust 2024

0.5.0 Nov 30, 2025
0.5.0-alpha.2 Oct 19, 2025
0.4.3-rc.1 Apr 9, 2025
0.4.2 Mar 6, 2025
0.2.0 Jul 16, 2024

#353 in Robotics

Download history 57/week @ 2025-11-17 170/week @ 2025-11-24 217/week @ 2025-12-01 93/week @ 2025-12-08 57/week @ 2025-12-15 68/week @ 2025-12-22 60/week @ 2025-12-29 82/week @ 2026-01-05 109/week @ 2026-01-12 103/week @ 2026-01-19 102/week @ 2026-01-26 39/week @ 2026-02-02 21/week @ 2026-02-09 73/week @ 2026-02-16 67/week @ 2026-02-23 144/week @ 2026-03-02

307 downloads per month
Used in 3 crates (via vexide)

MIT license

145KB
2K SLoC

VEX user program startup and runtime support.

This crate provides runtime infrastructure for booting vexide programs from Rust code. This infrastructure includes a more optimized heap allocator, differential uploading support, and a panic hook that draws panic messages to the screen and captures backtraces.

  • User code begins at an assembly routine called _vexide_boot, which sets up the stack section before jumping to the _start routine defined in libstd, which then calls the main function.
  • From there, consumers must call the startup function to finish the startup process by applying differential upload patches, claiming heap space, and setting up this crate's custom panic hook.

This crate does NOT provide a libc crt0 implementation. No libc-style global constructors are called. This means that the __libc_init_array function must be explicitly called if you wish to link to C libraries.

Dependencies

~1.2–4.5MB
~50K SLoC