www.mikrocontroller.net

Forum: Compiler & IDEs Speichermangel bei Mega16


Autor: Neo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mega8535 -> Mega16 -> Mega32 -> Mega644

Alle pinkompatibel (DIP40).


Peter

Autor: Neo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim S. (suxx)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.