Reset nach bootload

Gast #267321
Lesenswert?
• ▲
▼
Hallo,

ich habe auf meinen ATmega128 einen Bootloader installiert. Ich springe
vom Bootloader ins Hauptprogramm (Adresse 0x0000). Jetzt möchte ich
allerdings auch wieder zum Bootloader zurückspringen, um ein manuelles
FW-Update auszuführen. Ich habe folgendes im Makefile des
Hauptprogrammes probiert:

MCU = atmega128
MAIN_START = 0x00000
BOOT_START = 0x1FC00

MAIN_JMP = 0x0000
BOOT_JMP = 0xFE00

LDFLAGS =
-Wl,-Map=$(TARGET).map,--cref,--section-start=.text=$(MAIN_START),--defs 
ym=boot_start=$(BOOT_JMP),--defsym=main_start=$(MAIN_JMP)
-mmcu=$(MCU)


Im Hauptprogramm führe ich das aus:

asm volatile("jmp boot_start");

Allerdings führt das nicht zur gewünschten Lösung. Der AVR startet zwar
mein Hauptprogramm neu. Lädt aber nciht den Bootloader. Istd a ein
Gedankenfehler von mir? Oder wie kann ich generell einen "Softreset"
auslösen?
Gast #267322
Lesenswert?
• ▲
▼
Ich bin nochmal am suchen. Anscheinden startet der doch den Bootloader.
Zumindest sendet der mir EIN! Zeichen zurück. Aber nicht mehr. Dann
läuft schon wieder das Hauptprogramm. Kann es sein, dass ich da
irgendwas mit dem Stack usw. noch beachten muss?
Gast #267324
Lesenswert?
• ▲
▼
Hey, ich hatte das Problem damals mit einem künstlichen erzeugten
Watchdog Reset gelöst mittlerweile würde ich es wohl auch eleganter
versuchen. Du solltest ein "cli" einbauen.
Google mach nach AVR reset oder Schau mal hier

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=188539&POSTNUKESID=add9d4cf028a2c6d43e1871364643f33#188539

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=33814&highlight=

Freudi
Gast #267325
Lesenswert?
• ▲
▼
Also mit "wdt_enable(WDTO_15MS);" geht es wunderbar. Ein cli() hatte
ich vorher schon drin. Kann ich nicht nachvollziehen, warum es da nicht
ging. Auch die IRQs werden ja nicht angesprochen, wenn ein Interrupt
ansteht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.