Linker Problem AVR32, AP7000, VMA LMA

Gast #1088498
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:
1
MEMORY
2
  {
3
    FLASH (rxai)     : ORIGIN = 0x00000000, LENGTH = 8M
4
    CPUSRAM (rwxa)   : ORIGIN = 0x24000000, LENGTH = 32K
5
    SDRAM   (rwxa)   : ORIGIN = 0x10000000, LENGTH = 32M  
6
  }
7
SECTIONS
8
{
9
  /* Read-only sections, merged into text segment: */
10
  PROVIDE (__executable_start = 0xa0000000); . = 0xa0000000;
11
  .interp         : { *(.interp) } >FLASH AT>FLASH
12
  .reset : {  *(.reset) } >FLASH AT>FLASH
13
    . = . & 0x9fffffff;
14
..
15
..
usw. siehe low.lds im Anhang. So funktioniert alles perfekt !

Im Linker File  high.lds habe ich folgendes gemacht:
1
MEMORY
2
  {
3
    FLASH (rxai)     : ORIGIN = 0x00000000, LENGTH = 8M
4
    HFLASH (rxai)    : ORIGIN = 0xA0000000, LENGTH = 8M
5
  
6
    CPUSRAM (rwxa)   : ORIGIN = 0x24000000, LENGTH = 32K
7
    SDRAM   (rwxa)   : ORIGIN = 0x10000000, LENGTH = 32M  
8
  }
9
SECTIONS
10
{
11
  /* Read-only sections, merged into text segment: */
12
  PROVIDE (__executable_start = 0xa0000000); . = 0xa0000000;
13
  .interp         : { *(.interp) } >HFLASH AT>FLASH
14
  .reset : {  *(.reset) } >HFLASH AT>FLASH
15
    . = . & 0x9fffffff;
16
  .hash           : { *(.hash) } >HFLASH AT>FLASH
17
  .dynsym         : { *(.dynsym) } >HFLASH AT>FLASH
18
…
19
…
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
1
Sections:
2
Idx Name          Size      VMA       LMA       File off  Algn
3
  0 .reset        00000008  00000000  00000000  00001000  2**2
4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
5
  1 .rela.got     00000000  00000008  00000008  00001008  2**2
6
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
7
  2 .text         00009234  00000008  00000008  00001008  2**2
8
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
9
  3 .rodata       00000084  0000923c  0000923c  0000a23c  2**2
10
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
11
  4 .gcc_except_table 00000e00  00009400  00009400  0000a400  2**9  
12
...
13
...

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


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
Angehängte Dateien:
Gast
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

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.