GCC 升级后 QeMU 崩溃

GCC 升级后 QeMU 崩溃

我已经为 PowerPC 系统进行开发有一段时间了,直到最近一直依赖 GCC 6.3,没有任何问题。

目前,由于各种原因,我不得不从 GCC 6.3 切换到 GCC 8.2

现在,我的系统在开发板 (MPC5777) 上运行良好,但当我使用 QeMU 时,它不再工作。我尝试过 QeMU 2.8、2.12 和 3.1,结果相同。所以问题不在于 QeMu(我认为)。

QEMU 2.8.50 monitor - type 'help' for more information
(qemu) rom: requested regions overlap (rom Executables/Partition2.elf. free=0x000000000049659c, addr=0x0000000000128000)
C:\Program Files\qemu\qemu-system-ppc.exe: rom check and register reset failed
make[1]: *** [makefileQeMU:89: run] Error 1

我四处寻找解决方案,但没有发现任何重要的东西。我读过一些关于链接器脚本是问题的文章,但似乎不对,因为地址应该是相同的,我唯一改变的是编译器版本。

答案1

我找到了(某种程度上)解决方案。编译时,我使用 -g3 标志进行调试。在 GCC 6.3 中使用它似乎并没有使我的文件 (.elf) 大小增加那么多。现在,在 8.2 中,大小差异非常大,导致内存重叠。由于我没有考虑到这种情况可能发生,因此在将 elf 文件加载到 QeMU 中时,我没有预留足够的内存空间。我将深入调查在创建的调试信息上存在如此大差异的原因并更新此帖子,但如果有人遇到同样的问题,请考虑这种情况。

相关内容