www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Linker Problem AVR32, AP7000, VMA LMA


Autor: mgiaco (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang sind 2 Linker Files für den AVR32 – AP7000. Ich möchte die MMU 
verwenden deshalb versuche ich den Code in das P2 Segment zu 
verschieben. Das Funktionier auch schon nur eben noch nicht ganz. Ich 
habe noch folgendes Problem:

Im low.lds habe ich folgende MEMORY:
MEMORY
  {
    FLASH (rxai)     : ORIGIN = 0x00000000, LENGTH = 8M
    CPUSRAM (rwxa)   : ORIGIN = 0x24000000, LENGTH = 32K
    SDRAM   (rwxa)   : ORIGIN = 0x10000000, LENGTH = 32M  
  }
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  PROVIDE (__executable_start = 0xa0000000); . = 0xa0000000;
  .interp         : { *(.interp) } >FLASH AT>FLASH
  .reset : {  *(.reset) } >FLASH AT>FLASH
    . = . & 0x9fffffff;
..
..
usw. siehe low.lds im Anhang. So funktioniert alles perfekt !

Im Linker File  high.lds habe ich folgendes gemacht:
MEMORY
  {
    FLASH (rxai)     : ORIGIN = 0x00000000, LENGTH = 8M
    HFLASH (rxai)    : ORIGIN = 0xA0000000, LENGTH = 8M
  
    CPUSRAM (rwxa)   : ORIGIN = 0x24000000, LENGTH = 32K
    SDRAM   (rwxa)   : ORIGIN = 0x10000000, LENGTH = 32M  
  }
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  PROVIDE (__executable_start = 0xa0000000); . = 0xa0000000;
  .interp         : { *(.interp) } >HFLASH AT>FLASH
  .reset : {  *(.reset) } >HFLASH AT>FLASH
    . = . & 0x9fffffff;
  .hash           : { *(.hash) } >HFLASH AT>FLASH
  .dynsym         : { *(.dynsym) } >HFLASH AT>FLASH


usw. siehe Anhang high.lds


Ich habe also eine Memory HFLASH hinzugefügt. Beim AVR32 ist 
Segmentation default eingeschaltet das heisst alle 0xA… adressen werden 
auf 0x0… gemappt. usw.
Ich hab alle “ FLASH AT>FLASH “ auf  “ HFLASH AT>FLASH “ geändert.

>> ausschnitt aus objdump mit low.lds
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .reset        00000008  00000000  00000000  00001000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rela.got     00000000  00000008  00000008  00001008  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .text         00009234  00000008  00000008  00001008  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .rodata       00000084  0000923c  0000923c  0000a23c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .gcc_except_table 00000e00  00009400  00009400  0000a400  2**9  
...
...

Ausschnitt aus objdump mit high.lds
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .reset        00000008  a0000000  00000000  00001000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rela.got     00000000  a0000008  00000008  00001008  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .text         00009234  a0000008  00000008  00001008  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .rodata       00000084  a000923c  0000923c  0000a23c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .gcc_except_table 00000e00  a0009400  000092c0  0000a400  2**9
...
...


Bei Idx 4 sieht man das Problem gut, VMA und LMA sind versetzt, wieso ? 
Was mache ich da falsch kennt sich jemand damit aus?

Die Linker File sind ident bis auf VMA. So läuft es nicht was auch klar 
ist, weil die Adressen nicht stimmen.

mathias

Autor: mgiaco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Align bezieht sich nur auf den . oder. Könnte ein Problem sein oder 
wenn ich ein Align mache im Skript ?

Kann man das überhaupt so machen wie ich das mir vorstelle ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.