Forum: Compiler & IDEs Optimierung OPT = 2


von Frank M. (frankswelt)


Lesenswert?

Hallo, nun hatte ich meine ersten Erfolge mit meinem Mega8, ein kleines 
Programm zur Tastenabfrage und Signalausgabe geschrieben und mich mit 
den Registern befasst. Nun wollte ich ein Delay einfügen, um ein LED 
Linken zu realisieren. Das klappte auch ganz gut in Form einer Schleife. 
Ich bekomme beim compilieren jedoch immer wieder die Warnung:

c:/programme/winavr/bin/../avr/include/util/delay.h:91:3: warning: 
#warning "Compiler optimizations disabled; functions from <util/delay.h> 
won't work as designed".

Ich hatte auch schon hier im Tutorial  über die Möglichkeit der 
Optimierung gelesen und das man diese einstellen kann. Leider habe ich 
keine Ahnung, wo ich die einstellen muss und wie das genau aussieht. Ich 
habs mit #define OPT = 2 probiert in der delay.h und auch in meinem C 
Programm, aber der Compiler hats nicht angenommen und verarbeitet.

von Rolf Magnus (Gast)


Lesenswert?

Optimierungen stellt man auch nicht im Header ein, sondern über die 
Compiler-Kommandozeile. Wenn du etwas benutzt, das dir das Makefile 
generiert, gibt es dort bestimmt eine Einstellung dafür. Ansonsten eben 
selbst im Makefile der Compiler-Kommandozeile z.B. ein -O3 hinzufügen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hmm, naja, Vorsicht.  -O3 kann ziemlich aufgeblähten (aber dafür
schnellen) Code erzeugen.  -Os ist meist ein besserer Startwert.

von Frank M. (frankswelt)


Lesenswert?

Dank für den Hinweis. Bei den vielen Parametern die winAVR beim 
compilieren übergeben werden durch AVR Studio, blickt man icht so 
einfach durch.

von Karl H. (kbuchegg)


Lesenswert?

Mit dem AVR Studio ist es aber auch besonders einfach
die Optimierung einzustellen.

Menüpunt:  Project / Configuration Options

Daraufhin öffnet sich ein Dialog.
Gleich auf der ersten Seite, im unteren Drittel findet sich
eine Combo-Box, in der man auswählen kann.

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.