Hi,

RN-User francesco hat mich gestern darauf aufmerksam gemacht, dass es mit der Asuro Lib V2.60 (von Sourceforge) Probleme beim Flashen mit dem RS232-IR Transceiver gibt. Ziemlich genau beim letzen Block brach der Flash Vorgang immer mit Checksum-Fehler (c.c.c.c.c..., TIMEOUT) ab.
Der Original Seftest.hex von der CD ließ sich dagegen immer einwandfrei flashen.
Zunächst war ich etwas überrascht, wie das zusammenhängen kann. Aber es gibt wohl, wie für fast alles, eine logische Erklärung. Das Problem konnte fransceso in der PrintInt Funktion einkreisen.

Code:
void PrintInt(int wert)
{
  char text[16]="     ";
  itoa(wert,text,10);
  SerWrite(text,strlen(text));
}
Läßt man die unvollstängige Initialisierung des Strings weg, funktioniert das Flashen wieder. Wie es scheint, kommt der RS232-IR Transceiver beim Übertragen einer längeren Folge von Null-Bytes aus dem Tritt.
Diese Folge von Null-Bytes entsteht durch die unvollständige Initialisierung mit 5 Spaces. Der Rest wird demnach mit Nullen initialisiert. Diese Null-Folge findet sich dementsprechend auch in jedem erzeugten Hex-File.

Ein Patch mit der Version 2.6.1 steht bei Sourceforge zum Download.
Leider kann ich den Erfolg derzeit selbst nicht testen, da ich mir die IR-Schnittstelle meines Asuros zerbastelt habe.
Ich habe allerdings eine Reihe von Hex-Files (test1.hex bis test6.hex) generiert und in ein zip-File gepackt, und zum Download auf den AsuroWiki Server gespielt. Jeweils mit ansteigender Null-Folge (0,5,10,15,20,25). Wäre nett, wenn einige Leute mal ausprobieren könnten, ab welchem Hex-File das Flashen schiefgeht und das Ergebnis hier posten.

Benutzer des USB-IR Transceivers sind davon wohl nicht betroffen, das sollte aber auch jemand mal ausprobieren. In der Asuro Lib 3.0 bei gna.org gibt es die PrintInt Funktion nicht mehr.

Gruß m.a.r.v.i.n