为 QEMU 模拟二进制代码

emulate binary code for QEMU

我会为 arm 目标交叉编译 helloworld.c 并在 qemu 上交叉编译 运行 但是当我 运行 这个命令时我总是有同样的错误:

qemu-system-arm -M vexpess-a9 -kernel test

qemu-system-arm: -kernel test: unsupported machine type

感谢您的帮助和建议

事实上我需要link地址0x0010000的软件才能在主机上执行来宾代码,因为QEMU模拟器是专门为模拟Linux来宾系统而编写的;出于这个原因,它的启动过程是专门实现的:-kernel 选项在系统内存中从地址 0x00010000 开始加载一个二进制文件(通常是 Linux 内核)。模拟器从地址 0x00000000 开始执行,因此我们需要将二进制文件放在正确的地址

我遵循这个 tutorial 它对我有用