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
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à.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.