Hallo, ich benutze Eclipse mit AVR PlugIn und das aktuelle Win AVR um einen ATmega1284P zu programmieren. Ist es möglich, dem Compiler (oder Linker) mitzuteilen, eine globale Variable immer an die selbe Adresse zu legen? Der GHS Compiler für die V850er von NEC unterstützt dies zB über Pragmas. Hintergrund ist, dass eine Variable immer an einer festen Adresse zu finden ist um sie über ein Protokoll auszulesen oder zu verändern. Bei einer größeren Änderung am Projekt und neu-compilieren könnte es sonst sein, dass die Varibale ihre Adresse verändert bekommt. Viele Grüße, lex
lex schrieb: > Hintergrund ist, dass eine Variable immer an einer festen Adresse zu > finden ist um sie über ein Protokoll auszulesen oder zu verändern. und wozu braucht du dafür eine konstante Adresse? du musst das Protokoll ja auch in dem µC implementieren und dort kannnst du doch einfach diese Variabel oder die Adresse der Variable verwenden.
Die technische Antwort: Wie bei einem Register: Ein Zeiger auf eine Adresse setzen, und dann dereferenzieren. Die fachliche Antwort: Da schließe ich mich Peter II an. Die physikalische Adresse ist weder portabel, noch sollte sie Teil der öffentlichen Schnittstelle sein.
lex schrieb: > Ist es möglich, dem Compiler (oder Linker) mitzuteilen, eine globale > Variable immer an die selbe Adresse zu legen? Auch wenn ich die Fragestellung etwas merkwürdig finde und der Eindruck aufkommt, es könne die falsche Frage sein: Generell ist so etwas mit GCC möglich, indem man die Variable(n) in eine eigene Sektion legt und die im Linker-Script in einem bestimmten Speicherbereich platziert.
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.