firmware upgrade mit xmodem

M

Michael Welle

Guest
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
 
On 2020-04-04, Michael Welle <mwe012008@gmx.net> wrote:
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?

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
 
Hallo,

Michael Schwingen <news-1513678000@discworld.dascon.de> writes:

On 2020-04-04, Michael Welle <mwe012008@gmx.net> wrote:
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?

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


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
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.


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?
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
 
On 2020-04-05, Michael Welle <mwe012008@gmx.net> wrote:
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
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.

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

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

Ich wĂźrde von beiden Systemen einen kompletten Upload mitschneiden und
vergleichen. Unter Linux kĂśnnte
https://unix.stackexchange.com/questions/12359/how-can-i-monitor-serial-port-traffic
helfen, 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
 
In article <1o6mlgxdm7.ln2@news.c0t0d0s0.de>,
Michael Welle <mwe012008@gmx.net> writes:
scheint durchzulaufen. Nur bootet das Geraet danach nicht mehr ;). Die
Operation mit windows teraterm durchgefuehrt ist erfolgreich. Was
koennte die xmodem-Implementierung anders machen?

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

Gernot
 
On 2020-04-12, Gernot Fink <g.fink@gmx.net> wrote:
> Vieleicht die Dateinamen Groß/Kleinscreibung oder deren Enoding anders machen.

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

cu
Michael
 
In article <slrnr98qc1.e5r.news-1513678000@a-tuin.ms.intern>,
Michael Schwingen <news-1513678000@discworld.dascon.de> writes:
On 2020-04-12, Gernot Fink <g.fink@gmx.net> wrote:
Vieleicht die Dateinamen Groß/Kleinscreibung oder deren Enoding anders machen.

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

Stimmt. Hab es verwechselt.

Gernot
 
In article <slrnr98qc1.e5r.news-1513678000@a-tuin.ms.intern>,
Michael Schwingen <news-1513678000@discworld.dascon.de> writes:
On 2020-04-12, Gernot Fink <g.fink@gmx.net> wrote:
Vieleicht die Dateinamen Groß/Kleinscreibung oder deren Enoding anders machen.

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

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

Gernot
 
Hallo,

Michael Schwingen <news-1513678000@discworld.dascon.de> writes:

On 2020-04-12, Gernot Fink <g.fink@gmx.net> wrote:
Vieleicht die Dateinamen Groß/Kleinscreibung oder deren Enoding anders machen.

XModem überträgt soweit ich weiß keine Dateinamen.
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
 

Welcome to EDABoard.com

Sponsor

Back
Top