Hi Leute, ich arbeite mich gerade durch folgenden Artikel in der Artikelsammlung: http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung 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
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
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
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?
>Zeitaufwendige Routinen sind eigentlich nur die beiden Time-delays in
der State-Machine (100ms).
Was soll das ? So wird das nie was. Vergiss es.
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.