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中运行内核。clippycleanreadelf:检查ELF输出。objdump:检查汇编。nm:检查符号。
需要关注的代码
BSP中的link.ld为链接脚本。- 加载地址为
0x8_0000 - 目前只有一个节(section):代码节
.text。(译注:详情参考ELF文件结构)
- 加载地址为
main.rs中主要关注几个内部属性:#,#
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/