MyAVR: Fragen zur Code-Optimierung und Programmer

Gast #821704
Lesenswert?

Hallo Leuts

Ich bin Anfänger und habe gerade mein erstes funktionsfähiges Programm 
fertiggestellt(im Anhang).
Ich benutze die Software MyAVR-Plus und das MyAVR-Bord mit USB und 
LCD-Modul. Doch wenn ich das oben genannte Programm brennen will, werden 
5.5 KBytes geschrieben. Da ich dies für ein bisschen viel hielt, wollte 
ich die Optimierung ändern doch ich habe keine entsprechende Option 
gefunden. Weis jemand wo ich so eine Option finden kann oder sind 5.5 
KBytes normal?
Meine 2. Frage wäre: Was ist der Programmer-Typ? Standartmässig ist 
"sp12" eingestellt.

Danke für eure Hilfe
Angehängte Dateien:
#821714
Lesenswert?

Hat nichts mit Optimierung zu tun, aber die wait-Routinen würde ich mal 
überdenken. Ich glaub nicht, das dabei das erwünschte rauskommt (=>";").

Dafür aber sorgen die delay-Routinen der avr-libc für unerwünschte und 
platzraubende Fliesskommaroutinen, wenn man den Compiler ohne 
Optimierung darauf loslässt.
Gast #821725
Lesenswert?

Die Wait-Routinen habe nicht ich Programmiert. Die ist vom Code-Wizard 
vom MyAVR-Bord und wird für die LCD-Routinen verwendet.

Du hast Recht. Die delay-Routine braucht ca. 1.5 KBytes. Aber wie bringe 
ich menen Compiler zum optimieren?.
#821736
Lesenswert?

Marcel wrote:

> Die Wait-Routinen habe nicht ich Programmiert. Die ist vom Code-Wizard
> vom MyAVR-Bord und wird für die LCD-Routinen verwendet.

Das macht es auch nicht besser. Das ";" hinter dem for() ist zuviel und 
sorgt für komplette Wirkungslosigkeit der Schleife: wait_ms wartet 
unabhängig vom Parameter nur 1ms, ähnlich wait_us. Und so funktioniert 
lcd_send nur deshalb, weil nicht die üblichen 60µs sondern aus purer 
Verzweiflung gleich 1ms gewartet wird.

Wenn der Rest vom Code-Wizard ähnlich programmiert ist, dann viel Spass.

> Du hast Recht. Die delay-Routine braucht ca. 1.5 KBytes. Aber wie bringe
> ich menen Compiler zum optimieren?.

Seitens gcc die Option -Os. Wie du ihn das beibringst weiss ich mangels 
MyAVR-Plus nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren