µC Debug C-Programm at 0x8000h

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.

Danke

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:

  1. Mindestens ein Modul welches von dir geschrieben und compiliert wurde.
  2. Dem C-Startup Modul welches den Speicher initialisiert und dann main() aufruft, welches teil der Runtime-Library ist.
  3. Meistens diverse Bibliotheks-Funktionen welche von dir aufgerufen werden.
  4. 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)