Eigentlich sollten doch beide Versionen laufzeitmäßig gleich sein, oder irre ich mich da? Die Release-Version läuft viel zu schnell, die Debug zeitlich richtig. Die Projekt-Einstellungen sind Defautwerte. Woran kann das liegen? Version: IDE and Toolchain: * Based on Eclipse version 3.5.2 (Galileo) and CDT version 6.0.2. * Atollic ARMTools Lite, Build 10.1 - built with GCC version 4.4.1 GDB version 7.1 Newlib version 1.17.0 Testweise mit Keil probiert. Dort laufen Release und Debug korrekt.
Wird das Programm absichtlich durch leere Schleifen verlangsamt? Wenn ja: testweise Schleifenzähler mit volatile qualifier versehen.
1 | void warten(void) { volatile int i; for(i = 0; i < PIMALKOBOLD; i++) { } } |
Ist mir schon einige Male aufgefallen, dass Code für Realview Schleifen (delay-loops) ohne irgendwelche Vorkehrungen gegen 'wegoptimieren' enthält. Diese werden von ARMs Compiler scheinbar nicht bei Optimierung verworfen. GNU-Compiler verwirft bei eingeschalteter Optimierung schon. Ansonsten: die Compileroptionen angeben, die bei "debug" bzw. "release" an den GNU Compiler übergeben werden, hilft evtl. das Problem weiter einzukreisen.
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.