从零搭出能在 QEMU 上启动并打印的 Rust no_std 工程,同时落地 core/bsp 分层骨架。这是第一次运行自己的代码。
rustup toolchain install nightly + rust-src 组件(tier-3 目标需 -Z build-std=core)rustvisor-core(架构无关)+ rustvisor-bsp-qemu(mps3-an536 内存映射、UART).cargo/config.toml:target armv8r-none-eabihf、build-std、链接脚本参数_start 汇编:设栈指针、清 .bss、跳入 Rust 入口;#[panic_handler]# 构建(tier-3 目标需 build-std) cargo build --release -Z build-std=core --target armv8r-none-eabihf # 运行 qemu-system-arm -M mps3-an536 -nographic -semihosting -kernel <elf> # 调试:QEMU 加 -S -s 挂起等待,另开终端 arm-none-eabi-gdb <elf> -ex 'target remote :1234'
armv8r-none-eabihf 是 tier-3 目标,没有预编译的 core——忘了 build-std 会报"找不到 crate core"。mps3-an536 机型需要 QEMU ≥ 9.x(你装的 11.0.1 没问题)。
QEMU 出字:Rust 裸机在 mps3-an536 上启动并从 UART 输出。
rustvisor-core(no_std 库)与 rustvisor-bsp-qemu(no_main 二进制,_start 占位 + panic handler);.cargo/config.toml 配置 target + build-std,rust-toolchain.toml 固定 nightly;cargo build 对 armv8r-none-eabihf 编译链接通过,产出 ARM ELF。nightly + rust-src 确认已装。待做:链接脚本、真正的启动代码、hello 输出。