麻雀虽小,五脏俱全的实时操作系统。
git clone --recurse-submodules [email protected]:qclic/sparreal-os.git
- 安装 Rust
- 安装依赖
cargo install ostool
安装Qemu, 并加入环境变量。
安装Qemu
安装Qemu
ostool build
ostool run qemu
ostool run qemu -d
vscode 选择调试配置 KDebug
, 点击 Run and Debug
按钮。
需要连接开发板串口。
ostool run uboot
首次执行 ostool
任务后,会在根目录生成默认配置文件 .project.toml
。
- 实现平台接口
- 初始化页表,启动MMU。
- 启动内核
use sparreal_kernel::platform::Platform;
use sparreal_macros::api_impl;
pub struct PlatformImpl;
// 实现接口
#[api_impl]
impl Platform for PlatformImpl {
unsafe fn wait_for_interrupt() {
aarch64_cpu::asm::wfi();
}
... other fn
}
pub use sparreal_kernel::*;
// 启动MMU,并进入函数
unsafe fn boot(kconfig: kernel::KernelConfig) -> ! {
// 初始化日志和内存分配器。
kernel::init_log_and_memory(&kconfig);
// 注册驱动
kernel::driver_register_append(drivers::registers());
// 启动内核
kernel::run()
}
``