Forum: Compiler & IDEs .text section


von Marcel (Gast)


Lesenswert?

ich würde gerne die .text section ein wenig im flash verschieben.
Jetzt frag ich mich gerade ob die unten angegebene Stelle im Makefile
korrekt ist und ob Adressen in Byte oder Wort Adressen angegeben
werden.

#---------------- Linker Options ----------------
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
LDFLAGS = -Wl,--section-start=.text=0x7000,-Map=$(TARGET).map,--cref
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)

von Stefan K. (_sk_)


Lesenswert?

Sieht richtig aus.

Die Adresse wird als Byte-Adresse angegeben.

Gruß, Stefan

von Marcel (Gast)


Lesenswert?

Vielen Dank Stefan.
Warum steht die text section denn standard mässig auf Adresse 0x7000 ?

Sollte die nicht eher bei 0x0000 Anfangen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Warum steht die text section denn standard mässig auf Adresse
> 0x7000?

Da solltest du den Fragen, der das Makefile da geschrieben hat.

von Stefan K. (_sk_)


Lesenswert?

???
Standardmässig fängt die bei 0x0000 an. Nur wenn Du --section-start
angibst, verschiebst Du sie.
0x7000 ist ein typischer Wert, wenn Du einen Bootloader implementierst
(beim ATmega32). Dann liegen die Vektoren nicht ab Adresse 0x0000,
sondern 0x7x00. Siehe die Bootvecor-Fuse.

Aus welchem Makefile hast Du die oben angegebenen Zeilen denn
rauskopiert?

Gruß, Stefan

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.