www.mikrocontroller.net

Forum: Compiler & IDEs Bootloader funktioniert nur einmal


Autor: hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kai Franke (kai-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Problem hatte ich vor kurzem auch.
Stell unter AVR Studio die Fuse: Bootloader enabled an, dann klappts :)

Autor: hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht ganz was du meinst. Meinst du "Boot reset vector enable"?
Das hab ich schon "eingeschalten".
[...]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.[...] 

Autor: Bönsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

;)

Autor: hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich werd noch verrückt.
Nichts hilft.
Ich hab sogar den Megaloadentwickler höchstpersönlich gefragt, aber er 
meinte nur, dass ich besonder HArdware benötige:
"You need a RS232 to RS485 that is AUTOMATIC switch from Rx to Tx like
http://www.bb-elec.com/bb-elec/literature/485oi9tb...
The PC don't manage the Rx/Tx switch."
Aber wenns doch einmal funktioniert...

Autor: Bernhard K. (Firma: SSSA - CNR Pisa) (berny74)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Bönsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.