Forum: Mikrocontroller und Digitale Elektronik [AVR8] feste ROM-Adressen und lpm mit dem GNU Assembler


von Tristan Tzschichholz (Gast)


Lesenswert?

Hallo zusammen,

es gelingt mir gerade nicht, Z mit einer Flash-ROM-Adresse zu laden.
Nachdem meine bisherigen Versuche, Google zu fragen und das
AVR-GLIBC-Manual zu lesen, nicht weiter halfen, hoffe ich nun, dass
hier jemand damit Erfahrung hat. Im Prinzip ist es eine einfache
Syntaxfrage, oder gibt es beim GNU Assembler hierfür keine Lösung der
Art

Sprungmarke: .db 0x01, 0x02, 0x03

[...]

ldi ZL, low(Sprungmarke/Adresse)
ldi ZH, high(Sprungmarke/Adresse)
lpm

(Beim AVR ASM v2 von Atmel lief das wunderbar)

Ich habe die beiden Makros entsprechend durch (A & 0x00ff) bzw. (A >>
8) ersetzt und erhalte beim Versuch es zu assemblieren die
Fehlermeldung

"invalid sections for operation on `Sprungmarke' and `LO<nicht
druckbares Zeichen>'

wobei mir das LO vorkommt als die an der Adresse stehende Bytefolge
bzw. seiner Abbildung in den bei der Ausgabe verwendeten Zeichensatz.
Ich rate bzw. vermute, dass der Assembler nicht versteht, was ich von
ihm will...

Was mache ich falsch- oder: Wie lade ich ein Register mit einem aus der
Adresse einer Sprungmarke abgeleiteten Wert, sodass es der GNU AVR
Assembler versteht?

Hintergrund des Ganzen: Habe bisher nur mit dem AVR Assembler v2
gearbeitet und wollte meinen Code langsam mal in Libraryform bringen,
sodass man ihn elegant von C aus nutzen kann.


Ich bin dankbar für alle Hinweise...

Gruß

Tristan

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.