Verhalten bei unterschiedlichen Optimierungsstufen

Gast #1836983
Lesenswert?

Hallo zusammen.
Ich soll im Rahmen einer Projektarbeit eine Software in Betrieb nehmen, 
welche Daten mit einem SPI-Slave austauscht (und noch viele andere 
Sachen auch). Die SW ist also nicht von mir geschrieben und meiner 
Meinung nach sehr komplex.
Der Controller ist ein LPC und als Compiler nutze ich den von Keil 
(MDK-ARM). Das komische ist, dass die SW nur ordnungsgemäß läuft, wenn 
ich diese mit -O3 übersetze. Bei der Optimierungsstufe -O0 treten 
"komische Effekte" auf.
Ich weiß meine Beschreibung ist relativ dünn, aber ich wüßte gerne ob 
ihr vielleicht ein paar Tipps habt, wie ich den Fehler eingrenzen kann. 
Ich weiß im Moment gar nicht, welches Ende ich angreifen muss... :-(
Grundsätzlich müsste die SW doch auch mit -O0 laufen... Was ändert sich 
durch unterschiedliche Optimierungsstufen? (Zeitverhalten?, Codegröße?)
Ich habe auch erst seit kurzem mit Programmierung zu tun und dann gleich 
so was.

Vielen Dank.
Gast #1837364
Lesenswert?

Alex Dewor schrieb:
> Was ändert sich
> durch unterschiedliche Optimierungsstufen? (Zeitverhalten?, Codegröße?)

2x Ja.
Zum Beispiel bei den AVR ist es so, dass die Wartefunktionen nur korrekt 
arbeiten, wenn -Os eingestellt ist. -O0 bedeutet keine Optimierung. Der 
Compiler kann deinen Code nicht verbessern.

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