mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT98C51ED2: Startadresse Code


Autor: Jan Schwinkendorf (jsc)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan Schwinkendorf (jsc)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Machs einfach umgekehrt, leg den Bootloader auf 0xF000 und lade die 
Applikation nach 0x0000, dann kann sie die Interrupts benutzen.

Dazu ist ja extra der SBV da, um nach nem Reset z.B. an 0xF000 zu 
starten.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.