Writing an OS in Rust

  • 禁用标准库
  • 实现 panic 处理函数
  • eh_personality 语言项 - 禁用栈展开
  • start 语言项

vi src/main.rs

#![no_std]
#![no_main]

#[no_mangle]
pub extern "C" fn _start() -> ! {
   loop{}
}

use core::panic::PanicInfo;
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
    loop{}
}

vi Cargo.toml

[profile.dev]
panic = "abort"

[profile.release]
panic = "abort"

vi .cargo/config

[build]
target = "thumbv7em-none-eabihf"

其他参考