QEMU 仿真 Cortex-M55 + NuttX 完整部署指南
Cortex-M55 是 ARMv8.1-M 架构内核,QEMU 6.2+原生支持mps3-an547开发板(搭载 Cortex-M55),NuttX 官方已完美适配该平台,无需硬件即可完成仿真开发。
本文提供一键式部署流程,覆盖环境安装、NuttX 编译、QEMU 仿真、串口调试全步骤。
一、环境准备(Ubuntu 20.04/22.04 推荐)
1. 安装依赖工具
bash
运行
# 基础编译工具 sudo apt update sudo apt install -y git gcc g++ make cmake python3-pip libncurses5-dev \ flex bison gperf libtool-bin automake autoconf # ARM Cortex-M 交叉编译器(官方GCC) wget https://armkeil.blob.core.com/developer/files/support_zip_files/downloads/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz tar -xf arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz sudo mv arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi /opt/arm-gcc # 添加环境变量 echo 'export PATH=/opt/arm-gcc/bin:$PATH' >> ~/.bashrc source ~/.bashrc # 验证编译器 arm-none-eabi-gcc --version2. 安装支持 Cortex-M55 的 QEMU
bash
运行
# 安装QEMU 7.0+(必须支持mps3-an547) sudo apt install -y qemu-system-arm # 验证QEMU是否支持AN547 qemu-system-arm -M help | grep mps3-an547✅ 输出mps3-an547说明环境正常。
二、拉取 NuttX 源码
NuttX 采用主源码 + 应用仓库分离模式,必须同时拉取:
bash
运行
# 创建工作目录 mkdir nuttx-cortexm55 && cd nuttx-cortexm55 # 拉取NuttX核心源码 git clone https://github.com/apache/nuttx.git nuttx # 拉取NuttX应用源码 git clone https://github.com/apache/nuttx-apps.git apps三、配置 NuttX(Cortex-M55 + MPS3-AN547)
1. 加载官方默认配置
bash
运行
cd nuttx # 清理旧配置 make distclean # 加载MPS3 AN547(Cortex-M55)默认配置 ./tools/configure.sh mps3-an547:nshmps3-an547:QEMU 仿真的硬件平台nsh:NuttX 内置命令行终端(最基础可用配置)
2. (可选)图形化配置
如需开启外设、网络等功能:
bash
运行
make menuconfig3. 编译 NuttX 固件
bash
运行
make -j$(nproc)✅ 编译完成后,在nuttx/目录生成:
nuttx:ELF 格式固件(QEMU 直接加载)nuttx.bin:二进制固件
四、QEMU 仿真运行 Cortex-M55 + NuttX
1. 启动仿真命令
bash
运行
qemu-system-arm -cpu cortex-m55 \ -M mps3-an547 \ -nographic \ -kernel nuttx参数说明:
-cpu cortex-m55:指定仿真内核-M mps3-an547:指定硬件平台-nographic:无图形界面(纯串口)-kernel nuttx:加载 NuttX 固件
2. 进入 NuttX Shell
启动成功后,直接进入NSH 终端,输入命令测试:
nsh
nsh> help # 查看所有命令 nsh> ls # 查看文件系统 nsh> free # 查看内存 nsh> uname -a # 查看系统信息3. 退出 QEMU
bash
运行
Ctrl + A, 再按 X五、进阶:开启串口 / 调试 / 仿真优化
1. 重定向串口到终端(更稳定)
bash
运行
qemu-system-arm -cpu cortex-m55 -M mps3-an547 -kernel nuttx \ -serial stdio -nographic2. GDB 调试(开发必备)
终端 1:启动 QEMU 调试模式
bash
运行
qemu-system-arm -cpu cortex-m55 -M mps3-an547 -kernel nuttx \ -serial stdio -nographic -s -S-s:开启 GDB 服务(端口 1234)-S:启动后暂停 CPU,等待 GDB 连接
终端 2:启动 GDB 调试
bash
运行
arm-none-eabi-gdb nuttx # GDB内执行 (gdb) target remote localhost:1234 (gdb) continue六、常见问题排查
- QEMU 找不到 mps3-an547解决方案:升级 QEMU 到 7.0+
bash
运行
sudo apt upgrade qemu-system-arm - 交叉编译器找不到解决方案:重新加载环境变量
source ~/.bashrc - 编译报错解决方案:执行
make distclean重新配置编译
总结
- 核心硬件:QEMU
mps3-an547= Cortex-M55 仿真平台 - 系统:NuttX 官方原生适配,一键配置编译
- 命令速记:
- 配置:
./tools/configure.sh mps3-an547:nsh - 编译:
make -j - 仿真:
qemu-system-arm -cpu cortex-m55 -M mps3-an547 -kernel nuttx -nographic
- 配置:
整套流程无需任何硬件,纯软件即可完成 Cortex-M55 + NuttX 的开发调试。