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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren