"Noch was anderes gibt es eine gute Beschreibung für das erstellen von
Linker-, Startup- und Make-Files im Bezug auf LPC ARM."
Jim Lynch's Tutorial dürfte den besten Überblick für ARM "bare metal"
und gnu-Toolchain geben.
"Deine Files sind ja wirklich super aber die zu verstehen ist ohne
Beschreibung schwierig."
Muss zugeben: meine Dateien (make, linker-script etc. sind stellenweise
etwas überladen aber dafür wird hoffentlich auch möglichst viel
"vorgekaut". Ein gutes "Rezeptbuch" für die Nutzung der GNU arm-elf
Toolchain kenne ich nicht. Habe mich auch seinerzeit auch durch die
GNU-manuals und diverse Beispiele gekämpft.
"Gerade die Linker-Files schauen bei vielen anders aus. Ich meine die
von
der Portierung von den Phillips Codebeispielen zum Beispiel."
Im Prinzip "schauen" die schon alle gleich aus, ich habe da nicht
gehext. Es geht nur darum, bestimmte "Sektionen" Speicheradressen
zuzuweisen, viel mehr passiert nicht.
Vielleicht zwar in einigen von meinen Beispielen enthaltene
Funktionalität, die man woanders nicht so oft sieht:
- Vorbereitung Remapping: Speicher reservieren für Execptions-Vector im
RAM
- Vorbereitung für "fastrun"-Funktionen: Programmcode im RAM
- unused-code-removal support: Verarbeitung von function- und
data-sections, neu bei gcc 4 und binutils ab 2.16(?)
"Was ist eigentlich der Unterschied zwischen .cmd und .ld sind doch
beides Linker-Files oder?"
Wahrscheinlich ja. Meines Wissens existiert keine wirkliche Konvention
für die Dateiendung von Linker-Dateien. Vordefinierte Scripte im
lib-Pfad der Toolchain enden meist mit .x*. Diese Skripte habe ich aber
für ARM Projekte nie direkt genutzt sondern höchstens Teile davon
übernommen. Ich vermeide Endungen mit .x um die vordefinierten von den
selbstgebastelten Skripten deutlich abzugrenzen und nutze stattdessen
.ld als Endung. Diese Endung habe es mir aber auch nicht selbst
ausgedacht, sondern von irgendwoher übernommen (alte Keil-Beispiele?).
Endung steht wohl für linker-description. cmd als Endung für
Linker-Scripts auch schon mal irgendwo gesehen (Lynch?). Aber das ist
eigentlich eine "well known"-Endung unter MS Windows NT++ und ich
vermeide diese daher.
Hoffe, es hilft etwas weiter.
Martin Thomas