QEMU 训练营 2026 — 实验仓库
本仓库是 QEMU 训练营 2026 专业阶段的实验仓库,涵盖四个实验方向,均基于 RISC-V 架构。
| 方向 | 实验手册 | 硬件手册 / 编程指南 |
|---|---|---|
| CPU | CPU 实验手册 | CPU Datasheet |
| SoC | SoC 实验手册 | G233 SoC 硬件手册 |
| GPGPU | GPU 实验手册 | GPU 硬件手册 |
| Rust | Rust 实验手册 | Rust 编程指南 |
完整讲义网站:https://qemu.gevico.online/
| 方向 | 测试框架 | 测试位置 | 评分 |
|---|---|---|---|
| CPU | TCG 测题 | tests/gevico/tcg/ | 10 题 x 10 分 = 100 分 |
| SoC | QTest | tests/gevico/qtest/ | 10 题 x 10 分 = 100 分 |
| GPGPU | QTest (QOS) | tests/qtest/gpgpu-test.c | 17 题 -> 100 分 |
| Rust | QTest + 单元测试 | tests/gevico/qtest/ + rust/hw/i2c/ | 10 题 x 10 分 = 100 分 |
# Ubuntu 24.04
sudo sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
sudo apt-get update
sudo apt-get build-dep -y qemu
# 安装 RISC-V 裸机交叉编译器(CPU 实验必需)
sudo mkdir -p /opt/riscv
wget -q https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2025.09.28/riscv64-elf-ubuntu-24.04-gcc-nightly-2025.09.28-nightly.tar.xz -O riscv-toolchain.tar.xz
sudo tar -xJf riscv-toolchain.tar.xz -C /opt/riscv --strip-components=1
sudo chown -R $USER:$USER /opt/riscv
export PATH="/opt/riscv/bin:$PATH"
echo 'export PATH="/opt/riscv/bin:$PATH"' >> ~/.bashrc
riscv64-unknown-elf-gcc --version
# 安装 Rust 工具链(Rust 实验及构建必需)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env"
cargo install bindgen-cli
make -f Makefile.camp configure
make -f Makefile.camp build
# 运行指定方向的实验测试
make -f Makefile.camp test-cpu
make -f Makefile.camp test-soc
make -f Makefile.camp test-gpgpu
make -f Makefile.camp test-rust
# 运行所有实验测试
make -f Makefile.camp test
git add .
git commit -m "feat: implement ..."
git push origin main
推送到 main 后,CI 会自动编译、运行测试、计算得分并上传到排行榜平台。得分为 0 时不会上传。
为 G233 虚拟机实现自定义 RISC-V 指令。测试通过 semihosting 裸机程序验证指令行为。
g233(hw/riscv/g233.c)tests/gevico/tcg/riscv64/test-insn-*.cmake -f Makefile.camp test-cpu为 G233 SoC 实现外设设备模型(GPIO、PWM、WDT、SPI、Flash)。测试通过 QTest 的 MMIO 读写验证寄存器行为和中断连接。
0x10012000)、PWM(0x10015000)、WDT(0x10010000)、SPI(0x10018000)tests/gevico/qtest/test-*.cmake -f Makefile.camp test-soc实现 PCIe GPGPU 设备,包含 SIMT 执行引擎、DMA 和低精度浮点支持。测试验证设备寄存器、显存、内核执行和 FP8/FP4 转换。
hw/gpgpu/(PCI 设备 gpgpu)tests/qtest/gpgpu-test.c(17 个子测试)make -f Makefile.camp test-gpgpu使用 Rust 为 G233 SoC 实现 I2C 总线、GPIO I2C 控制器和 SPI 控制器。单元测试验证 Rust 核心逻辑;QTest 测试验证设备寄存器行为和外设通信(I2C 连接 AT24C02 EEPROM,SPI 连接 AT25 EEPROM)。
rust/hw/i2c/src/lib.rs(3 道单元测试)0x10013000,连接 AT24C02 EEPROM(地址 0x50)0x10019000,连接 AT25 EEPROMtests/gevico/qtest/test-i2c-*.c、tests/gevico/qtest/test-spi-rust-*.cmake -f Makefile.camp test-rustmake -f Makefile.camp help # 查看所有命令 make -f Makefile.camp configure # 配置 QEMU make -f Makefile.camp build # 编译 QEMU make -f Makefile.camp test-cpu # CPU 实验测试 make -f Makefile.camp test-soc # SoC 实验测试 make -f Makefile.camp test-gpgpu # GPGPU 实验测试 make -f Makefile.camp test-rust # Rust 实验测试 make -f Makefile.camp test # 所有测试 make -f Makefile.camp clean # 清理构建 make -f Makefile.camp distclean # 删除构建目录
main 都会触发完整的 CI 流程。