Łamanie QeMU po aktualizacji GCC


1

Od jakiegoś czasu pracuję nad systemami PowerPC, a do niedawna bez problemu korzystałem z GCC 6.3.

Obecnie z różnych powodów musiałem przejść z GCC 6.3 na GCC 8.2

Teraz mój system działa dobrze dla płyty programistycznej (MPC5777), ale kiedy używam QeMU, to już nie działa. Próbowałem z QeMU 2.8, 2.12 i 3.1, z tym samym rezultatem. więc problem nie dotyczy QeMu (tak myślę).

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

Rozejrzałem się za rozwiązaniem, ale nie znalazłem nic znaczącego. Przeczytałem już kilka rzeczy mówiących o tym, że skrypt linkera jest problemem, ale wydaje się, że to nie jest poprawne, ponieważ adresy powinny być takie same, a jedyną rzeczą, którą zmieniłem, jest wersja kompilatora.

Odpowiedzi:


0

Byłem w stanie znaleźć (jakoś) rozwiązanie tego. Podczas kompilacji używam flagi -g3 do celów debugowania. używanie go z GCC 6.3 nie wydawało się zbytnio zwiększać rozmiaru mojego pliku (.elf). Teraz, przy 8.2, różnica wielkości była OGROMNA, co prowadzi do nakładania się pamięci. Ponieważ nie brałem pod uwagę, że może się to zdarzyć, podczas ładowania plików elfów do QeMU nie rezerwowałem wystarczającej ilości pamięci. Zbadam dokładniej przyczynę tak dużej różnicy w utworzonych informacjach do debugowania i zaktualizuję ten post, ale jeśli ktoś z tym samym problemem znajdzie się tutaj, proszę rozważyć taką sytuację.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.