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