Forum: Compiler & IDEs Speichermangel bei Mega16


von Neo (Gast)


Lesenswert?

Hallo,
habe fleißig meinen Mega16 programmiert, doch leider geht mir jetzt der 
Flash-Speicher aus. Das Hexfile hat schon 46KB und der Compiler der AVR 
Studios sagt das:

AVR Memory Usage
----------------
Device: atmega16

Program:   16388 bytes (100.0% Full)
(.text + .data + .bootloader)

Ich wollte eigentlich noch einiges erweitern. Bei der Programmierung 
habe ich mich schon bemüht möglichst wenig Speicher zu verprassen, also 
glaube ich nicht, dass da viel Einsparungspotential liegt.
Welche Optionen habe ich ? Derzeit benötige ich eigentlich nur Timer 1 
und Timer 0. 2 PWM- Kanäle und 7-AD Wandler. Kann ich einfach einen 
anderen Controller nehmen der mehr Speicher hat? Wenn ja welchen?

Danke

von Peter D. (peda)


Lesenswert?

Mega8535 -> Mega16 -> Mega32 -> Mega644

Alle pinkompatibel (DIP40).


Peter

von Neo (Gast)


Lesenswert?

Danke für die schnelle Antwort.

von Ulrich (Gast)


Lesenswert?

Ich weiß ja nicht wie gut du dich auskennst, aber die 388bytes könnte 
man noch optimieren...

Hast du den Optimierer im Compiler aktiviert?
Hast du viele Berechnungen nicht über Funktionen gemacht?
Hast du große Dinge like printf usw. dazugelinkt obwohl du garnicht den 
kompletten Umfang davon benötigst usw.

Ich weiß ja nicht ob du den Code hochladen willst/kannst/darfst usw. 
Aber ich bin überzeugt das man da nocht was machen kann...

von Karl H. (kbuchegg)


Lesenswert?

> habe ich mich schon bemüht möglichst wenig Speicher zu verprassen,
> also glaube ich nicht, dass da viel Einsparungspotential liegt.

Zeig doch mal. Da lässt sich unter Umständen noch einiges
finden. Wenn du keine grossen Tabellen im Flash hast, sind
16Kb schon eine Menge Holz.

von Tim S. (suxx)


Lesenswert?

wenn du auf floatpointer und die dazu gehörigen funktionen verzichten 
kannst würde ich das machen, denn die machen bei mir ca 3kb aus.

mfg

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.