Forum: Compiler & IDEs mit Optimierung geht nichts mehr :o((


von Lothar (Gast)


Lesenswert?

Hallo,

kann ich die Kompileroptimierung auch in die Quelle kriegen. Wenn im 
Make irgendeine Optmierung eingeschaltet ist, wird mein main() 
wegoptimiert. Wahrscheinlich, weil der Hauptjob im Int läuft und im Main 
nur Variabelen abgefragt werden, die im Int gesetzt werden.

Grüßle
Lothar

von A.K. (Gast)


Lesenswert?

Variablen, die sowohl innerhalb als auch ausserhalb von Interrupts 
verwendet werden, müssen als "volatile" deklariert werden. Dann 
verschwindet auch main() nicht mehr.

Ansonsten beachte 
http://www.mikrocontroller.net/articles/Interrupt#Interrupt-feste_Programmierung

von Lothar (Gast)


Lesenswert?

Ich habe die Variablen zwar außerhalb des Interrupts deklariert, aber 
eben nur Standard uint..., erst als nichts mehr lief habe ich mir das 
LST-File angesehen. Ohne Optimierung hat es dann geklappt. Danke für die 
schnelle Antwort.
Gruß Lothar

von Lothar (Gast)


Lesenswert?

funktioniert und das *.HEX wird wieder 25% kleiner.

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
Noch kein Account? Hier anmelden.