Forum: Compiler & IDEs hoher Flash Speicherverbrauch


von Masl (Gast)


Lesenswert?

Hallo,

ich habe bisher immer das AVR Eclipse PlugIn benutzt.
Jetzt wollte ich tiefer einsteigen und mal was mit Makefiles 
ausprobieren.

Ich benutze 1:1 dieses Makefile: 
http://www.mikrocontroller.net/articles/Beispiel_Makefile#Beispiel_1
Lediglich meine eigenen c Files und include dirs hab ich hinzugefügt.

Nachn Kompilieren erhalte ich folgende Ausgabe:
1
Size after:
2
main.elf  :
3
section     size      addr
4
.data         92   8388864
5
.text       4388         0
6
.bss         161   8388956
7
.stab      24696         0
8
.stabstr   15987         0
9
Total      45324

Der Wert von .text ist realistisch. Das hatte ich vorher auch.

Aber wieso hab ich so nen hohen Speicherverbrauch in .stab und .stabstr? 
Was machen diese Sektionen überhaupt?

Mein .elf File was erzeugt wird ist 51Kib groß.

Benutze übrigens den ATmega1284P.

von Klaus W. (mfgkw)


Lesenswert?

Masl schrieb:
> Aber wieso hab ich so nen hohen Speicherverbrauch in .stab und .stabstr?
> Was machen diese Sektionen überhaupt?

Die sind nur zum Debuggen.
Auf dem nackten Atmel können die weg.

von Klaus W. (mfgkw)


Lesenswert?

Daß die überhaupt auftauchen, liegt in deinem Makefile an der Zeile:
>   CFLAGS = -g$(DEBUG)
(in Kombination natürlich damit, was für DEBUG definiert ist)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Masl schrieb:

> Ich benutze 1:1 dieses Makefile:

Das Makefile spielt keine Banane, was zählt ist dein Code.

> Der Wert von .text ist realistisch. Das hatte ich vorher auch.
>
> Aber wieso hab ich so nen hohen Speicherverbrauch in .stab und .stabstr?

Weil die Debug-Info erzeugst?

> Was machen diese Sektionen überhaupt?

Sie enthalten Debug-Info im veralteten STAB-Format.

> Mein .elf File was erzeugt wird ist 51Kib groß.

Du lädsts nicht das elf auf deinen µC.  Und selbst mit einem Loader, der 
elf versteht, landen die Debug-Infos nicht auf dem Silizium.

Wenn du sehen willst, was auf dem Chip landet, dann ist avr-size dein 
Freund.

http://www.rn-wissen.de/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc

von Masl (Gast)


Lesenswert?

Erstmal danke dir,

is ja gut wenn die nicht benötigt werden aufn uC.

Aber wie gesagt, meine .elf ist ja auch 51Kib groß, und die wird ja beim 
Flashen übertragen...

von Klaus W. (mfgkw)


Lesenswert?

Masl schrieb:
> Aber wie gesagt, meine .elf ist ja auch 51Kib groß, und die wird ja beim
> Flashen übertragen...

nein, keine Angst - alles wird gut.

von Klaus W. (mfgkw)


Lesenswert?

Johann L. schrieb:
> Das Makefile spielt keine Banane, was zählt ist dein Code.

Johann L. schrieb:
> Weil die Debug-Info erzeugst?

naja, dafür ist das Makefile verantwortlich :-)

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.