学习目标

  • 理解 QEMU 的作用
  • 掌握 QEMU RISC-V 的使用
  • 了解 virt 机器模型

1.1 什么是 QEMU

QEMU 是一个开源的处理器模拟器,可以模拟多种架构:

  • x86/x86_64
  • ARM/AArch64
  • RISC-V
  • MIPS 等

1.2 为什么用 QEMU

  • 无需硬件:在 PC 上开发嵌入式程序
  • 快速调试:支持 GDB 调试
  • 标准化:virt 机器提供标准外设

1.3 安装 QEMU

# Ubuntu
sudo apt install qemu-system-riscv32 qemu-system-riscv64

# 验证
qemu-system-riscv32 --version

1.4 QEMU virt 机器

virt 是 QEMU 提供的虚拟机器,包含:

  • UART (16550)
  • PLIC (中断控制器)
  • CLINT (核心本地中断)
  • RAM

内存映射

0x00001000 - CLINT
0x0C000000 - PLIC
0x10000000 - UART0
0x80000000 - RAM (起始地址)

1.5 第一个程序

创建 hello.s

.section .text
.global _start

_start:
    li a0, 0x10000000   # UART 基地址
    li a1, 'H'
    sb a1, 0(a0)
    li a1, 'i'
    sb a1, 0(a0)
    li a1, '\n'
    sb a1, 0(a0)

loop:
    j loop

编译运行:

riscv32-unknown-elf-as hello.s -o hello.o
riscv32-unknown-elf-ld -Ttext=0x80000000 hello.o -o hello.elf
qemu-system-riscv32 -machine virt -nographic -bios none -kernel hello.elf

下一步

RISC-V 内存布局

更新时间: