Hi,
ich arbeite mich gerade in den MPC5567 von Freescale ein. Es ist auch
das erste mal das ich mich mit dem Linker script beschäftigen muss weil
ich eventuell ein eigenes später Schreiben muss. Ich habe mir bei einem
Beispiel Projekt das Linker Script File mal genauer angesehen und komme
mit der Syntax nicht weiter obwohl ich im Internet schon diverse
Tutorials durchgelesen habe. wie man im angehängten File erkennen kann
(__Lnk.ind) beginnt die ".text" Section bei der Adresse 0x00000000
Frage:
Ist das die physikalische Adresse des Flash Speichers des uC ? (siehe
Screenshot ROT markiert) wenn dem so ist warum wird keine Endadresse
angegeben woher weiß der Compiler wenn er zuviel in den Flash Speicher
geschrieben hat ohne Angabe über die Endadresse?
Ich weiß das der Compiler erst aus dem Source Code sowohl C- als auch
Assembler Files erstmal Object Files erstellt und der Linker dann aus
allen zusammen eine ausführbare Datei generiert z.B. exe oder elf. Aber
mir ist der Zusammenhang zwischen dem Startup File "crt0.s" und Linker
Script noch nicht ganz klar.
Davon abgesehen nochwas, ich weiß was im .bss und .data landen soll aber
was soll dann das .sbss ? was für variablen landen hier?
Auf dem Screenshot des ref Manuals vom MPC5567 sieht man außerdem die
Startadresse des Internal SRAM nach meinen Recherchen müssen die
Variablen der .bss und .data Section in das Internal SRAM geschrieben
werden ABER die Adresse beginnt bei 0x4000 0000. aber im Linker Script
File sieht man das als Startadresse 0x4000 2000 angegeben wird warum
dieser Offset? UND warum wird nicht der voll zur Verfügung stehende
Speicher verwendet es geht nur von 0x4000 2000 bis 0x4000 6000 ? ist das
nur willkürlich ausgewählt oder steckt mehr dahinter vielen dank im
voraus