ATmega2560: Wie Daten oberhalb 64k plazieren?

Gast #3320469
Hallo Forum,

ich weiss, Daten sollen unterhalb 64k liegen, weil die *_P Funktionen 
nur mit diesen arbeiten können.
Ich habe auch davon gehört wie man auf Daten oberhalb 64k zugreift 
(*_far).

Jetzt kommt mein Problem:

ich mache regen Gebrauch von *_P Funktionen, bisher war das alles ok, 
weil meine Daten dafür locker in den unteren 64k Platz hatten.

Jetzt muss ich ein 40kB großes Firmware File im Flash unterbringen (für 
ein grafisches Display), natürlich geteilt in kleinere Teile, sonst 
würde ich "array too big" bekommen, was an sich immer noch kein Problem 
ist.
Diese Daten will ich dann mit einem Loader ins Display pumpen.

Aber, diese zusätzliche große Datenmenge sorgt dafür, daß manche meiner 
Konstanten, welche bei den *_P Funktionen benutzt werden, nach oben 
"geschoben" werden. Denn ich habe keinen Einfluss darauf, wo die 
Konstanten im FLASH angelegt werden.

Jetzt meine Frage:

wie kann ich es erzwingen daß der Compiler/Linker meine 40k großes 
Firmware oberhalb 64k Grenze im Flash plaziert, damit die übrigen 
Konstanten unterhalb 64k bleiben.

Wie würdet Ihr das Problem lösen?


Gruß
Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.