Hi Leute, Um mein LCD-Display zu testen möchte ich den Code von dieser Seite benutzen: http://www.mikrocontroller.net/articles/Erweiterte_LCD-Ansteuerung Doch bei Compilieren kommt die Fehlermeldung, dass der Flash voll ist. Ich beutze aber den Atmega8515, auf dem das Programm laut Seite getestet wurde. Könnt ihr mir helfen, und was braucht denn da am meisten Speicher? danke schon mal
> was braucht denn da am meisten Speicher?
Nicht das was auf der verlinkten Seite beschrieben ist, das compiliert
bei mir auf gerade mal gut 600 Bytes. Zeigt mal ∗alles∗ her.
Hab einfach ein neues Projekt gemacht und die 4 Dateien hinzu gefügt. Siehe Anhang
..habs mal eben durchcompiliert:
1 | $ for f in *c ; do avr-gcc -Wall -mmcu=atmega8515 -DF_CPU=1000000UL -Os -c -o ${f%c}o $f ; done |
2 | main.c: In function ‘main’: |
3 | main.c:407: warning: control reaches end of non-void function |
4 | $ avr-size *o |
5 | text data bss dec hex filename |
6 | 388 0 0 388 184 lcd.o |
7 | 2346 27 0 2373 945 main.o |
..da kommts also nicht her. Nach dem zusammenlinken kommt man auf gut 4k:
1 | $ avr-size *elf |
2 | text data bss dec hex filename |
3 | 4414 28 32 4474 117a main.elf |
Ah, hast du die Optimierungen ∗aus∗geschaltet? Dann passts (latürnich) nicht in die 8k. HTH
Sorry dass ich Frag, aber wie mach ich denn die Optimierung und wo im Programm schreib ich das rein?
> -Os an?
Nein aus höchstwahrscheinlich - Ich vermute mal gaanz stark dass er die
Optimierungen ausgeschaltet hat. Das ist die einzige Variante bei ders
zu groß wird:
1 | $ rm *o ; for opt in 0 1 2 3 s ; do for f in *c ; do avr-gcc -Wall -mmcu=atmega8515 -DF_CPU=1000000UL -O$opt -c -o ${f%.c}-${opt}.o $f >/dev/null 2>&1 ; done ; done ; avr-size *o |
2 | text data bss dec hex filename |
3 | 3856 0 0 3856 f10 lcd-0.o |
4 | 436 0 0 436 1b4 lcd-1.o |
5 | 400 0 0 400 190 lcd-2.o |
6 | 2000 0 0 2000 7d0 lcd-3.o |
7 | 388 0 0 388 184 lcd-s.o |
8 | 9260 27 0 9287 2447 main-0.o |
9 | 2498 27 0 2525 9dd main-1.o |
10 | 2338 27 0 2365 93d main-2.o |
11 | 3840 27 0 3867 f1b main-3.o |
12 | 2346 27 0 2373 945 main-s.o |
> aber wie mach ich denn die Optimierung und wo im Programm schreib ich > das rein? Ins Programm (erst mal) gar nicht. Irgendwo(tm) in Deiner IDE. Möglicherweise langst schon wenn Du auf 'release'-Modus umschaltest, sonst die Projekteinstellungen durchforsten.
Hab ne weile gebraucht um auf Release umzuschalten. Aber jetzt funktionierts :) Vielen Dank Echt super wie schnell hier einem geholfen wird
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.