FreeRTOS基础篇(二)——QEMU
FreeRTOS基础篇(二)——QEMU
前言:
本篇文章介绍QEMU在linux环境下的使用。
1 介绍
QEMU(Quick Emulator)是一款开源的硬件虚拟化工具,支持全系统模拟(Full System Emulation)和用户模式模拟(User Mode Emulation)。它能够模拟多种 CPU 架构(如 x86、ARM、RISC-V、MIPS 等),并运行未经修改的操作系统或应用程序,广泛应用于嵌入式开发、系统测试和跨平台软件开发。
QEMU 的核心功能:
| 功能 | 说明 |
|---|---|
| 全系统模拟 | 模拟整个计算机(CPU、内存、外设),可运行完整操作系统(如 Linux、FreeRTOS)。 |
| 用户模式模拟 | 仅模拟 CPU,允许在一种架构(如 x86)上运行另一种架构(如 ARM)的应用程序。 |
| 多架构支持 | 支持 x86、ARM、RISC-V、MIPS、PowerPC、SPARC 等 30+ 种 CPU 架构。 |
| 设备模拟 | 提供虚拟硬盘、网卡、USB、GPU、串口等设备,适用于嵌入式开发调试。 |
| 动态二进制翻译(TCG) | 将目标架构指令动态翻译成本机指令,提高执行效率。 |
| 与 KVM 结合 | 在 Linux 上利用 KVM(Kernel-based Virtual Machine)加速虚拟化,接近 原生性能。 |
2 QEMU使用
2.1 linux编译
FreeRTOS/Demo目录下提供了丰富的例程,在linux下模拟开发,以Demo CORTEX_MPU_M3_MPS2_QEMU_GCC 举例。
该工程依赖于FreeRTOS内核,需要更新以下子仓库,否则编译报错缺少文件。
1 | [submodule "FreeRTOS/Source"] |
安装qemu编译环境,执行以下指令安装。
1 | sudo apt-get update |
下载和安装Arm工具。
1 | cd ~ |
添加Arm tools到终端的临时环境变量。
1 | export PATH="$HOME/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH" |
编译出二进制文件。
1 | cd ./FreeRTOS/FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC |

如果要编译Debug版本,则使用以下指令。
1 | make DEBUG=1 |
2.2 运行
编译成功后可看到生成二进制文件 ./build/RTOSDemo.axf 。
在qemu虚拟环境中运行二进制文件。
1 | sudo qemu-system-arm -machine mps2-an385 -monitor null -semihosting --semihosting-config enable=on,target=native -kernel ./build/RTOSDemo.axf -serial stdio -nographic -s -S |
启用GDB调试则执行指令。
1 | arm-none-eabi-gdb -q ./build/RTOSDemo.axf |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OnlyCalm's Blog!
评论
ValineGitalk






