Разрыв QeMU после обновления GCC

Я уже некоторое время занимаюсь разработкой систем 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 я не резервировал достаточно места в памяти. Я буду более глубоко исследовать причину такой большой разницы в отладочной информации, созданной и обновлю этот пост, но если кто-то с такой же проблемой окажется здесь, пожалуйста, рассмотрите такую ​​ситуацию.

Другие вопросы по тегам