diff --git a/docs/2_OSLab/g2/boot.md b/docs/2_OSLab/g2/boot.md new file mode 100644 index 00000000..2c888d45 --- /dev/null +++ b/docs/2_OSLab/g2/boot.md @@ -0,0 +1 @@ +# 启动 diff --git a/docs/2_OSLab/g2/context.md b/docs/2_OSLab/g2/context.md new file mode 100644 index 00000000..973bce17 --- /dev/null +++ b/docs/2_OSLab/g2/context.md @@ -0,0 +1 @@ +# 上下文切换 diff --git a/docs/2_OSLab/g2/drivers.md b/docs/2_OSLab/g2/drivers.md new file mode 100644 index 00000000..dd94d133 --- /dev/null +++ b/docs/2_OSLab/g2/drivers.md @@ -0,0 +1 @@ +# 驱动 diff --git a/docs/2_OSLab/g2/environment.md b/docs/2_OSLab/g2/environment.md new file mode 100644 index 00000000..58c35fd7 --- /dev/null +++ b/docs/2_OSLab/g2/environment.md @@ -0,0 +1 @@ +# 环境配置 diff --git a/docs/2_OSLab/g2/memory.md b/docs/2_OSLab/g2/memory.md new file mode 100644 index 00000000..cbfa3118 --- /dev/null +++ b/docs/2_OSLab/g2/memory.md @@ -0,0 +1 @@ +# 内存管理 diff --git a/docs/2_OSLab/g2/overview.md b/docs/2_OSLab/g2/overview.md new file mode 100644 index 00000000..2313e8b3 --- /dev/null +++ b/docs/2_OSLab/g2/overview.md @@ -0,0 +1,31 @@ +# 概述 + +## Raspberry Pi 简介 + +本实验的目标是将 Rust OS 移植到 Raspberry Pi 3 Model B+ 上。Raspberry Pi 3B+ 的主要硬件参数如下: + +| Raspberry Pi 3B+ | | +|-------|---------| +| 指令集 | ARMv8-A 64 bit | +| 片上系统(SoC) | Broadcom BCM2837 | +| 处理器(CPU) | 4 x Cortex-A53 1.4Ghz +| 图形处理器(GPU) | Broadcom VideoCore IV | +| 内存 | 1GB(与 GPU 共享) | + +## 官方文档 + +* [ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile](https://static.docs.arm.com/ddi0487/da/DDI0487D_a_armv8_arm.pdf):Aarch64 的完整文档,有 7000 多页,最为详细。 +* [ARM Cortex-A Series Programmer’s Guide for ARMv8-A](http://infocenter.arm.com/help/topic/com.arm.doc.den0024a/DEN0024A_v8_architecture_PG.pdf):可认为是上一文档的精简版,仅有不到 300 页。 +* [BCM2837 ARM Peripherals](https://web.stanford.edu/class/cs140e/docs/BCM2837-ARM-Peripherals.pdf):Raspberry Pi SoC BCM283x 系列的外围设备文档,包含对 GPIO、中断控制器、mini UART、System Timer 等外围设备的访问。 +* [BCM2836 ARM-local peripherals](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2836/QA7_rev3.4.pdf):仅用于如何使用 ARM Generic Timer。 +* [Raspberry Pi firmware](https://github.com/raspberrypi/firmware):Raspberry Pi 二进制固件,部分开源,其中最有价值的是 [mailbox](https://github.com/raspberrypi/firmware/wiki) 的文档。 + +## 其他参考 + +* [Stanford CS140e](http://cs140e.stanford.edu/):Stanford CS140e 课程,一个用 Rust 语言编写的 Raspberry Pi 3 操作系统,包含串口输入输出、文件系统、进程管理等功能,但没有虚拟内存管理。 + +* [Learning operating system development using Linux kernel and Raspberry Pi](https://github.com/s-matyukevich/raspberry-pi-os):一个用 C 语言编写的 Raspberry Pi 3 操作系统,仿照 Linux,特点是文档非常详细。其中 Kernel Initialization、Interrupt handling、Virtual memory management 部分很有参考价值。 + +* [Bare Metal Rust Programming on Raspberry Pi 3](https://github.com/bztsrc/raspi3-tutorial):另一个用 C 语言编写的 Raspberry Pi 3 操作系统。 + +* [Bare Metal Rust Programming on Raspberry Pi 3 (Rust)](https://github.com/rust-embedded/rust-raspi3-tutorial):上一个项目的 Rust 版本,主要参考的是虚拟内存部分。 diff --git a/docs/2_OSLab/g2/peripherals.md b/docs/2_OSLab/g2/peripherals.md new file mode 100644 index 00000000..83ddc310 --- /dev/null +++ b/docs/2_OSLab/g2/peripherals.md @@ -0,0 +1 @@ +# 外围设备 diff --git a/docs/2_OSLab/g2/raspi3.md b/docs/2_OSLab/g2/raspi3.md new file mode 100644 index 00000000..c9fb8eec --- /dev/null +++ b/docs/2_OSLab/g2/raspi3.md @@ -0,0 +1,17 @@ +# Rust OS 在 Raspberry Pi 3 上的移植 + +计54 贾越凯 2015011335 + +计54 寇明阳 2015011318 + +计55 孔彦 2015011349 + +## 目录 + +* [概述](overview.md) +* [环境配置](environment.md) +* [启动](boot.md) +* [外围设备](peripherals.md) +* [内存管理](memory.md) +* [上下文切换](context.md) +* [驱动](drivers.md)