首页 文章

运行我的启动时qemu错误

提问于
浏览
0

我写了一个简短的启动代码并试图用Qemu运行它:

qemu-system-arm.exe -M versatilepb -cpu cortex-a9 -kernel boot.bin

我希望代码加载到地址0x8400000,但qemu返回错误

尝试在0x84000000处执行RAM或ROM外部的代码这通常意味着发生以下情况之一:(1)您告诉QEMU为错误的机器类型执行内核,并且在启动时崩溃(例如,尝试运行raspberry pi内核)在versatilepb QEMU机器上)(2)你没有给QEMU一个内核或BIOS文件名,QEMU执行了一个充满无操作指令的ROM,直到它结束(3)你的客户内核有bug和跳到无处崩溃这几乎总是前两个中的一个,所以检查你的命令行,你正在为这台机器使用正确类型的内核 . 如果您认为可能有选项(3),那么您可以尝试使用-d调试选项调试guest虚拟机;特别是-d guest_errors将导致日志包含此时guest虚拟机注册状态的转储 . 执行无法继续;在这里停下来

所以我想我的代码还没有开始运行,因为它没有加载到正确的位置

我错了什么?

谢谢

1 回答

  • 0

    你说“我希望代码加载到地址0x8400000”,但QEMU的错误信息显示“0x84000000”,这是不一样的数字(它有一个额外的0) . 这表明您的链接描述文件或创建boot.bin文件的任何内容都有拼写错误 . (我假设boot.bin是一个ELF文件,QEMU加载到ELF文件指定的地址,因为否则它将被加载到RAM中,假设它是一个能够自行重定位的Linux内核映像 . )

相关问题