Forum: Mikrocontroller und Digitale Elektronik Speicherfresser Atmega


von Markus P. (sebastianwurst)


Lesenswert?

Hi,
wie kann ich rausbekommen was der größte Speicherfresser in meinem 
Programm ist?
Gibt es da einen eleganten Weg? Auskommentieren und kompilieren ist ein 
ziemlich bescheidener Weg....
Danke

von Schade (Gast)


Lesenswert?

Womit komplierst du? C, BASCOM, ASM, o.a.?

von Markus P. (sebastianwurst)


Lesenswert?

Ich programmier mit dem ProgrammersNotepad auf einem A644p und das in C

von Roland H. (batchman)


Lesenswert?

"avr-nm" ist Dein Freund und Helfer

von Markus P. (sebastianwurst)


Lesenswert?

Ok, wie muss ich den Anwenden daamit das funktioniert. Muss ich das im 
Makefile eingeben ?!?!

von Tröte (Gast)


Lesenswert?

z.B.

avr-nm --size-sort -S meinkompilat.elf

außerdem ist

avr-nm --help

Dein Freund ;-)

von Daniel -. (root)


Lesenswert?

Markus P. schrieb:
> Speicherfresser

RAM, FLASH, EERPROM?

RAM, EEPROM - Arrays, große Strukturen
FLASH - kein Floating point Berechnungen, kein delay(var) sondern 
delay(const), ansonsten wirst du nicht so schnell es schaffen 8kB
mit dem eigenen Code vollzukriegen. (-Os Option beim Compiler 
verwenden!)

Gruß

von H.Joachim S. (crazyhorse)


Lesenswert?

(s)printf () ist auch nicht ohne....

von Markus P. (sebastianwurst)


Lesenswert?

Bin grad bei 62kb und mein a644p kann nur 64kb

von Uwe (de0508)


Lesenswert?

Hallo Markus,

wie sieht den dein Makefile und die optimierungs Optionen aus ?

CFLAGS += ...

_

von holger (Gast)


Lesenswert?

>Bin grad bei 62kb und mein a644p kann nur 64kb

Wenn deine HEX Datei 62kB gross ist, dann hast du noch
gut 40kB Platz im ATMega;)

von Markus P. (sebastianwurst)


Lesenswert?

Beitrag "Speicheranzeige im ProgrammersNotepad"

Makefile habe ich hier schonmal durchgesprochen...

von Uwe (de0508)


Lesenswert?

Hallo Markus,

ja richtig, ich hatte nicht auf den Namen geschaut.

Mehr ist dann auch nicht mit automatischen Optimierungen machbar.

Evtl. spielt man mal mit dem avr gcc 4.7.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Uwe S. schrieb:

> Evtl. spielt man mal mit dem avr gcc 4.7.

Gegen suboptimalen Programmierstil oder Verschalterung ist der aber auch 
machtlos ;-)

von g457 (Gast)


Lesenswert?

> Mehr ist dann auch nicht mit automatischen Optimierungen machbar.

Aber wahrscheinlich mit manueller. Zeig doch mal den (vollständigen!) 
Quellcode.

von Pink S. (pinkshell)


Lesenswert?

g457 schrieb:
> vollständigen!

Bist du sicher, dass du zigtausend Zeilen Code angucken möchtest?
Eine Liste der Includes wäre auch aufschlussreich.

von holger (Gast)


Lesenswert?

>Das ist das AVR NET IO mit Ulrich Radigs Software und Peter Danniger
>SW....

Ach darum geht es. Ich tippe mal auf megagrosse Arrays
in der Webpage.h. Debug Messages abschalten könnte noch ein
bisschen was bringen.

von g457 (Gast)


Lesenswert?

> Bist du sicher, dass du zigtausend Zeilen Code angucken möchtest?

Bin ich sich dass ich das nicht will - hab ich auch nicht geschrieben. 
Aber man kann dann mal selber compilieren und kucken wo die Brocken 
herkommen.

von Mazze (Gast)


Lesenswert?

alternativ auf ATmega644(p) oder ATmega1284(z.B. pollin) upgraden.

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.