AT98C51ED2: Startadresse Code

#750632
Lesenswert?

Hallo,

ich möchte die Startadresse von meinem Programm auf 0x8000 legen und 
habe dazu folgendes gamacht wie es von Keil empfohlen wird:

a) in STARTUP.A51 die Zeile CSEG AT 8000H
b) in Keil µVision3 EPROM Startadress, START 0x8000
c) Interrupt Vector Startadresse auf 0x8000 gelegt

Mein Programm läuft so nicht an. Ich benutze die Interrups für T0, T1, 
SPI, UART. Erst wenn ich a,b,c auf 0x0000 lege funktioniert es wieder 
einwandfrei.


Hat jemand eine Idee oder eine andere Vorgehensweise zur Relocation von 
Code?

JAN
#750639
Lesenswert?

Die Frage ist, was Du mit dem Verbiegen erreichen willst?

Das hat man früher mal so gemacht, als es noch keinen intern 
programmierbaren Flash gab.
Da war dann unten ein Monitor-EPROM, der per Sprunganweisungen die 
Interrupts hochgelegt hat in einen SRAM-Bereich.
Die CPU selber kann die nicht verschieben.
Und der Monitor muß natürlich ohne Interrupts geschrieben sein.


Peter
#750680
Lesenswert?

Ich möchte auf 0x0000 meinen Bootloader legen, der dann nach reset 
angesprungen wird. Der Bootloader soll die Applikation nach 0x8000 
flashen und anschliessend starten. Ich habe also zuerst mal getestet, ob 
sich eine mit flip geflashte Software ab 0x8000 starten lässt.

JAN

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren