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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.