Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Softwareupdate im Betrieb per RS485 Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Wolfgang - 8.02.2011 11:56)
Wolfgang nutzt:  CC1-Station V1.1, Open-Mini, Open-Midi
Hallo zusammen,
ich wollte hier mal ein paar Gedanken zu einem Problem los werden, das mich beschäftigt:


Softwareupdate im Betrieb ohne Zugang zum System (kein Reset, kein Taste drücken)

Wer Software schreibt weiß das diese nur selten Fehlerfrei und fast nie fertig wird.
Es gibt also immer mal was zu Ändern oder zu Erweitern.
Daher stellte sich mir die Frage nach einem Softwareupdate (oder Teilupdate) per Applikation im Betrieb.


Die Situation:
Viele OpenMidi per RS485 und ESCI-Schnittstelle mit adressiertem Protokoll verbunden.
Die Systeme sind außerdem schwer zugänglich.

Ich denke da folgende Lösung und möchte diese hier kurz Skizzieren.
Evtl. kann es ja auch jemand anderes gebrauchen oder hat noch Ideen oder Anregungen dazu.


Meine bisherigen Versuche dazu. (schon kurz probiert und erfolgreich getestet)

1. Der vordere Teil des Basic-Programms wird fest und nicht updatefähig sein.(durch dummys auf eine 64Bytegrenze aufgefüllt)
Er enthält Empfangsroutinen und Flash-Schreibroutinen.

2. per RS485 werden immer 64 Byte (größe einer Flash-Page) mit der Zieladr. und einer Checksum übertragen

Dieser Block wird dann per
Open for Write
und setzen der Filepointer dFILEPOSh/dFILEPOSl auf die übertragene Adr,
mit print# @p :p=p+1 geschrieben.

Dies wird dann evtl. mit mehreren weiteren Blocken wiederholt.
Am Ende wird natürlich der Filepointer wieder zurück gestellt.


3. Nach einer neuen Softwareversion müssen durch
Open for Read und Input# die Daten in ein File geschrieben werden,
um die 64 Byte Blöcke zu generieren.


Soweit der Plan.
Die Frage ist nun: Was für Probleme könnten dabei entstehen?
Wie stellt die OM nach dem Start den begin des Files fest? Und wie das Ende?
Was ist wenn das neue Programm (was wohl zu erwarten ist) größer als das alte ist?

Ich hoffe ich konnte den einen oder anderen mit meinen Gedanken anregen und würde mich über Kommentare dazu freuen.

Viel Spass noch
bis dann
Gruß
Wolfgang

 Antwort schreiben

Bisherige Antworten: