Ich habe folgendes Problem: wenn ich eine Variable im EEPROM ablege (und brenne) zB. data: .db 0xab und diese dann beim EEPROM mapping auslese: lds r16,data bekomme ich leider Müll. Das liegt daran, dass die Startadresse des EEPROMS bei Null anfängt, das EEPROM wird jedoch bei XMEGA ab der Adresse 0x1000 abgebildet. Dem kann man leicht vorbeugen in dem man an die Adresse einfach 0x1000 addiert: lds r16,data+0x1000 liefert den richtigen Wert. Die Frage ist aber: lässt sich das im Atmel Studio irgendwo einstellen um nicht jedesmal +0x1000 dranhängen zu müssen? Vielen Dank im Voraus.
Kein Kenner der Materie hier der diese einfache Frage beantworten könnte? Das würde mich nämlich auch interessieren!
XDF schrieb: > wenn ich eine Variable im EEPROM ablege (und > brenne) zB. > data: .db 0xab Wenn ich mich recht erinnere, gibt es doch bei Assembler diese org-Direktive, d.h. vor data: .db 0xab müßte in diesem Falle so etwas stehen wie: .org 0x1000 (oder $1000, wie der Assembler es halt braucht) damit die Daten an die richtige Stelle im EEPROM geschrieben werden.
Auch in Assembler darf man Macros benutzen (.equ, #define). Z.B.:
1 | .equ blab = blub + 0x1000 |
2 | |
3 | #define blob(x) (x + 0x1000) |
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.