#aarch64 #arm #aarch32 #cortext

armv8

A library to program armv8-a (aarch64/aarch32) hardware. Contains armv8-a specific data structure definitions, data-tables, and functions to access architectural registers.

1 unstable release

0.0.1 Oct 20, 2022

#38 in #aarch64

Download history 22/week @ 2024-02-19 17/week @ 2024-02-26 5/week @ 2024-03-04 23/week @ 2024-03-11 6/week @ 2024-03-18 16/week @ 2024-03-25

53 downloads per month
Used in 2 crates

MIT license

3MB
42K SLoC

Rust ARMv8 (aarch64/aarch32)

Rust library to program ARMv8-A hardware. It provides access and construction functions for ARMv8 hardware-defined state and data structures.

Acknowledgements

The library closely follows the structure of rust-x86, and borrows some of its code.

Supports

  • architectural registers (generated from arm xml spec)
  • paging definitions (4k granule)

Todo's

  • AArch32 support
  • Paging granules 16k and 64k

Register Binding Generation

To generate/update the Rust register bindings execute:

    $ bash tools/generate-register-bindings.sh

Dependencies for the Rust register binding generations:

    # apt-get install python3-plumbum

Dependencies