Forum: HF, Funk und Felder MyAVR: Fragen zur Code-Optimierung und Programmer


von Marcel (Gast)


Angehängte Dateien:

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

von Andreas K. (a-k)


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.

von Marcel (Gast)


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

von Andreas K. (a-k)


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.

von Marcel (Gast)


Lesenswert?

Und was ist der Programmer-Typ?

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.