Forum: Mikrocontroller und Digitale Elektronik XMEGA, Atmel Studio, EEPROM mapping in SRAM


von XDF (Gast)


Lesenswert?

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.

von Rudi (Gast)


Lesenswert?

Kein Kenner der Materie hier der diese einfache Frage beantworten 
könnte? Das würde mich nämlich auch interessieren!

von mikro (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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
Noch kein Account? Hier anmelden.