xmega lesen von flash Variablen in der bootloader Section

Gast #2025429
Lesenswert?

Hallo,
ich schreibe gerade einen Bootloader für einen xmega128A1. Die 
Kommunikation läuft über ein eigenes Protokoll, das eine crc16 
Berechnung beinhaltet. Für die Berechnung habe ich eine crc Tabelle im 
Programmspeicher abgelegt.
Der Bootloader liegt an der Adresse 0x20000.
1
pointer = &Crc16Tab[0];
2
//pointer += 0x020000; //damit geht es
3
tabval = pgm_read_word_far(pointer);

Die Tabelle liegt an der byte Adresse 0x201F9. Mit der oben 
geschriebenen Variante gibt mir der pointer aber 0x001F9 aus.
Der Zugriff funktioniert also nur wenn ich den bootloader offset von 
0x20000 dazu addiere. Warum, was mach ich falsch?

Danke Gruß

Basti

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren