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
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...
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.