mikrocontroller.net

Forum: Compiler & IDEs Sourcecode zu groß?


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich programmiere einen AtMega88. Nun kommt beim Compilieren folgende
Meldung:

> "make.exe" all
avr-gcc -g -Wall -O0 -mmcu=atmega88    -c -o master.o master.c
avr-gcc -g -Wall -O0 -mmcu=atmega88  -Wl,-Map,master.c.map -o
master.c.elf master.o
C:\WinAVR\bin\..\lib\gcc\avr\3.4.3\..\..\..\..\avr\bin\ld.exe:
region text is full (master.c.elf section .text)
make.exe: *** [master.c.elf] Error 1

Bedeutet diese, daß der Sourcecode zu groß ist? Wenn ich ein paar
Sachen im Quellcode weg lasse, dann geht es (dann hat das erzeugte
HEX-File 23.025 Bytes).
Wie kann man sehen, wie viel Speicher für den Prozessor noch frei ist?

Martin

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit avr-size

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-size.exe hab ich gefunden. Wenn ich diese doppelklicke geht kurz ein
Fenster auf und wieder zu. Scheint ein DOS-Programm zu sein.

Was muß ich machen, um die Größe anzuzeigen?


Hab nun mal die erzeugte BIN-Datei angeschaut. Wenn das compilieren
klappt ist die größe 7.740 Bytes. Der Speicher des AtMega88 hat ein
8k-Flash. Ich denke es liegt daran.... Shit happens...

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage:

Ich hatte im Makefile Optimize auf "-00" eingestelt, da der Compiler
sonst Debugvariablen entfernt. Mit der folgenden Einstellung läßt sich
das Projekt compilieren:

OPTIMIZE       = -O2

Die Binärdatei hat dann 4.680 Bytes. Wo finde ich eine Info, welche
Werte ich bei "Optimize" eintragen kann und welche Auswirkung diese
hat?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der avr-libc Doku und im GCC-Manual.

Kurzfassung: -Os ist meistens die sinnvollste Wahl.

Gewöhn' dich einfach dran, den optimierten Code zu debuggen.  Der
Compiler braucht halt nicht für alles, was du als variablenwürdig
ansiehst, selbst auch eine Variable.

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.