使用Rust在树莓派上编写操作系统 - 01 - 无限循环

概述

  • 本章搭建了项目骨架。
  • 一小段汇编代码让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!()宏作为占位符,否则可能会被编译器优化掉。

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×