Rowley Crosswork ARM: RAM Placement Batterie Ram

OP #1222162
Hallo,

kann mir jemand, der sich mit dieser Oberfläche gut auskennt verraten, 
wie ich eine Variable im Batterie RAM ablegen kann?

Mir sind die beiden Linker Files

Philips_LPC2368_MemoryMap.xml
enthält: AHB Peripherals, Battery Ram, APB Peripherals, USB Ram usw

flash_placment.xml
----Internal SRAM,SRRAM usw
--------.fast_run .vectors_ram usw
----External RAM...
------.stack, .heap, .bss, .data_run usw

bekannt, ebenso wie ich mit der _attribute (section .batram) Anweisung 
Variablen in festen Bereichen allokieren kann.

Das Batterieram wird auch im ersten File schon erwähnt und wo es liegt, 
im zweiten File aber ist keine Sektion dafür eingerichtet. Richte ich 
diese unter Internal SRAM.... ein und vergebe ihr die Adresse wird das 
beim Linken muckiert. Die anderen Einträge habenm auch keine fixen 
Adressen zugeordnet nur reservierte Wörter.

Bitte um Schritt für Schritt Anleitung, das intutive habe ich schon 
alles ausprobiert, die neue Sektion .batram wird nicht erkannt, ebenso 
wird die Adresse E0004000 angemeckert.

Gruss,
Christian
Gast #1223957
1. Im flash_placement.xml ein neues Memory Segment anlegen (Kontextmenü, 
"New Memory Segment") -> kriegt defaultmäßig den Namen "New"

2. Das Name-Attribut ändern in "Battery RAM" -> Schreibweise muss genau 
übereinstimmen mit dem Namen aus dem MemoryMap.xml

3. Eine Memory Section dort hineinlegen (Kontextmenü, "New Program 
Section") -> kriegt auch den Namen "New"

4. Das Name-Attribut ändern in was Sinnvolles, z.B. ".batram".

5. Das Load-Attribut auf "No" setzen, sonst wird die Sektion bei jedem 
Laden initialisiert - willst du bei Batterie-RAM nicht.

6. Im Sourcecode Variable deklarieren:
1
int myBatteryRamValue __attribute__((section(".batram")));

Et voilà.
OP #1224578
Hallo,

leider nicht ganz, das war auch mein Fehler im flash placement 
herumzufummeln.

1. Im File Philips_LPC2368_MemoryMap.xml unter "Battery Ram" eine neue 
Sektion anlegen zB .batram, Alignment auf 4 setzen, Load Type auf No.

2. Im flash_placement muss nichts geändert werden.

Der Linker erzeugt im Symbol Explorer automatisch die neue Sektion 
.batram, sobald man die Schlüsselwörter verwendet. Er meckert nur wenn 
er .batram nicht im Philips File findet. Ebenso meckert er wenn man die 
Startadresse eingegeben hat, weil die schon festgelegt ist in der 
Überschrift.

Nach einem Vergleich mit dem Listing File stimmt die Adresse der neuen 
Variable auch, ebenso hat er _batram_start richtig angelegt.

Thats all.

Antwort schreiben

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