embedded Update konzepte

Gast #2438208
Lesenswert?
• ▲
▼
Hallo!

ich bin gerade am recherchieren für meine Bachelorarbeit, bei welcher es 
darum geht einen Überblick über verschiedene Update-Konzepte, 
Bibliotheken und Tools für Embedded Systems zu geben.

Da ich über Dr. Google nur mäßig Informationen erhalte, wollte ich 
wissen, ob jemand aus dem Umfeld schon erfahrungen sammeln hat können!

Eine der möglichkeiten ist das Updaten des Programmcodes über den 
Bootloader. Dabei stellt sich mir trotzdem die Frage, ob es nicht so auf 
die Art 0815 Schemen gibt, an die man sich halten kann um sein eigenes 
Update-System zu entwickeln.

Weitere Fragen wären z.B.
- welche Möglichkeiten gibt es, ein Update anzustoßen?
- sind incrementelle Updates möglich? Bzw. ja, sind sie - nur wie ist 
bei der Implementierung vorzugehen?
- Wie kann sichergestellt werden, ob das Update erfolgreich war bzw. das 
System in den Ausgangszustand (vor Update) zurückzusetzen wenn ein 
Fehler auftritt (unterbrochene Versorgung während Update)


Seit kurzem ist das .Net Microframework 4.2 verfügbar. Lt. Releasenote 
soll es 'Remote Firmware Updates' unterstützen. Hat hier schon jemand 
erste Erfahrungen sammeln können?


Ich wäre sehr dankbar für ein paar Anregungen und vlt. auch eigene 
Erfahrungen!

Vielen Dank im vorraus,
Stefan
Gast #2438229
Lesenswert?
• ▲
▼
@ Stefan: sag mir bitte wo dieser Schrott im Embedded Bereich eingesetzt 
wird?

Weitere Fragen wären z.B.
- welche Möglichkeiten gibt es, ein Update anzustoßen?
- sind incrementelle Updates möglich? Bzw. ja, sind sie - nur wie ist
bei der Implementierung vorzugehen?
- Wie kann sichergestellt werden, ob das Update erfolgreich war bzw. das
System in den Ausgangszustand (vor Update) zurückzusetzen wenn ein
Fehler auftritt (unterbrochene Versorgung während Update)


Hier ist ein gewöhnlicher (recht sicherer) Ablauf:

- Zum Hex File eine Header Datei bilden, und die Infos
- Code in einen Speicher downloaden (SPI Flash etc.)
- Flag "neue Firmware verfügbar" im gleich Speicher setzten (falls 
erfolgreich)
- uC mittels Watchdog abstürzen lassen
- im Bootloader Modus prüfen ob Flag "neue Firmware verfügbar" gesetzt 
ist, Flag löschen und mit dem Update beginnen.
- Update erfolgreich (CRC o.ä.) -> zum Programmcode springen, wenn nein 
aus dem SPI Speicher die letzte funktionierende Version lesen und den uC 
flashen.
Gast #2438270
Lesenswert?
• ▲
▼
♪Geist schrieb:
> - Update erfolgreich (CRC o.ä.) -> zum Programmcode springen, wenn nein
> aus dem SPI Speicher die letzte funktionierende Version lesen und den uC
> flashen.

das setzt aber vorraus, dass ich den doppelten Speicher brauche, was ja 
bekanntermaßen in embedded systemen eher eine deutliche Einschränkung 
darstellt.

um deine Frage zu beantworten:
diesen 'Schrott' kann man sehr wohl auch in diesem Bereich brauchen. Hat 
man z.B. die Möglichkeit, partielle Updates zu fahren, belastet man den 
Speicher nicht mit unnötigen Überschreibeoperationen, das Update dauert 
wesentlich kürzer... nur ein paar Punkte.

Aber vielen Dank für deine rasche Antwort! und deinen Ablauf! :)

thx

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.