Forum: Mikrocontroller und Digitale Elektronik Erweiterte LCD-Ansteuerung Code zu groß!!


von AVR-Neuling (Gast)


Lesenswert?

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

von g457 (Gast)


Lesenswert?

> 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.

von AVR-Neuling (Gast)


Angehängte Dateien:

Lesenswert?

Hab einfach ein neues Projekt gemacht und die 4 Dateien hinzu gefügt.

Siehe Anhang

von g457 (Gast)


Lesenswert?

..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

von Klaus W. (mfgkw)


Lesenswert?

-Os an?

von AVR-Neuling (Gast)


Lesenswert?

Sorry dass ich Frag, aber wie mach ich denn die Optimierung und wo im 
Programm schreib ich das rein?

von g457 (Gast)


Lesenswert?

> -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

von g457 (Gast)


Lesenswert?

> 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.

von AVR-Neuling (Gast)


Lesenswert?

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