1

Я уже некоторое время занимаюсь разработкой систем 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 ответ1

0

Я смог найти (как-то) решение этой проблемы. При компиляции я использую флаг -g3 для целей отладки. использование его с GCC 6.3, похоже, не увеличило размер моего файла (.elf). Теперь с 8.2 разница в размерах была ОГРОМНОЙ, что приводило к перекрытию памяти. Поскольку я не принимал во внимание, что это могло произойти, при загрузке файлов elf в QeMU я не резервировал достаточно места в памяти. Я буду более глубоко исследовать причину такой большой разницы в созданной отладочной информации и обновлять этот пост, но если кто-то с такой же проблемой окажется здесь, пожалуйста, рассмотрите такую ситуацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .