本项目是 ArceOS 在 AArch64 架构下的动态平台实现,主要用于支持 ArceOS Hypervisor 运行环境。该平台提供了完整的底层硬件抽象层,包括启动初始化、内存管理、中断处理、SMP多核支持、时间管理、电源控制及设备树解析等功能。
通过启用 hv 特性,可以支持 EL2 虚拟化环境,适配 Hypervisor 场景。项目基于 Rust 2024 Edition 开发,采用 no_std 设计,完全适用于裸机和嵌入式环境。
hv 特性启用,支持 Hypervisor 运行环境curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add aarch64-unknown-none-softfloat
git clone <repository-url>
cd axplat-aarch64-dyn
本平台与 ArceOS 及衍生 OS 项目配合使用:
# 获取 ArceOS hypervisor 分支
git clone https://github.com/arceos-hypervisor/arceos.git
cd arceos
# 把本平台添加到Cargo.toml
[target.'cfg(target_arch = "aarch64")'.dependencies]
axplat-aarch64-dyn = { git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn.git", features = ["irq"]}
# 配置平台
make APP_FEATURES=dyn MYPLAT=axplat-aarch64-dyn xxx
src/ ├── lib.rs # 主入口和核心功能 ├── boot.rs # 系统启动入口 ├── init.rs # 初始化流程 ├── mem.rs # 内存管理 ├── irq/ # 中断处理逻辑 │ ├── mod.rs # 中断模块主文件 │ ├── v2.rs # GICv2 中断控制器 │ └── v3.rs # GICv3 中断控制器 ├── smp.rs # 多核处理器支持 ├── time.rs # 时间与定时器 ├── power.rs # 电源管理 ├── fdt.rs # 设备树解析 ├── driver.rs # 设备驱动接口 └── console.rs # 控制台输出 Cargo.toml # 项目配置文件 axconfig.toml # 平台配置文件 build.rs # 构建脚本 rust-toolchain.toml # Rust 工具链配置 link.ld # 链接脚本
启动模块负责系统启动时的早期初始化工作,包括:
内存管理模块提供:
中断处理模块支持:
SMP模块提供多核处理器支持:
时间管理模块提供:
电源控制模块提供基础的电源管理功能:
设备树解析模块:
| 特性 | 描述 |
|---|---|
hv | 启用 EL2 虚拟化支持,适配 Hypervisor 环境 |
smp | 启用 SMP 多核支持 |
irq | 启用中断处理支持 |
fp-simd | 启用浮点和 SIMD 指令支持 |
# 构建项目
cargo build
# 构建时启用特定特性
cargo build --features "hv,smp,irq"
平台配置文件 axconfig.toml 包含以下主要配置项:
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情