257 字
1 分钟
使用Rust在树莓派上编写操作系统 - 01 - 无限循环
WARNING

本文所有内容均为翻译,原文:Tutorial 01 - Wait Forever;原项目:Operating System development tutorials in Rust on the Raspberry Pi

概述#

  • 本章搭建了项目骨架。
  • 一小段汇编代码让CPU的所有核心都执行内核代码。(译注:执行后CPU占用率100%)

构建#

  • Makefile目标:
    • doc:生成文档。
    • qemu:在QEMU中运行内核
    • clippy
    • clean
    • readelf:检查ELF输出。
    • objdump:检查汇编。
    • nm:检查符号。

需要关注的代码#

  • BSP中的link.ld为链接脚本。
    • 加载地址为0x8_0000
    • 目前只有一个节(section):代码节.text。(译注:详情参考ELF文件结构
  • main.rs中主要关注几个内部属性
    • #![no_std](译注:编译禁用自动引用标准库), #![no_main](译注:不使用main函数,我们自己提供入口点函数)
  • boot.s中:汇编函数_start()将执行wfe(等待事件),挂起所有执行_start()CPU核心。
  • 我们需要定义一个#[panic_handler]以使编译通过。
    • 使用unimplemented!()宏作为占位符,否则可能会被编译器优化掉。
使用Rust在树莓派上编写操作系统 - 01 - 无限循环
https://zlotus.github.io/2021/08/02/writing-os-in-rust-on-rpi-01/
作者
Z
发布于
2021-08-02
许可协议
CC BY-NC-SA 4.0