bsp_define 0.1.59

微内核 BSP 硬件配置 trait 定义
Documentation

bsp_define

crates.io docs.rs

微内核 BSP(Board Support Package)硬件配置 trait 定义。

#![no_std],支持 aarch64 / riscv64 架构。

功能

  • BspDefine trait — 统一的板级配置入口,通过关联类型指定控制台、中断控制器、时钟源
  • ConsoleImpl — 控制台驱动 trait(基于 core::fmt::Write
  • IrqchipImpl — 中断控制器驱动 trait(支持 GIC / PLIC / IPI)
  • ClockImpl — 时钟源驱动 trait(支持 ARM Generic Timer / RISC-V Timer)
  • SmpDefine — 多核启动定义(PSCI / SBI 双架构)
  • MemDefine — 内存域布局定义(最多 8 个区域)

用法

use bsp_define::{BspDefine, console::ConsoleImpl, irqchip::IrqchipImpl, clocksource::ClockImpl};

struct MyBsp;

impl BspDefine for MyBsp {
    type Console = MyConsole;
    type Irqchip = MyIrqchip;
    type Clock = MyClock;

    const DEFINE_SMP: SmpDefine = /* ... */;
    const DEFINE_MEMS: MemDefine = /* ... */;
    const DEFINE_CONSOLE: Self::Console = MyConsole::new();
    const DEFINE_IRQCHIP: Self::Irqchip = MyIrqchip::new();
    const DEFINE_CLOCK: Self::Clock = MyClock::new();

    fn late_init(&self) {
        // 加载 APP、板级特有初始化
    }
}