Forum: Mikrocontroller und Digitale Elektronik Fehlersuche code-size mittels .map files


von Chandler B. (chandler)


Lesenswert?

Hallo,
ich habe eine Frage bzgl. Fehlersuche mit .map-Files.
Ich habe ein Projekt, welches ich in zwei verschiedenen Varianten bauen
kann.
Zwischen Varianten ändern sich dann auch die Source files.
Das habe ich "versucht" alles in der Makefile zu berücksichtigen.
An für sich funktioniert es auch (es compiliert durch).

Beim Linken gibt es dann aber ein Problem.
c:/gnu_tools_arm_embedded/6-2017-q1/bin/../lib/gcc/arm-none-eabi/6.3.1/. 
./../../../arm-none-eabi/bin/ld.exe: 
../../_build/gcc/Output/TI_2_nocrc.elf section `.bss_u' will not fit in 
region `m_data_u'
|| c:/gnu_tools_arm_embedded/6-2017-q1/bin/../lib/gcc/arm-none-eabi/6.3.1/. 
./../../../arm-none-eabi/bin/ld.exe:  section .hal_noinit VMA [20006d00,20006d63] 
overlaps section .bss_u VMA [20000000,20009f5f]
|| c:/gnu_tools_arm_embedded/6-2017-q1/bin/../lib/gcc/arm-none-eabi/6.3.1/. 
./../../../arm-none-eabi/bin/ld.exe:  region `m_data_u' overflowed by 13488 bytes
Wenn ich die .map-files vergleiche, sehe ich z.B. dass wenn ich die 1.
Version baue der Bereich .debug_info 337481 Bytes groß ist. Wenn ich die
2. Version baue, ist der Bereuch .debug_info 1208640 Bytes groß. Also
3,5 mal so groß.
Auch die anderen Bereiche sind viel größer.
Das es ein bisschen unterschied ist, ist mir bewusst. Werden ja auch
andere dateien angezogen. Aber so viel?

Wie kann ich jetzt herausfinden wo der Fehler liegt?
Was könnte generell das Problem sein? Werden dateien öfters gebaut?
Ich lasse mir die ganzen Objekte ausgeben und da sehe ich nicht, dass
einige doppelt drinn stehen.

: Bearbeitet durch User
von Lu (oszi45)


Lesenswert?

Chandler B. schrieb:
> Zwischen Varianten ändern sich dann auch die Source files.
> Das habe ich "versucht" alles in der Makefile zu berücksichtigen.
> An für sich funktioniert es auch (es compiliert durch).

Es wäre nicht der erste Compiler, der aus einer Mücke einen Elefanten 
macht. Wer andere Wege sucht, wird auch andere Antworten vom Compiler 
bekommen. Man könnte aber ein paar zusätzliche Prüfpunkte einbauen und 
anzeigen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.