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 | |
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.