Hallo Heiko
Um dem Debugger mitzuteilen, an welche Adresse das Programm
geladen werden soll, gibt es für den Assembler (a51) die
Anweisung org 8000h. Da ich aber ein C-Programm laufen lassen
möchte, würde ich gerne wissen was ich angeben muss, damit der
C-Compiler (c51)das umsetzt was im Assembler org 8000h macht.
Ich arbeite mit µVision.
Leider kenne ich den µVision C-Compiler nicht. Aber Normalerweise wird das auch nicht im C-Quellcode angegeben.
Diese Angaben muss man dem Linker mitteilen.
Dein Programm besteht ja immer aus mehreren Teilen:
- Mindestens ein Modul welches von dir geschrieben und compiliert wurde.
- Dem C-Startup Modul welches den Speicher initialisiert und dann main() aufruft, welches teil der Runtime-Library ist.
- Meistens diverse Bibliotheks-Funktionen welche von dir aufgerufen werden.
- Verschiedene Funktionen welche vom Compiler automatisch aufgerufen werden (z.B. 32-Bit Arithmetik) und sich auch in der Standart-Bibliothek befinden.
Erst der Linker fügt dann diese Teile zusammen und setzt dann die richtigen Speicher-Adressen für Funktionsaufrufe und Variablen an den entsprechenden Stellen im Code ein.
MfG Peter(TOO)