Forum: Compiler & IDEs startup.code für LPC2378


von Steffen H. (mcst)


Angehängte Dateien:

Lesenswert?

Hallo zusamm,

ich will meinen Code auf einem LPC2378-Evaluation Board von Olimex 
ausführen. Ein Beispielprojekt habe ich funktionsfähig hinbekommen. nun 
will ich die CAN-Schnittstelle in Betreib nehmen.
Hierbei taucht der Effekt auf, dass wenn ich eine neue .c Datei mit 
linke, mein Startup-code nicht mehr an der ersten Stelle im Flash steht 
(muss er aber damit es funktioniert).
Im Linker-script ist eine extra Section .startup für den Startup-code 
eingetragen.
Nach einigem Suchen habe ich über das .map File herausgefunden, dass 
mein Startup-code aber als normaler C-Code interpretiert wird und in die 
.text Section gelinkt wird.

Durch Goggle bin ich nun auf das Assembler Kommando .section gestoßen 
und habe diese mit in mein Startup-code geschrieben:
1
.section .startup, "ax"
Nun wird mein Code wie gewollt in die Section .startup gelinkt.

Eigentliches Problem:
Ich weis gar nicht was dieses Kommando wirklich macht und wie es zu 
benutzen ist. Zum besseren Verständnis und um vll. spätere Seiteneffekte 
zu vermeiden hoffe ich ihr könnt mir dazu etwas sagen!

Ich hab den Startup-code und das Linkerscript angehangen

Danke schon mal im voraus.

von Daniel G. (motello)


Lesenswert?

.section <name> legt deinen code in die Section <name> ab. Also wird 
dein startup code in die section ".startup" gelegt. Diese section wird 
dann entsprechend dem linker script an den anfang gelinkt.

Nur was das "ax" zu bedeuten hat, weiß ich auch nicht!

zum befehl .section schau mal in "using as" und fürs linker script und 
den linker überhaupt in "the gnu linker" nach. die dokumentationen gibt 
es online oder als pdf.

von Steffen H. (mcst)


Lesenswert?

Super! besten dank,
das sind genau die Stichworte die ich gebraucht hab

Steffen

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.