STM32 Eclipse+GCC Laufzeitunterschied Debug/Release

Gast #1957205
Lesenswert?
• ▲
▼
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.
Moderator Persönliche Seite #1957626
Lesenswert?
• ▲
▼
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.

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.