#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

#33 in #aarch64

Download history 4/week @ 2024-07-01 4/week @ 2024-07-08 7/week @ 2024-07-15 3/week @ 2024-07-22 9/week @ 2024-07-29 6/week @ 2024-08-05 10/week @ 2024-08-26 2/week @ 2024-09-02 4/week @ 2024-09-09 4/week @ 2024-09-16 25/week @ 2024-09-23 7/week @ 2024-09-30 6/week @ 2024-10-07 21/week @ 2024-10-14

59 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