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.
Alex Dewor schrieb: > Was ändert sich > durch unterschiedliche Optimierungsstufen? (Zeitverhalten?, Codegröße?) Der Compiler "denkt" je nach gewählter Optimierungsstufen mehr oder weniger über Dein Programm nach und lässt vermeintlich überflüssige (für ihn offensichlich überflüssige) Programmteile wie z.B. Warteschleifen weg. Axel
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.