Probleme mit Optimierung bei CCE für MSP430

Gast #1025830
Lesenswert?

Hallo,
kennt sich jemand mit den optimization Einstellungen in CCE aus?
Ich habe das Problem, dass mein Programm für einen MSP430f2272 mit level 
0 und 1 problemlos läuft, sich aber bei level 2 irgendwo aufhängt (lässt 
sich nicht durch debuggen finden).
Gibt es irgendwo eine Übersicht über die unterschiedlichen Level und was 
jeweil genau optimiert wird?
Gast #1026202
Lesenswert?

Hallo,
danke schon mal für die Antworten.
Ich habe jetzt mal wild mit volatile um mich geworfen und siehe da, das 
Programm funktioniert auch bei Stufe 2.

Nun noch eine Frage: In welchen Fällen ist volatile wirklich 
erforderlich bzw. an welchen Stellen sollte es nicht eingesetzt werden??
Gast #1026217
Lesenswert?

Mit volatile sollte sparsam umgegangen werden, da der Optimizer sonst 
seine Arbeit nicht richtig tun kann.
Volatile ist nötig wenn ein Register z.B. von einem Peripherieteil im uC 
wie Timer oder physikalische Eingänge verändert werden.
Auch globale Variablen die in Interrupts verändert werden, sollten mit 
volatile gekennzeichnet sein.
Das sind so die wichtigesten Dinge.
Gast #1026310
Lesenswert?

>Volatile ist nötig wenn ein Register z.B. von einem Peripherieteil im uC
>wie Timer oder physikalische Eingänge verändert werden.

D.h. ich muss, wenn ich z.B. den AD-Wandler im Verlauf des Programms 
mehrmals abfrage, die entsprechende Variable als volatile definieren, da 
er ansonsten Änderungen nicht berücksichtigt? Das kann ja eigentlich 
nicht sein.
Oder trifft das nur auf per Interrupt veränderbare Variablen zu?

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