安装和常用命令# 安装sudoaptinstallqemu-system-arm qemu-utils# 帮助信息qemu-system-arm--help# 支持的机器qemu-system-arm-machinehelp# 支持的cpuqemu-system-arm-cpuhelp# 指定内存启动qemu-system-arm-Mvirt-m512M-kernelnuttx-nographic# 开启gdb调试# -s 监听 1234 端口# -S 启动时暂停等 GDB 连接qemu-system-arm-Mvirt-kernelnuttx-nographic-s-S退出CtrlA X quit# 强制杀死所有 QEMU 进程卡死时用pkillqemu-system-arm三个常用机器# 通用虚拟 ARM 板跑 NuttX / Linux / RTOS 最快最方便-Mvirt# 跑 STM32 裸机 / 单片机程序-Mstm32vldiscovery# 跑 Zynq Cortex-A9 Linux / 裸机 / FreeRTOS-Mxilinx-zynq-a9qemu-utils工具(非必须)工具作用qemu-img最核心磁盘镜像创建/转换/压缩qemu-nbd把镜像挂载成块设备qemu-io直接对镜像做 IO 测试qemu-storage-daemon存储后端服务高级gdb 调试安装sudoaptupdatesudoaptinstallgdb-multiarch启动板子qemu-system-arm\-Mvirt\-m512M\-nographic\-kernelnuttx\-s-S新建窗口启动gdbgdb-multiarch nuttx# 输入setarchitecture arm target remote localhost:1234continue# 打断点b hello_main.c:12# 断点信息infobreak#清楚断点clearhello_main.c:12# 局部变量列表info locals# 全局变量列表info variables## 变量过滤info variables run# 看变量p run# 看线程info threads例子运行 nuttx是 ARMv7/ARMv8 通用虚拟平台# 启动qemu-system-arm\-Mvirt\-m512M\-nographic\-kernelnuttx# 调试qemu-system-arm\-Mvirt\-m512M\-nographic\-kernelnuttx\-s-S运行zynq linuxqemu-system-arm-Mxilinx-zynq-a9-m1024M-kernelzImage-dtbsystem.dtb-initrdrootfs.cpio.gz-serialmon:stdio-displaynone运行zynq 裸机# 运行qemu-system-arm\-Mxilinx-zynq-a9\-m512M\-kernelzynq_helloworld.elf\-nographic\-serialmon:stdio# 调试qemu-system-arm\-Mxilinx-zynq-a9\-m512M\-kernelzynq_helloworld.elf\-nographic\-serialmon:stdio\-s-Spetalinux-boot --qemu等效于下面命令,无法跑裸机qemu-system-arm-Mxilinx-zynq-a9\-kernelimages/linux/zImage\-dtbimages/linux/system.dtb\-initrdimages/linux/rootfs.cpio.gz\-serialmon:stdio-displaynone