Reihenfolge von Konstanten abhängig von Optimierungsstufe

OP #368239
Lesenswert?
• ▲
▼
Hallo,

ich verwende in einem AVR-Programm einen Versionsblock, den ich wie im
Anhang angegeben formuliert habe; die Reihenfolge der Elemente ist
dabei sehr wichtig, da diese Daten von anderen Programmen aus dem Flash
bzw. aus dem Hex-Code ausgelesen werden.

Ich habe nun festgestellt, daß der GCC-Compiler (aus WinAVR-20060421)
abhängig von der Optimierungsstufe die einzelnen Elemente (Konstanten)
u.U. in umgekehrter Reihenfolge in das Intel-Hex-File ausgibt, nämlich
bei -O2, -O3 und -Os; da beginnt der Code dann mit VDay, und endet mit
VBlockId; bei -O0 und -O1 ist es genau umgekehrt (und so, wie es sein
soll bzw. muß).

Hat jemand einen Hinweis für mich, warum die Optimierung diese
Reihenfolge umdreht und wie man das auch bei -Os unterbinden kann?

Danke.

Günter
Angehängte Dateien:

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