From 2acb4152e537ddcd5f477712b080ea507e84dbb9 Mon Sep 17 00:00:00 2001 From: readlnh <16349082+readlnh@users.noreply.github.com> Date: Tue, 11 Feb 2020 16:05:25 +0800 Subject: [PATCH] Add Chinese translation of tutorial 01 (#44) Add Chinese translation of Tutorial 01 Co-authored-by: Cola Chen --- 01_wait_forever/README.CN.md | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 01_wait_forever/README.CN.md diff --git a/01_wait_forever/README.CN.md b/01_wait_forever/README.CN.md new file mode 100644 index 00000000..87f1ab76 --- /dev/null +++ b/01_wait_forever/README.CN.md @@ -0,0 +1,38 @@ +# 教程 01 - 一直等待(死循环) + +## tl;dr + +项目框架已经构建完成;目前代码做的仅仅是挂起CPU核心执行内核代码。 + +- 工具链: `cargo xbuild` 工具 (包括 `xrustc`, `xclippy`) 以及用于构建 `AArch64` 裸机代码的 `aarch64-unknown-none-softfloat` 目标平台。 +- `Makefile` 目标项: + - `doc`: 生成文档。 + - `qemu`: 在 QEMU 中运行 `kernel`。 + - `clippy` + - `clean` + - `readelf`: 检查 `ELF` 输出。 + - `objdump`: 检查汇编。 + - `nm`: 检查符号。 +- 代码按照 `kernel`, `arch` 和 `BSP` (板级支持包)的形式组织。 + - 条件编译会根据用户提供的参数编译各自的 `arch` 和 `BSP` 的内容。 +- 自定义 `link.ld` 链接脚本. + - 载入地址为 `0x80_000` + - 目前仅有 `.text` 小节(section)。 +- `main.rs`: 重要的 [inner attributes]: + - `#![no_std]`, `#![no_main]` +- 汇编函数 `_start()` 会执行 `wfe` (Wait For Event), 并挂起所有正在执行 `_start()` 的核心。 +- 我们(必须)定义一个 `#[panic_handler]` 函数。 + - 用于等待cpu事件的发生。 + +[inner attributes]: https://doc.rust-lang.org/reference/attributes.html + +### 测试一下! + +在项目文件夹下调用 QEMU 并观察在 `wfe` 中CPU核心的运转情况: +```console +» make qemu +[...] +IN: +0x00080000: d503205f wfe +0x00080004: 17ffffff b #0x80000 +```