这门课默认你愿意动手写 C 代码,但不默认你已经学过完整编译原理课程。真正需要的前置知识主要是下面几类。
A1.1 你最好已经会什么
- C 语言里的函数、结构体、指针、
malloc/free make的最基本用法- 在终端里进入目录、运行命令、看错误输出
- 知道“汇编”“链接”“可执行文件”是不同阶段
如果这些还不熟,不代表你不能学这门课,只是你需要准备好在阅读过程中反复回看代码和输出。
A1.2 这门课用到哪些工具
gcc:在主机上编译课程 labriscv64-unknown-linux-gnu-gcc/as/ld:生成和处理 RISC-V 目标代码qemu-riscv32:在主机上运行 RISC-V 32 可执行文件
如果你在 Linux 上,优先先保证这三套工具能被 command -v 找到。
A1.3 为什么是 RISC-V
因为它的指令集相对干净,教学上更容易直接看到:
- 返回值放在哪个寄存器
- 参数怎样传递
- 栈帧怎样建立
- 条件跳转怎样编码
课程的重点不是“学会所有 RISC-V 指令”,而是把编译器输出如何映射到一套真实 ISA 上看明白。
A1.4 真正卡住时先做什么
如果你不确定问题是环境、讲义理解,还是自己代码写错了,优先按这个顺序排查:
make clean && make test- 仔细读第一条失败信息
- 对照
TASK.md确认是不是改错文件 - 回到对应 chapter,重新看“为什么现在轮到它”
很多卡住并不是知识不会,而是边界没站稳。