Bootloader funktioniert nur einmal

Gast #808470
Lesenswert?

Hi,

ich hab ein kleines Problem mit meinem Bootloader.
Ich nutze einen Atmega128 und den Bootloader von Mircosyl und dazu 
natürlich Megaload.
Nun habe ich den Bootloader für RS485 modifiziert und die Fuses des µC 
geändert, so dass der Bootloaderbereich 4k groß ist und der Resetvector 
dort auch hinzeigt.

Nun lade ich den Bootloader hoch und danach mein Prog über RS485. Leider 
funktioniert das Hochladen nur genau einmal, danch reagiert der 
Bootloader nicht mehr. Was kann das sein? Ist mein Prog zu groß und 
überschreibt mir den Bootloader? Kann im momentn leider nicht drauf 
zugreifen, aber das könnte doch sein.
Ich habs auch schon mal mit der Option "SPM prohibited in Boot Section" 
unter AVR Studio probiert, aber kein Erfolg.
Gast #809438
Lesenswert?

Ich weiß nicht ganz was du meinst. Meinst du "Boot reset vector enable"?
Das hab ich schon "eingeschalten".
1
[...]Nun habe ich den Bootloader für RS485 modifiziert und die Fuses des µC
2
geändert, so dass der Bootloaderbereich 4k groß ist und der Resetvector
3
dort auch hinzeigt.[...]
Gast #816720
Lesenswert?

Hab zur Zeit selbiges Problem.
Ich habe den Eindruck, dass der Bootloader durch das eigentliche 
Programm 'Zerschossen' wird. Andererseits tritt das Problem bei einer 
anderen, sehr ähnlichen Hardware, nicht auf. Versuchsweise habe ich die 
beiden Programme quer getauscht. Der Fehler bleibt auf der selben 
Platine.

Any Ideas?
Gast #825581
Lesenswert?

Ich habe jetzt endlich wieder zugang zu der Hardware. Ich hab gestern 
also noch ein bißchen gespielt. ICh hab mal ein kleines Programm 
übertragn, um zu testen, ob das eigentliche Programm irgendwann den 
Bootloader überschreibt. Tut es aber anscheinend nicht, da der gleiche 
Fehler auftritt.
Ferner habe ich mit den Fuses des Bootloaderbereiches herumgespielt 
(BLB01 und BLB02 soweit ich mich erinnere). Kein Erfolg. Alles beim 
alten.
Was mich bei der Sache wundert ist, dass es in der RS232 Version mit 
passender Hardware funktioniert hat. Das finde ich schon sehr komisch.
Ich werde am WE aber mal darüber brüten....

;)
(Firma: SSSA - CNR Pisa) #844809
Lesenswert?

Ich hab in den letzten Wochen auch mit Bootloadern gekämpft und der Tipp 
bezüglich Fuses, siehe oben, sollte nochmal geprüft werden denk ich. 
Wenns auf einer HW funktioniert und der anderen nicht dann liegts wohl 
an unterschiedlicher Einstellung der Fuses. Ich würd mal einen 
Programmer anschließen und die Fuses auslesen und zwischen den 2 
HW-Versionen vergleichen...
Gast #1067088
Lesenswert?

Noch ein kleiner Tipp:
Bei mir lag das Problem auf der Hardware-Seite.

In unserer Hardware wird der üblich MAX232 verwendet. Als Reset (zum 
starten des Bootloaders) wurde die Baugruppe von der Spannung getrennt 
und wieder zugeführt. Nun war es so, das zu dem Zeitpunkt als der 
Bootloader auf nachricht vom PC wartet, der Max232 noch nicht 
betriebsbereit war.

Zwei Lösungsmöglichkeiten:
1. Reset des Atmel durch den dafür vorgesehnen Reset-Pin auslösen.
2. Zeitkonstante der Reset-Schaltung (RC-Glied) verlängern (nicht 
getestet)
3. Bootloader so modifizieren, dass es länger auf den PC wartet.

Da unsere Hardware bereits ausgeliefer war und sich in einem 
geschlossenem Gehäuse ohne Reset-Taster befand wurde von uns Möglichkeit 
3 realisiert.

Gruß
Benjamin

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