Forum: Compiler & IDEs Schlüsselwort ">AT" bei Linker Script


von Zu' Hülf! (Gast)


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

von Timmo H. (masterfx)


Lesenswert?


von Suche auch Hilfe (Gast)


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
?

von Timmo H. (masterfx)


Lesenswert?

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.

von Zu' Hülf! (Gast)


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?

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
Noch kein Account? Hier anmelden.