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
> ... die Reihenfolge der Elemente ist > dabei sehr wichtig, Dann bleibt dir nur eins: pack alles in eine einzige struct, ggf. diese auch noch in eine section für sich, der du dann mittels Linker-Optionen eine bestimmte Speicheradresse verpasst. Alles andere ist dem Compiler/Linker freigestellt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.