firmware upgrade mit xmodem

Apr 04, 2020 8 Replies
Jump to replies (8)

Hallo,



ich versuche mich gerade ein firmware upgrade mit xmodem:



picocom -b 115200 -f n -pn -d8 -s 'sx -k -b -vv' -v 'rx -vv' /dev/ttyUSB3



Sieht auch erstmal gut aus. Ich kann mit dem bootloader reden, upload scheint durchzulaufen. Nur bootet das Geraet danach nicht mehr ;). Die Operation mit windows teraterm durchgefuehrt ist erfolgreich. Was koennte die xmodem-Implementierung anders machen?



VG hmw


Schwer zu sagen. Kannst Du das Flash auslesen und sehen, *was* falsch angekommen ist?

Ich benutze regelmäßig minicom unter Linux (mit dem gleichen rx/sx) und gelegentlich TeraTerm - neben den verschiedenen Varianten (XModem/XModem-1k, Checksum/CRC) gab es da unterschiedliches Varhalten bei Retries - in unserem Bootloader habe ich da 1-2 Workarounds für verschiedene Terminalprogramme gebraucht. Das führt aber im Normalfall zu abgebrochenen oder hängenden Uploads, nicht zu unbemerkt verfälschten Daten. Andererseits stecken bei uns in der übertragenen Datei nochmal Header und Prüfsummen, die verhindern, daß Müll überhaupt geflasht wird ...

Was für ein Bootloader ist das bei Dir?

cu Michael

aufschrauben und extern auslesen ginge vermutlich.

minicom hatte ich zuerst versucht. Der bootloader will ziemlich schnell einen Tastendruck sehen, damit er nicht bootet, sondern auf ein neues image wartet. Das klappte mit minicom nie, mit picocom immer. Auch das geht mit teraterm ziemlich zuverlaessig.

Keine Ahnung. Ist ein fertiges Geraet. Das nach aussen gefuehrte user interface laesst nur das update der firmware zu und verraet sonst nicht viel.

Meine aktuelle Arbeitshypothese ist, dass irgendwas am padding unerschiedlich ist. Dazu muesste ich wohl mal den Quelltext von teraterm begucken.

VG hmw

Gut, *das* Problem habe ich nicht. Abe ra rx/sx die gleichen sind, sollte minicom vs. picocom keinen Unterschied machen.

Ich würde von beiden Systemen einen kompletten Upload mitschneiden und vergleichen. Unter Linux könnte

formatting link
, unter Windows portmon von sysinternals.

Alternativ ein T-Adapter und ein Monitoring-Rechner mit 2 seriellen Ports, wo jeweils nur RX angeschlossen ist - stellt sich die Frage, mit welchem Programm man die 2 Kanäle sinnvoll *mit Zeitbezug* aufnehmen kann.

cu Michael

Vieleicht die Dateinamen Groß/Kleinscreibung oder deren Enoding anders machen.

Gernot

XModem überträgt soweit ich weiß keine Dateinamen.

cu Michael

Stimmt. Hab es verwechselt.

Gernot

Du könntest mit strace mitprotokollieren was gesendet wird. Vieleicht wird CR/LF konvertiert. Vieleicht wird auch der letzte block anders aufgefüllt.

Gernot

jepp.

Ich habe noch keine Zeit gehabt, weiter zu schauen. Wenn ich das richtig deute, ist das padding byte bei beiden Ansaetzen unterschiedlich. Waere komisch, wenn es daran scheitert, aber beim naechsten Zeitfenster gucke ich in die Richtung weiter.

VG hmw

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required