www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sprung von Bootloader nach Hauptprogramm


Autor: www.sde.at/pem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgendes Problem:

Ich will von meinem Bootloader in das Hauptprogramm springen
dabei verwende ich asm volatile("rjmp 0"). Aber er macht nicht im
Hauptprogramm weiter...
ATMEGA8
Hauptprogramm bei adresse 0x000
WinAVR

Kann mir jemand bitte weiterhelfen....

Danke

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mix aus C und Assembler:

MCUCR = 1;
//move vectors to 0x0000
MCUCR = 0;
#asm ("jmp 0x0000")

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab es eben erst gesehen, du darfst natürlich auch nicht rjmp nehmen.

Autor: www.sde.at/pem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo danke für di antwort.

jmp wird nicht akzeptiert. ("jmp 0")

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wie compilierst du deinen Bootloader? Wenn du die .text Sektion per
--section-start=.text=... verschiebst wird das mit dem rjmp nichts
werden da der Linker auch die Adresse verschiebt. Ich löse das per
Linkersymbol. Der Linker bekommt an der Kommandozeilen
--defsym=app_start=0 und dann

asm volatile("rjmp app_start");

an der Stelle wo du ins Hauptprogramm springen willst. Kompletten
Bootloader samt passendem makefile findest du in meinem USBisp-Projekt.
-> www.matwei.de

Matthias

Autor: frankieboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Assembler kann man das gut mit
rjmp  (FLASHEND+1)
machen, der rjmp landet dann immer bei Adresse 0. Funktioniert bei
allen AVRs (sollte).

Gruss

Frank

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.