#aarch64 #bare-metal #no-std

no-std aarch64-std

implementations of standard library components for bare-metal aarch64

3 releases

0.1.2 Dec 11, 2022
0.1.1 Dec 11, 2022
0.1.0 Dec 11, 2022

#983 in Embedded development

MIT license

43KB
658 lines

aarch64-std

aarch64-std implements components from the Rust standard library in a way suitable for no_std or bare metal ARM applications.

Design Goals

In order:

  1. Run on any aarch64 platform at EL0. Anything from microcontrollers to Zynq UltraScale+ MPSoCs to M1 Macs should just work.
  2. Mimic the standard library APIs as closely as possible. For the most part these modules are drop-in replacements for the standard library.
  3. Perform as efficiently as possible.

Highlights

  • sync
    • Mutex
  • thread
    • sleep
    • spawn
      • Uses cooperative green threads.
      • As many cores as you'd like can participate using thread::contribute.
      • Threads yield via the standard thread::yield_now function.
  • time
    • Instant

Cargo Features

  • "alloc" enables functionality which requires the use of the alloc crate. It's enabled by default, but may be disabled if you don't have an allocator available.

Dependencies

~390KB