Programmausführung springt nicht zum Bootloader

Gast #2433484
Lesenswert?
• ▲
▼
Hallo

Ich habe einen Bootloader nach 
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung 
programmiert und im ATmega auch das BOOTRST gesetzt.
Im Grunde funktioniert alles: Der Bootloader wird aufgerufen, ich kann 
das Hauptprogramm flashen und es startet.
Aber: Nach meinem Verständnis sollte doch anschließend aufgrund des 
Fuses BOOTRST immer zum Bootloader gesprungen werden, wenn ein Reset 
oder PowerOn eintritt. Aber es wird immer gleich das Hauptprogramm 
gestartet.
Verstehe ich da was falsch?
#2433498
Lesenswert?
• ▲
▼
Peter schrieb:

> Aber: Nach meinem Verständnis sollte doch anschließend aufgrund des
> Fuses BOOTRST immer zum Bootloader gesprungen werden, wenn ein Reset
> oder PowerOn eintritt. Aber es wird immer gleich das Hauptprogramm
> gestartet.
> Verstehe ich da was falsch?

Kommt drauf an, wie der Bootloader geschrieben ist.
Die meisten Bootloader sind so gebaut, dass sie nur eine begrenzte Zeit 
lang auf die Gegenstelle warten. Kommt da nix, dann startet der 
Bootloader das Hauptprogramm.

Macht auch Sinn. Nach einem Stromausfall möchtest du ja haben, dass der 
µC von alleine wieder startet und sein Programm weitermacht und nicht 
ewig darauf wartet, dass der Servicetechniker kommt und dem Bootloader 
sein OK gibt.
Gast #2433511
Lesenswert?
• ▲
▼
Schon klar so weit. Nur der Bootloader wird gar nicht ausgeführt nach 
dem ersten Flashen über ihn. Ich nutze noch den Beispielcode 
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Schritt_1_und_2_-_siehe_.22Hallo_Welt.22_Bootloader
Und da würde wenigstens ein Text ausgegeben werden (zumal ich den Code 
modifiziert habe und er auf ein Zeichen warten müßte).
#2433555
Lesenswert?
• ▲
▼
Peter schrieb:
> Schon klar so weit. Nur der Bootloader wird gar nicht ausgeführt nach
> dem ersten Flashen über ihn. Ich nutze noch den Beispielcode
> 
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Schritt_1_und_2_-_siehe_.22Hallo_Welt.22_Bootloader
> Und da würde wenigstens ein Text ausgegeben werden (zumal ich den Code
> modifiziert habe und er auf ein Zeichen warten müßte).


Ah. OK

Überprüf nochmal das BOOTRST Flag. Wenn das richtig steht, MUSS der µc 
den Bootloader anspringen. Er hat gar kein andere Wahl nach einem Reset.
Überprüf auch, ob du die Größe der Bootloader Section richtig 
eingestellt hast.
Gast #2433749
Lesenswert?
• ▲
▼
Argh!
Darauf hätte ich ja auch gleich selber kommen können. *Danke.*
Ich ging fest davon aus, daß das Bit gesetzt ist, denn immerhin springt 
er ja zum Bootloader. Aber es war nicht der Fall. Gesetzt und alles 
Paletti.

Antwort schreiben

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.

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.