www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Bootloader aus Artikelsammlung -- UART Overflow


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Michael N. (much)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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

Autor: Oliver J. (skriptkiddy)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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

Autor: Michael N. (much)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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

Autor: da1l6 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Der AVR Beispiel Code verwendet Software Flow Control. Der Sender sollte 
dies nutzen.

Autor: Michael N. (much)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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?

Autor: Bonzo (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
>Zeitaufwendige Routinen sind eigentlich nur die beiden Time-delays in
der State-Machine (100ms).

Was soll das ? So wird das nie was. Vergiss es.

Autor: Michael N. (much)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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?

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net