Datum:
Hi Leute, ich arbeite mich gerade durch folgenden Artikel in der Artikelsammlung: http://www.mikrocontroller.net/articles/AVR_Bootlo... Ich hab gerade die entgültige Version aus dem Artikel in einer angepassten Form auf den Controller (Atmega644) geflasht. Der Bootloader scheint prinzipiell zu funktionieren. Allerdings meldet mir der Controller einen Buffer-Overflow des Eingangsbuffers (UART lib von Peter Fleury) wenn ich versuche ein hex-file zu übertragen. So wie ich das sehe wird das hex-file in einem Zug übertragen, was in meinen Augen zwangsläufig zu einem Overflow führen muss. Wie kann ich nun aber diesen Overflow umgehen? lg much
Datum:
Michael N. schrieb: > Wie kann ich nun aber diesen > Overflow umgehen? Indem du schnell genug die Daten aus dem Ringpuffer holst. Dazu gehört das du während das Hexfile ankommt auf alles, was lange blockiert oder zu große Delays verwendet, verzichtest. Zeig am besten mal den Code. Gruß Oliver
Datum:
Angehängte Dateien:Danke für deinen Antwort. Ich hab meinen Quellcode mal im Anhang beigefügt. Allerdings ist er bis auf ein paar Kleinigkeiten identisch mit dem oben genannten Code. Zeitaufwendige Routinen sind eigentlich nur die beiden Time-delays in der State-Machine (100ms). Man könnte doch PC-Seitig ein kleines Program/Skript schreiben das das hex-file Zeilenweise überträgt (mit kleinen Pausen zwischendurch). Das würde doch auch helfen den Overflow zu vermeiden, oder? lg much
Datum:
Ich verwende zum Senden Putty. Dort habe ich unter Connection -> Serial den Punkt Flow control auf XON/XOFF gesetzt. Dadurch sollte es doch die Software Flow Control verwenden, oder?
Datum:
>Zeitaufwendige Routinen sind eigentlich nur die beiden Time-delays in
der State-Machine (100ms).
Was soll das ? So wird das nie was. Vergiss es.
Datum:
Bonzo schrieb: > Was soll das ? So wird das nie was. Vergiss es. Hab sie schon herausgenommen. Funktioniert aber immer noch nicht. Wiso sind die im Code im Artikel eigentlich drinnen?