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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.