C18 pragma romdata

Gast #2608334
Hallo C18 User,
1
#pragma romdata eeprom_section = 0x1FF
2
rom uint8_t v0;
3
rom uint8_t v1;
4
rom uint32_t v2;
5
#pragma romdata
6

7
#pragma romdata eeprom_section = 0x2FF
8
rom uint8_t w0;
9
rom uint8_t w1;
10
rom uint32_t w3;
11
#pragma romdata

gibt
Error [1050] section address permitted only at definition

diese Zeile ist das Problem
#pragma romdata eeprom_section = 0x2FF

ohne Adresse 0x2FF geht Code durch den Compiler
Wahrscheinlich liegen die w-Variablen direkt nach v-Variablen.
Sprich die Sektionen werden zusammengefasst.

Ich portiere ein altes Programm und will die alten Speicherorte
beibehalten (um nicht versehentlich anderen Code zu brechen)

Wie kann ich in C18 die Variablen unterschiedliche Adressen zuweisen?
Wäre euch echt dankbar. Auch längere Suche hat leider nichts ergeben.

Gruße
Martin

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.