# bsp_define
[](https://crates.io/crates/bsp_define)
[](https://docs.rs/bsp_define)
微内核 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 个区域)
## 用法
```rust
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、板级特有初始化
}
}
```