Bootloader Problem: Funktioniert nur ein Mal

Gast #1849672
Lesenswert?
• ▲
▼
Hallo zusammen,

ich brauche Eure Hilfe für folgendes Problem:

Auf meinen Atmega8 habe ich den Bootloader Fastboot V2.1 von Peter 
Dannegger aufgespielt. Bin dabei so vorgegenagen, wie in der 
beiliegenden ReadMe-Datei erklärt (Makefile angepasst, HEX-File erzeugt 
und hochgeladen, Fuses eingestellt). Zur Ansteuerung des Bootloaders 
habe ich das im Artikel über den Bootloader
http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger
erwähnte Python-Programm verwendet.
http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python

Das ganze funktionierte auf Anhieb, aber nur genau ein Mal. Wenn ich 
nach Aufspielen meines HEX-Files Änderungen auf den µC laden will, 
versucht sich das Programm mit dem Bootloader zu verbinden und hängt 
fest.

Ich gehe folgendermaßen vor: Python-Programm mit erforderlichen 
Parametern starten --> Reset des µC, damit der Bootloader geladen wird

Was mache ich falsch? Habe die Fuse/Lock-Bit-Einstellungen und die 
Ausgabe des Python-Prog auf der DOS-Konsole als Bild angehängt.

Danke sehr
Rob
Angehängte Dateien:
Gast #1849813
Lesenswert?
• ▲
▼
Habe gerade ein ähnliches Problem, nur ne andere Toolchain und M128.

Wenn ich den Loader per STK500.exe flashe geht er genau ein mal. Wenn 
ich ihn per AVR-Studio flashe gehts einwandfrei. Warum, das weiß Atmel 
alleine.
Gast #1849823
Lesenswert?
• ▲
▼
Hallo Peter,

leider tut sich nix. Ich habe den Atmega8 auf einem STK500 und kann 
machen was ich will:

1) Python-Frontend starten und dann entweder:
2) Reset-Button drücken
3) oder Ein-Ausschalten
4) oder Reset-Pin auf GND ziehen

aber das Programm verbindet sich nicht mit Deinem Bootloader

Gruß
Rob
Gast #1849856
Lesenswert?
• ▲
▼
Peter Dannegger schrieb:
> daß die BOOTRST-Fuse
>
> nicht gesetzt ist.

Ist Sie (siehe Bild oben im Anhang).

Habe jetzt mal ein bisschen ausprobiert und es geht unter folgenden 
Bedingungen:

Wenn ich das Python-Programm starte und innerhalb von wenigen 
Sekundenbruchteilen entweder einschalte oder Reset drücke, dann geht's. 
Warte ich auch nur einen kleinen Moment zu lang, dann geht nix.

Wenn das Programm mal länger läuft, dann geht weder Reset noch 
Aus-Einschalten.
Gast #1849883
Lesenswert?
• ▲
▼
Es lag am Python-Programm. Da war ein

time.sleep(0.1)

in der Hauptschleife. Nach dem Auskommentieren geht es jetzt 
einwandfrei.


Danke für die Hilfe und herzlichen Dank an Peter Dannegger für die 
Arbeit, die in diesem Bootloader steckt!


Gruß
Rob

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.