Schlüsselwort ">AT" bei Linker Script

Gast #3362285
Lesenswert?

Hallöle,

ich bin dabei einen Linker Script zu studieren. Habe mir schon viele 
Dokus dazu reingezogen, samt man-pages und komme dennoch nicht dahinter, 
was das Schlüsselwort ">AT" für eine Bedeutung hat. Hier mal ein 
Beispiel:
1
MEMORY
2
{
3
  rom (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
4
  ram (rwx) : ORIGIN = 0x80000000, LENGTH = 512K
5
}
6

7
SECTIONS
8
{
9
  /* Der ganze Kram für den ROM */
10
  .text :
11
  {
12
    ... /* Irgendwas */
13
  } >rom /* Das beduetet, dass die Output Sektion in die Region rom verlagert wird */
14

15
  .bss :
16
  {
17
    ... /* Irgendwas */
18
  } > ram AT>rom /* Dass .bss in die Region ram abgelegt wird ist mir bewusst und macht Sinn, aber was soll das AT>rom sein? Und wieso rom? */
19

20
}

Wäre sehr nett und hilfreich (auch für die Zukunft) wenn mir das jemand 
gut erklären könnte.

Gruß, jemand der Hilfe benötigt
Gast #3363014
Lesenswert?

Hallo Timmo,

ist denn da ein Unterschied zwischen den beiden Schreibenweisen
1
.bss :
2
  {
3
    ... /* Irgendwas */
4
  } > ram AT>rom

und
1
.bss : AT(Address)
2
  {
3
    ... /* Irgendwas */
4
  } >ram
?
Gast #3363180
Lesenswert?

Timmo H. schrieb:
> Wenn ich das richtig verstanden habe (ich kenn mich auch nicht so
> gut
> mit Linker-Skripten aus), dann führ das "ram AT>rom" dazu, dass
> entsprechend Speicher im RAM für die Variable reserviert wird, aber der
> Initialisierungswert im ROM liegt.

Würde bei .data Sinn machen, da diese am Anfang initialisiert sind. Aber 
.bss ist nie initialisiert! Also muss doch vllt. was anderes dahinter 
stecken?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren