An example of combining various libraries for aarch64 OS development in Rust.
This crate demonstrates how to use a number of aarch64-specific crates:
aarch64-pagingfor page table management.aarch64-rtfor the entry point and exception handling.smcccfor PSCI and other standard SMC calls to EL3 firmware.
As well as some more general crates for embedded development:
buddy_system_allocatorfor heap allocation.percorefor exception masking.
And some device driver crates:
arm-gicfor the Arm Generic Interrupt Controller.arm_pl031for the PL031 real-time clock.arm-pl011-uartfor the PL011 UART.virtio-driversfor various VirtIO devices.
This is not an officially supported Google product.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
If you want to contribute to the project, see details of how we accept contributions.