mirror of
https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials.git
synced 2024-11-15 18:14:02 +00:00
c8c422e995
* Translation tutorial 3 * Update README.CN.md * Update README.CN.md * Update README.CN.md * Update README.CN.md * Translate Chapter 4 Safe Globals * remove Chapter 4 Translation, modify the diff in Chapter 2 and Chapter 3 Co-authored-by: Fengqixian <570311238@qq.com>
1.2 KiB
1.2 KiB
教程 03 - Hacky Hello World
tl;dr
- 介绍全局的
println!()
宏以便尽早启用"printf debugging"。 - 为了保持教程长度合理,打印函数目前 "滥用" 了 QEMU 属性,该属性允许我们在没有正确设置的情况下使用树莓派的
UART
。 - 在接下来的教程中将逐步使用真实硬件的
UART
。
值得注意的补充
src/console.rs
为控制台命令和通过console::console()
对内核控制台的全局访问引入了接口Traits
。src/bsp/raspberrypi/console.rs
实现QEMU仿真UART的接口。- 紧急处理程序使用新的
println!()
以显示用户错误消息。 - 有一个新的Makefile目录
make test
,用于自动测试。它在QEMU
中引导编译后的内核,并检查内核生成的预期输出字符串。- 在本教程中,它检查字符串
Stopping here
,该字符串由panic!()
在main.rs
的末尾。
- 在本教程中,它检查字符串
测试一下
QEMU不再以汇编模式运行。从现在起,它将显示console
的输出。
$ make qemu
[...]
Hello from Rust!
Kernel panic!
Panic location:
File 'src/main.rs', line 126, column 5
Stopping here.
相比之前的变化(diff)
请检查英文版本,这是最新的。