mikrocontroller.net

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


Autor: Marcel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was ist der Programmer-Typ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.