Re: KNX Bootloader für ARM
Verfasst: 30. Nov 2020, 20:19
Hallo,
ich hatte bisher immer noch Probleme mit dem Bus Updater.
Das war vornehmlich dann zu beobachten, wenn weitere Buskommunikation in Form von groupwrite Nachrichten vorherrschte.
Nach etlichen Versuchen und Busaufzeichnungen habe ich dann das Problem erkannt:
Es wird nach einem groupwrite ein weiteres ACK gesendet, allerdings mit der Eigenschaft "Repeat on Error: Yes"
Dieses erneute Senden eines Acknowledges brint die calimero lib aus dem Tritt und die Verbindung wird abgebrochen.
Das Ganze habe ich dann auch mal bei der calimero lib gemeldet:
https://github.com/calimero-project/cal ... /issues/96
Dort wure mir dann die Codestelle aufgezeigt, die bei erneutem ACK Empfang das disconnect einleitet.
Daraufhin habe ich die calimero lib als Projektdateien mit eingefügt und die Stelle auskommentiert.
Nun gibt es zwar diese Sicherheit nicht mehr, dass im Falle eines offnen Endpoints dieser geschlossen wird, sobald ein ACK empfangen wird, aber dafür funktioniert der Bus Updater nun problemlos (auch am produktiven KNX Bus).
Eventuell wächst daraus ja auch noch eine Änderung der calimero lib, aber das weiß ich natürlich nicht.
Ich habe mir mal die Freiheit genommen, den Bus Updater mit seinen Eigenschaften im neuen Wiki zu beschreiben:
https://selfbus.org/wiki/software/tools ... dater-tool
Die neue Version ist hier im Git zu finden.
Das bestehende Problem mit der Anfangsadresse 0x2000 für die Release Version besteht zwar immer noch, aber so kann man den Updater bereits verwenden.
Grüße,
Olli
ich hatte bisher immer noch Probleme mit dem Bus Updater.
Das war vornehmlich dann zu beobachten, wenn weitere Buskommunikation in Form von groupwrite Nachrichten vorherrschte.
Nach etlichen Versuchen und Busaufzeichnungen habe ich dann das Problem erkannt:
Es wird nach einem groupwrite ein weiteres ACK gesendet, allerdings mit der Eigenschaft "Repeat on Error: Yes"
Dieses erneute Senden eines Acknowledges brint die calimero lib aus dem Tritt und die Verbindung wird abgebrochen.
Das Ganze habe ich dann auch mal bei der calimero lib gemeldet:
https://github.com/calimero-project/cal ... /issues/96
Dort wure mir dann die Codestelle aufgezeigt, die bei erneutem ACK Empfang das disconnect einleitet.
Daraufhin habe ich die calimero lib als Projektdateien mit eingefügt und die Stelle auskommentiert.
Nun gibt es zwar diese Sicherheit nicht mehr, dass im Falle eines offnen Endpoints dieser geschlossen wird, sobald ein ACK empfangen wird, aber dafür funktioniert der Bus Updater nun problemlos (auch am produktiven KNX Bus).
Eventuell wächst daraus ja auch noch eine Änderung der calimero lib, aber das weiß ich natürlich nicht.
Ich habe mir mal die Freiheit genommen, den Bus Updater mit seinen Eigenschaften im neuen Wiki zu beschreiben:
https://selfbus.org/wiki/software/tools ... dater-tool
Die neue Version ist hier im Git zu finden.
Das bestehende Problem mit der Anfangsadresse 0x2000 für die Release Version besteht zwar immer noch, aber so kann man den Updater bereits verwenden.
Grüße,
Olli