Forum: Mikrocontroller und Digitale Elektronik Compiler - Optimierungsflags


von Michael K. (mmike)


Lesenswert?

Hallo Leute,

Umgebung:

WinAVR 4.12 SP4 (498)
AVRgcc 20060421
STK500

Mein Problem ist folgendes: Wenn ich die Codeoptimierung in den 
Projekteigenschaften von -O0 auf einen der anderen Werte (-O1 -> -Os) 
setzte,  dann funktioniert meine Uart Verbindung nicht mehr. Wird mit 
der Einstellung -O0 compiliert läuft alles wunderbar.

Hat jemand eine Idee ??

Grüße,
Michael

von Benedikt K. (benedikt)


Lesenswert?

Du hast irgendwo einen Fehler in der Software, oder ein Timingproblem.

von Michael K. (mmike)


Lesenswert?

Die Software funktioniert eigentlich schon, aber eben nur wenn ich die 
Optimierung ausschalte. Wie kann ich rausfinden ob es sich um ein Timing 
Problem handelt und wie lokalisiere ich es ?

von Stefan (Gast)


Lesenswert?

Schau dir das ASM Listing an, ob das dem erwarteten C Code entspricht.

Alternativ zeige den C-Code und lasse Forenteilnehmer einen Blick drauf 
werfen.

Beim neueren GCC 4.1.1 ist ein typ. Beispiel für "unerwartete" Effekte, 
dass dort aus GCC Sicht unnütze Schleifen wegopimiert werden

{
   int i;
   for(i=0;i<1000;i++);
}

als Primitiv-Warteschleife streicht der 4.1.1 GCC bei eingeschalteter 
Optimierung zusammen zu

{
}

von Michael K. (mmike)


Lesenswert?

@Benedikt: Das war's ! Besten Dank !

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.