DE102021202029A1 - Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens - Google Patents

Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens Download PDF

Info

Publication number
DE102021202029A1
DE102021202029A1 DE102021202029.1A DE102021202029A DE102021202029A1 DE 102021202029 A1 DE102021202029 A1 DE 102021202029A1 DE 102021202029 A DE102021202029 A DE 102021202029A DE 102021202029 A1 DE102021202029 A1 DE 102021202029A1
Authority
DE
Germany
Prior art keywords
firmware
data
update
electronic device
data packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021202029.1A
Other languages
English (en)
Inventor
Heinz Haeberle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021202029.1A priority Critical patent/DE102021202029A1/de
Priority to EP22712522.6A priority patent/EP4302182A1/de
Priority to CN202280018673.2A priority patent/CN116964555A/zh
Priority to PCT/EP2022/054608 priority patent/WO2022184534A1/de
Publication of DE102021202029A1 publication Critical patent/DE102021202029A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung geht aus von einem Verfahren zu einem Erstellen von Aktualisierungsdaten (12) für eine Firmware (14) einer Elektronikvorrichtung, mit zumindest einem Unterteilungsschritt (18), mittels welchem zumindest eine Zielversion (20) der Firmware (14) in zumindest zwei Datenpakete (22, 24, 26) unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten (12) hinzugefügt werden.Es wird vorgeschlagen, dass das Verfahren zumindest einen Sicherungsschritt (28) umfasst, in welchem zumindest einem der Datenpakete (22, 24, 26) eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers (30, 30', 30", 32, 32', 32") zugeordnet wird, welcher zu einem Dokumentieren einer zumindest teilweise durchgeführten Aktualisierung der Firmware (14) mit zumindest einem der Datenpakete (22, 24, 26) vorgesehen ist.

Description

  • Stand der Technik
  • Es ist bereits ein Verfahren zu einem Erstellen von Aktualisierungsdaten für eine Firmware einer Elektronikvorrichtung, mit zumindest einem Unterteilungsschritt, mittels welchem zumindest eine Zielversion der Firmware in zumindest zwei Datenpakete unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten hinzugefügt werden, vorgeschlagen worden.
  • Offenbarung der Erfindung
  • Die Erfindung geht aus von einem Verfahren zu einem Erstellen von Aktualisierungsdaten für eine Firmware einer Elektronikvorrichtung, mit zumindest einem Unterteilungsschritt, mittels welchem zumindest eine Zielversion der Firmware in zumindest zwei Datenpakete unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten hinzugefügt werden.
  • Es wird vorgeschlagen, dass das Verfahren zumindest einen Sicherungsschritt umfasst, in welchem zumindest einem der Datenpakete eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers zugeordnet wird, welcher zu einem Dokumentieren einer zumindest teilweise durchgeführten Aktualisierung der Firmware mit zumindest einem der Datenpakete vorgesehen ist. Die Elektronikvorrichtung kann als ein eigenständiges Gerät, beispielsweise als Wärmebildkamera, als Ortungsgerät, als Fahrradcomputer, als Kommunikationsgerät, Wearable oder dergleichen, oder als eingebettetes System, insbesondere eines Haushaltsgeräts, eines Fahrzeugs, einer Industrieanlage, oder dergleichen ausgebildet sein. Die Elektronikvorrichtung umfasst insbesondere einen persistenten Datenspeicher, in welchem die Firmware abgespeichert ist. Der Begriff „persistent“ soll insbesondere im informationstechnischen Sinne verstanden werden, insbesondere als nicht unkontrolliert veränderbar bzw. nur kontrolliert veränderbar. Insbesondere bleiben Daten in dem persistenten Datenspeicher bei Ende eines Programms oder bei einer Stromunterbrechung erhalten. Der persistente Datenspeicher ist insbesondere mehrfach beschreibbar. Insbesondere kann der persistente Datenspeicher, beispielsweise durch eine Anweisung von einem Programm oder einem Benutzer, aktiv gelöscht werden. Die Aktualisierungsdaten sind insbesondere dazu vorgesehen, die in dem Datenspeicher gespeicherte Firmware zu verändern. Eine Änderung der Firmware mittels der Aktualisierungsdaten kann insbesondere ein Upgrade einer bisherigen Version der Firmware, eine Modifikation der bisherigen Version, insbesondere ein Hinzufügen oder Löschen von optionalen Zusatzmodulen, der Firmware, ein Downgrade der bisherigen Version der Firmware oder einen Austausch der Firmware mit einer anderen Firmware umfassen. Vorzugsweise sind die Aktualisierungsdaten dazu vorgesehen, die bisherige Version der Firmware durch die Zielversion der Firmware zu ersetzen.
  • Insbesondere umfassen die Datenpakete jeweils einen Teil der Zielversion. Eine Unterteilung der Zielversion in Datenpakete ist insbesondere zu einer unabhängigen Verarbeitung, insbesondere durch die Elektronikvorrichtung, der Datenpakete voneinander vorgesehen. Eine Verarbeitung mehrerer der Datenpakete durch die Elektronikvorrichtung kann, insbesondere abhängig von einer Prozessorarchitektur der Elektronikvorrichtung, sequentiell oder parallel erfolgen. Die Datenpakete können gleich groß oder unterschiedlich groß ausgebildet sein. Der Unterteilungsschritt erfolgt vorzugsweise automatisch durch ein Computersystem. Den Aktualisierungsdaten werden vorzugsweise in zumindest einem Verfahrensschritt, insbesondere durch das Computersystem, neben den Datenpaketen Anweisungen zur Verarbeitung der Datenpakete durch die Elektronikvorrichtung, insbesondere die Sicherungsanweisung, hinzugefügt. Die Anweisungen, insbesondere die Sicherungsanweisung, werden vorzugsweise in einer Assemblersprache erzeugt. Optional umfassen die Aktualisierungsdaten Metadaten, insbesondere eine Manifestdatei, zu einer Dokumentation der auf die Datenpakete verteilten Zielversion. Vorzugsweise wird jedem der Datenpakete zumindest eine Sicherungsanweisung zugeordnet. Alternativ wird mehreren Datenpaketen, insbesondere nur, eine Sicherungsanweisung zugeordnet. Optional wird dem letzten zu verarbeitenden Datenpaket anstelle der Sicherungsanweisung eine Resetanweisung zugeordnet, welche bei Ausführung alle bereits gesetzten persistenten Fortschrittsmarker und/oder die auf der Elektronikvorrichtung verbleibenden Aktualisierungsdaten löscht oder zu einem Löschen oder Überschreiben freigibt. Vorzugsweise gibt die Sicherungsanweisung vor, dass der persistente Fortschrittsmarker in einen persistenten Datenspeicher, insbesondere in den persistenten Datenspeicher der Elektronikvorrichtung, geschrieben wird. Die Sicherungsanweisung gibt insbesondere vor, dass der persistente Fortschrittsmarker gesetzt wird, wenn ein Verarbeitungsschritt einer Aktualisierung mittels des entsprechenden Datenpakets teilweise oder vollständig abgeschlossen ist. Beispiele für Verarbeitungsschritte einer Aktualisierung können beispielsweise umfassen, ein Kopieren oder Verschieben des Datenpakets in einen Speicherbereich des persistenten Datenspeicherns, ein Modifizieren des Datenpakets, ein Aufspalten des Datenpakets, ein Zusammenführen mehrerer der Datenpakete oder eines der Datenpakete mit anderen Daten, ein Überschreiben der Firmware mit dem Datenpaket oder dergleichen.
  • Der Sicherungsanweisung ist insbesondere dazu vorgesehen, von einem Bootloader der Elektronikvorrichtung ausgeführt zu werden. Vorzugsweise gibt die Sicherungsanweisung insbesondere vor, dass der persistente Fortschrittsmarker in einen Markierungsbereich des persistenten Datenspeichers geschrieben wird, welcher bei einer Inbetriebnahme der Elektronikvorrichtung von dem Bootloader der Elektronikvorrichtung ausgelesen wird. Insbesondere ist der persistente Fortschrittsmarker dazu vorgesehen, dem Bootloader mitzuteilen, welche Verarbeitungsschritte bereits ausgeführt wurden oder zumindest welches der letzte Verarbeitungsschritt war, der abgeschlossen wurde. Der persistente Fortschrittsmarker kann als zumindest ein, insbesondere einzelnes, Bit, als zumindest ein, insbesondere einzelnes, Byte oder als komplexerer Datentyp ausgebildet sein. Vorzugsweise geben Sicherungsanweisungen zu verschiedenen Datenpaketen denselben Markierungsbereich zu einem Setzen des jeweiligen persistenten Fortschrittsmarkers vor, insbesondere sodass anhand der Anzahl an gesetzten persistenten Fortschrittsmarkern auf einen Fortschritt der Aktualisierung geschlossen werden kann. Alternativ geben die Sicherungsanweisungen vor, dass verschiedene Fortschrittsmarker in verschiedenen Speicherbereichen des persistenten Datenspeichers gespeichert werden, insbesondere sodass ein jeweiliger Fortschritt einer Aktualisierung mit verschiedenen Datenpaketen unabhängig voneinander dokumentiert wird.
  • Vorzugsweise wird das Verfahren durch ein Datenerzeugungsprogramm zumindest im Wesentlichen vollständig automatisiert durchgeführt. Das Datenerzeugungsprogramm umfasst insbesondere Befehle, die bei der Ausführung des Datenerzeugungsprogramms durch das Computersystem dieses veranlassen, die Aktualisierungsdaten für die Firmware einer Elektronikvorrichtung zu erstellen. Das Datenerzeugungsprogramm umfasst insbesondere Befehle, in zumindest dem Unterteilungsschritt zumindest die Zielversion der Firmware in zumindest zwei Datenpakete aufzuteilen und den Aktualisierungsdaten hinzuzufügen. Das Datenerzeugungsprogramm umfasst insbesondere Befehle, in zumindest dem Sicherungsschritt zumindest einem der Datenpakete eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers zuzuordnen, welcher zu einem Dokumentieren einer zumindest teilweise durchgeführten Aktualisierung der Firmware mit zumindest einem der Datenpakete vorgesehen ist. Optional wird eine Kontrolle des Verfahrens, insbesondere eine Qualitätskontrolle und/oder ein Testen der mit dem Verfahren erzeugten Aktualisierungsdaten, von einem Benutzer durchgeführt. Insbesondere stellt ein Programmierer die Anweisungen, insbesondere die Sicherungsanweisung, als standardisierte Module zur Verfügung. Vorzugsweise stellt der Computer die standardisierten Module automatisch zusammen, insbesondere in Abhängigkeit von der Anzahl der Datenpakete, welche in dem Unterteilungsschritt erzeugt wurden.
  • Durch die erfindungsgemäße Ausgestaltung des Verfahrens können Aktualisierungsdaten erstellt werden, welche eine vorteilhaft sichere Aktualisierung der Firmware ermöglichen. Insbesondere kann vorteilhaft ein Fortschritt der Aktualisierung dokumentiert werden. Insbesondere kann ein Risiko, die Firmware und die Elektronikvorrichtung durch eine nur teilweise durchgeführte, insbesondere unterbrochene, Aktualisierung funktionsunfähig zu machen, vorteilhaft gering gehalten werden. Insbesondere kann die Aktualisierung nach einer Unterbrechung vorteilhaft an dem zuletzt abgeschlossenen und dokumentierten Verarbeitungsschritt wiederaufgenommen werden. Insbesondere kann auf eine Wiederholung der Aktualisierung von Anfang an verzichtet werden. Insbesondere kann die Aktualisierung auch nach einer Unterbrechung vorteilhaft schnell abgeschlossen werden.
  • Weiter wird vorgeschlagen, dass das Verfahren zumindest einen Vergleichsschritt umfasst, bei welchem zumindest eines der Datenpakete derart generiert wird, dass es Unterschiede zwischen zwei Programmversionen der Firmware umfasst. Vorzugsweise werden in dem Vergleichsschritt die Unterschiede zwischen einer Kopie der bisherigen Version und der Zielversion ermittelt. Bevorzugt wird der Vergleichsschritt mittels eines diff-Algorithmus, insbesondere diff, gdiff, vcdiff, bsdiff oder dergleichen, ausgeführt. Der Vergleichsschritt kann insbesondere zeilenweise oder bitweise durchgeführt werden. Vorzugsweise wird in dem Unterteilungsschritt die Zielversion und die Kopie der bisherigen Version jeweils in Datenpakete aufgeteilt. Insbesondere wird in dem Vergleichsschritt jeweils eines der Datenpakete der Zielversion und eines der Datenpakete der bisherigen Version miteinander verglichen. Insbesondere umfasst zumindest eines der Datenpakete ein Delta-Update der Firmware. Alternativ werden die Programmversionen zuerst miteinander verglichen und anschließend in die Datenpakete aufgeteilt. Alternativ enthält eine Gesamtheit der Datenpakete die Zielversion, insbesondere in aufgeteilter Form, vollständig, insbesondere in einem komprimierten oder unkomprimierten Zustand. Durch die erfindungsgemäße Ausgestaltung kann ein benötigter Speicherplatz für die Aktualisierungsdaten, insbesondere die Datenpakete, vorteilhaft klein gehalten werden. Insbesondere können Aktualisierungsdaten vorteilhaft für Elektrovorrichtungen zur Verfügung gestellt werden, welche eine freie Speicherkapazität zur Verfügung haben, der kleiner ist als ein Speicherverbrauch der Zielversion.
  • Ferner wird vorgeschlagen, dass die Sicherungsanweisung als Teil eines von einer virtuellen Maschine ausführbaren Aktualisierungsprogramms erstellt wird. Vorzugsweise umfasst das Aktualisierungsprogramm zumindest die Sicherungsanweisung. Das Aktualisierungsprogramm umfasst vorzugsweise alle von der Elektronikvorrichtung auszuführenden Verarbeitungsschritte der Datenpakete. Vorzugsweise umfasst das Aktualisierungsprogramm Anweisungen zu einer Erstellung der Zielversion in dem persistenten Datenspeicher der Elektronikvorrichtung durch einen Vergleich der Datenpakete mit der bisherigen Version. Das Aktualisierungsprogramm wird in zumindest einem Verfahrensschritt vorzugsweise den Aktualisierungsdaten hinzugefügt. Insbesondere wird das Aktualisierungsprogramm zusammen mit den Datenpaketen in einem Bereitstellungsschritt des Verfahrens zur Verfügung gestellt, beispielsweise auf einen Server hochgeladen. Alternativ ist das Aktualisierungsprogramm in dem Bootloader hartcodiert. Vorzugsweise ist die virtuelle Maschine auf der Elektronikvorrichtung implementiert. Besonders bevorzugt ist die virtuelle Maschine in dem Bootloader der Elektronikvorrichtung implementiert. Alternativ ist die virtuelle Maschine Teil der Firmware, wobei die virtuelle Maschine insbesondere auf einer/einem von der restlichen Firmware gesonderten Partition oder Sektor des persistenten Datenspeichers gespeichert ist. Durch die erfindungsgemäße Ausgestaltung können Aktualisierungsdaten erstellt werden, welche vorteilhaft unabhängig von einem Aktualisierungsalgorithmus der Elektronikvorrichtung gehalten werden können. Insbesondere kann eine Methode der Aktualisierung, beispielsweise als Delta-Update oder als vollständiger Austausch, vorteilhaft flexibel geändert werden und kann insbesondere vorteilhaft spät, insbesondere nach Fertigstellung der Zielversion, festgelegt werden. Darüber hinaus kann ein Speicherbedarf des Bootloaders vorteilhaft klein gehalten werden.
  • Weiterhin wird vorgeschlagen, dass zumindest einem, insbesondere jedem, der Datenpakete zumindest zwei Sicherungsanweisungen zu einem Setzen zumindest je eines persistenten Fortschrittsmarkers zugeordnet werden. Vorzugsweise wird dem zumindest einen Datenpaket als Sicherungsanweisung eine Abschlusssicherungsanweisung zugeordnet, welche einen Abschluss einer Verarbeitung des Datenpakets dokumentiert. Insbesondere gibt die Abschlusssicherungsanweisung vor, dass einer der persistenten Fortschrittsmarker nach einem abgeschlossenen Überschreiben der bisherigen Version der Firmware mit dem Datenpaket gesetzt wird. Vorzugsweise wird dem zumindest einen Datenpaket zumindest als Sicherungsanweisung eine Zwischensicherungsanweisung zugeordnet. Insbesondere gibt die Zwischensicherungsanweisung vor, dass einer der persistenten Fortschrittsmarker nach einer Modifizierung oder Verschiebung des Datenpakets, und insbesondere vor einem Überschreiben der bisherigen Version, gesetzt wird. Beispielsweise ist die Zwischensicherungsanweisung dazu vorgesehen, nach einer Generierung der Zielversion aus der bisherigen Version und dem Datenpaket in einem Zwischenspeicherbereich des persistenten Datenspeichers ausgeführt zu werden. Durch die erfindungsgemäße Ausgestaltung kann ein Fortschritt einer Aktualisierung der Firmware vorteilhaft kleinteilig dokumentiert werden. Insbesondere müssen vorteilhaft wenige Verarbeitungsschritte bei einer Unterbrechung der Aktualisierung wiederholt werden. Ferner kann ein Risiko einer Kompromittierung der Firmware vorteilhaft kleingehalten werden. Nach einer Unterbrechung einer Aktualisierung kann insbesondere ein mit einem der Datenpakte unvollständig generierter Abschnitt der Zielversion in dem Zwischenspeicherbereich vorliegen oder eine mit einem der Datenpakete unvollständig überschrieben bisherige Version in einem Firmwarespeicherbereich des persistenten Datenspeichers. Durch die erfindungsgemäße Ausgestaltung kann insbesondere ein Risiko vorteilhaft klein gehalten werden, dass diese unvollständigen Daten bei einer Wiederholung der Aktualisierung verwendet werden und dadurch den Zwischenspeicherbereich oder den Firmwarespeicherbereich mit undefinierten Zeichenfolgen füllen. Insbesondere kann erreicht werden, dass auch bei einer Unterbrechung stets zumindest ein vollständiger Abschnitt der Zielversion und/oder der dem Abschnitt der Zielversion entsprechende Abschnitt der bisherigen Version in dem persistenten Datenspeicher vorliegt, auf den bei einer Wiederholung der Aktualisierung zurückgegriffen werden kann.
  • Darüber hinaus wird vorgeschlagen, dass während des Unterteilungsschritts eine Größe der Datenpakete in Abhängigkeit von einer Sektorgröße eines persistenten Datenspeichers der Elektronikvorrichtung gewählt wird. Optional werden die Datenpakete der Zielversion in Abhängigkeit von einer Speicherkapazität des Zwischenspeicherbereichs des persistenten Datenspeichers erstellt. Der Zwischenspeicherbereich kann einen oder mehrere Sektoren des persistenten Datenspeichers umfassen. Insbesondere sind Sektoren des persistenten Datenspeichers unabhängig voneinander löschbar und wiederbeschreibbar. Vorzugsweise ist ein Speicherbedarf der Datenpakete, insbesondere der die Zielversion in einem unkomprimierten Zustand umfassenden Datenpakete, jeweils kleiner oder gleich der Kapazität des Zwischenspeicherbereichs, insbesondere kleiner oder gleich der Sektorgröße, des persistenten Datenspeichers. Durch die erfindungsgemäße Ausgestaltung kann eine auf dem persistenten Datenspeicher zur Verfügung stehende Speicherkapazität vorteilhaft effizient genutzt werden.
  • Des Weiteren wird vorgeschlagen, dass das Verfahren ein die Sicherungsanweisung umfassendes Aktualisierungsprogramm in Abhängigkeit von einem anwendungsspezifischen Modell der Elektronikvorrichtung erstellt wird. Vorzugsweise umfasst das Modell absolute Speicheradressen des persistenten Datenspeichers, insbesondere des Markierungsbereichs, des Zwischenspeicherbereichs, eines Firmwarespeicherbereichs und/oder eines freien Speicherbereichs des persistenten Datenspeichers. Vorzugsweise umfasst das Modell eine Kopie der auf der Elektronikvorrichtung vorhandenen bisherigen Version. Vorzugsweise umfasst das Modell eine Kopie des auf der Elektronikvorrichtung vorhanden Bootloaders. Vorzugsweise umfasst das Modell eine Kopie oder Simulation der auf der Elektronikvorrichtung implementierten virtuellen Maschine. Das Modell ist insbesondere dazu vorgesehen, die Anweisungen, insbesondere die Sicherungsanweisung, die insbesondere als standardisierte Module zur Verfügung stehen, insbesondere automatisiert, an die Elektronikvorrichtung anzupassen. Durch die erfindungsgemäße Ausgestaltung können die Aktualisierungsdaten vorteilhaft spezifisch auf die Elektronikvorrichtung abgestimmt werden. Insbesondere kann vorteilhaft eine zur Verfügung stehende Speicherkapazität des persistenten Datenspeichers vorteilhaft effektiv genutzt werden. Darüber hinaus können vorteilhaft präzise Tests des Aktualisierungsprogramms durchgeführt werden. Insbesondere kann ein Risiko, die Elektronikvorrichtung mittels des Aktualisierungsprogramms funktionsunfähig zu machen, vorteilhaft gering gehalten werden.
  • Weiter geht die Erfindung aus von einem Verfahren zu einem Überschreiben einer, insbesondere der bereits genannten, Firmware einer, insbesondere der bereits genannten, Elektronikvorrichtung, insbesondere zu einer Verarbeitung von, insbesondere von den bereits genannten, mit einem erfindungsgemäßen Verfahren zum Erstellen von Aktualisierungsdaten erstellten Aktualisierungsdaten, wobei das Verfahren zum Überschreiben der Firmware zumindest einen Speicherschritt umfasst, in welchem zumindest eine, insbesondere die bereits genannte, Zielversion der Firmware als zumindest zwei, insbesondere die bereits genannten, Datenpakete in einem, insbesondere dem bereits genannten, persistenten Datenspeicher der Elektronikvorrichtung abgelegt wird. Es wird vorgeschlagen, dass das Verfahren zumindest einen Markierungsschritt aufweist, in welchem zumindest ein persistenter Fortschrittsmarker gesetzt wird, welcher eine zumindest teilweise durchgeführte Aktualisierung der Firmware mit zumindest einem der Datenpakete dokumentiert. Die Aktualisierungsdaten, insbesondere zumindest die Datenpakete, die Sicherungsanweisung und/oder das Aktualisierungsprogramm, werden insbesondere von einer Datenschnittstelle der Elektronikvorrichtung empfangen oder abgefragt. Vorzugsweise werden in dem Speicherschritt die Aktualisierungsdaten, insbesondere zumindest die Datenpakete, die Sicherungsanweisung und/oder das Aktualisierungsprogramm, in den freien Speicherbereich des persistenten Datenspeichers gespeichert. Optional werden die unterschiedlichen Datenpakete in unterschiedliche Sektoren des persistenten Datenspeichers abgelegt. Vorzugsweise umfassen die Aktualisierungsdaten zumindest eine Anweisung an die Elektronikvorrichtung, dass bei erfolgreichem Abschluss des Speicherschritts die Elektronikvorrichtung einen Aktualisierungsmarker in den Markierungsbereich setzt. Insbesondere veranlasst der Aktualisierungsmarker den Bootloader bei einem Neustart der Elektronikvorrichtung, die abgespeicherten Aktualisierungsdaten, insbesondere das Aktualisierungsprogramm, auszulesen, insbesondere anstelle eines Startens der Firmware. Vorzugsweise führt der Bootloader das, insbesondere in dem freien Speicherbereich abgespeicherte, Aktualisierungsprogramm nach einem Neustart der Elektronikvorrichtung aus. Vorzugsweise verarbeitet der Bootloader die Datenpakete. Insbesondere überschreibt der Bootloader die bisherige Version der Firmware mit den Datenpaketen. Vorzugsweise führt der Bootloader in dem Markierungsschritt die Sicherungsanweisung aus und setzt insbesondere einen der persistenten Fortschrittsmarker in den Markierungsbereich. Wird das Aktualisierungsprogramm unterbrochen und neugestartet, setzt der Bootloader das Aktualisierungsprogramm vorzugsweise an der Stelle fort, welche durch den zuletzt gesetzten persistenten Fortschrittsmarker markiert wird. Durch die erfindungsgemäße Ausgestaltung kann vorteilhaft ein Fortschritt der Aktualisierung dokumentiert werden. Insbesondere kann ein Risiko, die Firmware und die Elektronikvorrichtung durch eine nur teilweise durchgeführte, insbesondere unterbrochene, Aktualisierung funktionsunfähig zu machen, vorteilhaft gering gehalten werden. Insbesondere kann die Aktualisierung nach einer Unterbrechung vorteilhaft an dem zuletzt abgeschlossenen und dokumentierten Verarbeitungsschritt wiederaufgenommen werden. Insbesondere kann auf eine Wiederholung der Aktualisierung von Anfang an verzichtet werden. Insbesondere kann die Aktualisierung auch nach einer Unterbrechung vorteilhaft schnell abgeschlossen werden.
  • Weiterhin wird vorgeschlagen, dass eine, insbesondere die bereits genannte, virtuelle Maschine der Elektronikvorrichtung den Markierungsschritt ausführt. Durch die erfindungsgemäße Ausgestaltung können Aktualisierungsdaten erstellt werden, welche vorteilhaft unabhängig von einem Aktualisierungsalgorithmus der Elektronikvorrichtung gehalten werden können. Insbesondere kann eine Methode der Aktualisierung, beispielsweise als Delta-Update oder als vollständiger Austausch, vorteilhaft flexibel geändert werden und kann insbesondere vorteilhaft spät, insbesondere nach Fertigstellung der Zielversion, festgelegt werden. Darüber hinaus kann ein Speicherbedarf des Bootloaders vorteilhaft klein gehalten werden.
  • Ferner wird vorgeschlagen, dass den zumindest zwei Datenpaketen derselbe persistente Zwischenspeicherbereich der Elektronikvorrichtung zu einem Erstellen eines Teils der Zielversion der Firmware zugeordnet wird. Vorzugsweise gleicht der Bootloader die in dem freien Speicherbereich befindlichen Datenpakete, welche insbesondere die Änderungen der Zielversion gegenüber der bisherigen Version umfassen, mit der bisherigen Version der Firmware in dem Firmwarespeicherbereich ab. Insbesondere führt der Bootloader in einem Durchlauf zu einer Verarbeitung eines der in dem freien Speicherbereich befindlichen Datenpakete dieses Datenpaket mit der in der in dem Firmwarespeicherbereich befindlichen bisherigen Version zu einem Datenpaket der Zielversion zusammen, welches in dem Zwischenspeicherbereich abgespeichert wird. Vorzugsweise führt der Bootloader den Markierungsschritt aus, wenn das Datenpaket mit der Zielversion in dem Zwischenspeicherbereich abgespeichert wurde. Vorzugsweise überschreibt der Bootloader einen Teil der Firmware in dem Firmwarespeicherbereich mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket. Vorzugsweise führt der Bootloader einen weiteren Markierungsschritt aus, wenn die Firmware in dem Firmwarespeicherbereich mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket überschrieben wurde. Vorzugsweise löscht der Bootloader den Zwischenspeicherbereich, nachdem das in dem Zwischenspeicherbereich befindliche Datenpaket der Zielversion in den Firmwarespeicherbereich kopiert wurde und nachdem der weitere Markierungsschritt durchgeführt wurde. Insbesondere steht der Zwischenspeicherbereich nach dem weiteren Markierungsschritt für einen weiteren Durchlauf zur Verarbeitung eines weiteren der in dem freien Speicherbereich befindlichen Datenpakete zur Verfügung.
  • Durch die erfindungsgemäße Ausgestaltung kann das Verfahren vorteilhaft auch auf einer Elektronikvorrichtung mit einer geringen Speicherkapazität durchgeführt werden, insbesondere auf einer Elektronikvorrichtung, bei welcher eine Speicherkapazität des freien Speicherbereichs und/oder des Zwischenspeicherbereichs kleiner ist als ein Speicherbedarf der Zielversion der Firmware.
  • Des Weiteren wird vorgeschlagen, dass jedes Datenpaket mit einem unterschiedlich großen Teil der bisherigen Version der Firmware verarbeitet wird. Insbesondere führt der Bootloader in dem weiteren Durchlauf zur Verarbeitung eines weiteren der in dem freien Speicherbereich befindlichen Datenpakete, dieses Datenpaket mit einem noch nicht überschriebenen Teil der in der in dem Firmwarespeicherbereich befindlichen bisherigen Version zu einem weiteren Datenpaket der Zielversion zusammen, welches in dem Zwischenspeicherbereich abgespeichert wird. Vorzugsweise überschreibt der Bootloader einen noch nicht überschriebenen Teil der Firmware in dem Firmwarespeicherbereich mit dem in dem Zwischenspeicherbereich befindlichen weiteren Datenpaket der Zielversion. Insbesondere wird mit jedem Durchlauf zur Verarbeitung eines der Datenpakete, der mit dem nächsten Datenpaket abzugleichende Teil der in dem Firmwarespeicherbereich befindlichen bisherigen Version kleiner. Durch die erfindungsgemäße Ausgestaltung kann das Verfahren vorteilhaft effizient durchgeführt werden.
  • Darüber hinaus wird vorgeschlagen, dass der persistente Fortschrittsmarker in zumindest einem Verfahrensschritt ein Ausführen der Firmware verhindert. Vorzugsweise startet der Bootloader die Firmware nicht, solange in dem Markierungsbereich zumindest ein Marker, insbesondere der persistente Fortschrittsmarker, gesetzt ist. Insbesondere startet der Bootloader das Aktualisierungsprogramm, wenn in dem Markierungsbereich zumindest ein Marker, insbesondere der persistente Fortschrittsmarker, gesetzt ist. Insbesondere verhindert der persistente Fortschrittsmarker ein Ausführen der nur teilweise überschriebenen, und insbesondere dadurch funktionsunfähigen oder unzuverlässig funktionierenden, Firmware. Vorzugsweise startet der Bootloader die Firmware, wenn der Markierungsbereich leer ist oder bereits alle zu setzenden persistenten Fortschrittsmarker aufweist. Optional füllt der letzte zu setzende persistente Fortschrittsmarker eine verbleibende Kapazität des Markierungsbereichs vollständig aus. Vorzugsweise bringt der letzte zu setzende persistente Fortschrittsmarker einen in dem Markierungsbereich gespeicherten Wert auf einen Schlüsselwert, der den Bootloader bei einem Neustart der Elektronikvorrichtung dazu veranlasst, die Firmware, insbesondere die in dem Firmwarespeicherbereich gespeicherte Zielversion, auszuführen und insbesondere die in dem freien Speicherbereich gespeicherten Aktualisierungsdaten zu einem Löschen freizugeben. Durch die erfindungsgemäße Ausgestaltung kann ein Risiko eines Fehlers aufgrund nicht kompatibler Teile der bisherigen Version der Firmware und der Zielversion der Firmware vorteilhaft gering gehalten werden. Insbesondere kann ein Risiko einer Korruption der Aktualisierungsdaten in dem freien Speicherbereich vorteilhaft gering gehalten werden.
  • Weiter wird vorgeschlagen, dass in zumindest einem Verfahrensschritt dasjenige der Datenpakete, welches als Nächstes verarbeitet wird, in Abhängigkeit von dem persistenten Fortschrittsmarker ausgewählt wird. Insbesondere ermittelt der Bootloader bei einem Starten, insbesondere einem Neustarten, des Aktualisierungsprogramms anhand des persistenten Fortschrittsmarkers, welches das zuletzt verarbeitete Datenpaket ist. Insbesondere ermittelt der Bootloader mittels des persistenten Fortschrittsmarkers, ob die in dem Firmwarespeicherbereich befindliche bisherige Version mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket der Zielversion überschrieben wurde. Wurde die in dem Firmwarespeicherbereich befindliche bisherige Version mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket der Zielversion überschrieben, setzt der Bootloader eine Verarbeitung mit dem nächsten Datenpaket in der Reihe fort. Wurde die in dem Firmwarespeicherbereich befindliche bisherige Version noch nicht mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket der Zielversion überschrieben, setzt der Bootloader mit einem Überschreiben der in dem Firmwarespeicherbereich befindlichen bisherigen Version mit dem in dem Zwischenspeicherbereich befindlichen Datenpaket der Zielversion fort. Umfasst der Markierungsbereich nur den Aktualisierungsmarker, beginnt der Bootloader vorzugsweise mit einer Verarbeitung eines ersten der Datenpakete. Durch die erfindungsgemäße Ausgestaltung kann insbesondere nach einem Abbruch des Aktualisierungsprogramms oder nach einer Stromunterbrechung das Aktualisierungsprogramm vorteilhaft wieder an der zuletzt mit dem persistenten Fortschrittmarker markierten Stelle aufgenommen werden. Insbesondere kann eine vorteilhaft hohe Stromausfallsicherheit erreicht werden. Insbesondere kann auf eine vollständige Wiederholung des Aktualisierungsprogramms von vorne verzichtet werden. Insbesondere kann das Aktualisierungsprogramm auch bei einer Unterbrechung vorteilhaft schnell abgeschlossen werden.
  • Darüber hinaus geht die Erfindung von einem Verfahren zu einem Aktualisieren einer, insbesondere der bereits genannten, Firmware einer, insbesondere der bereits genannten, Elektronikvorrichtung aus, wobei in zumindest einer Verfahrensphase Aktualisierungsdaten erstellt werden, insbesondere gemäß einem erfindungsgemäßen Verfahren zum Erstellen von Aktualisierungsdaten, und mit zumindest einer Verfahrensphase zu einem Überschreiben der Firmware, insbesondere gemäß einem erfindungsgemäßen Verfahren zum Überschreiben der Firmware, wobei das Verfahren zu einem Aktualisieren der Firmware zumindest einen, insbesondere den bereits genannten, Unterteilungsschritt umfasst, mittels welchem zumindest eine, insbesondere die bereits genannte, Zielversion der Firmware in zumindest zwei, insbesondere die bereits genannten, Datenpakete unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten hinzugefügt werden, und mit zumindest einem, insbesondere dem bereits genannten, Speicherschritt, in welchem zumindest die Zielversion der Firmware in Form der zumindest zwei Datenpakete in einem, insbesondere dem bereits genannten, persistenten Datenspeicher der Elektronikvorrichtung abgelegt wird. Es wird vorgeschlagen, dass das Verfahren zum Aktualisieren zumindest einen, insbesondere den bereits genannten, Sicherungsschritt aufweist, in welchem zumindest einem der Datenpakete eine, insbesondere die bereits genannte, Sicherungsanweisung zu einem Setzen zumindest eines, insbesondere des bereits genannten, persistenten Fortschrittsmarkers zugeordnet wird, welcher eine zumindest teilweise durchgeführte Aktualisierung der Firmware dokumentiert, und zumindest einen, insbesondere den bereits genannten, Markierungsschritt, in welchem der zumindest eine persistente Fortschrittsmarker gesetzt wird. Durch die erfindungsgemäße Ausgestaltung können Aktualisierungsdaten erstellt werden, welche eine vorteilhaft sichere Aktualisierung der Firmware ermöglichen. Insbesondere kann vorteilhaft ein Fortschritt der Aktualisierung dokumentiert werden. Insbesondere kann ein Risiko, die Firmware und die Elektronikvorrichtung durch eine nur teilweise durchgeführte, insbesondere unterbrochene, Aktualisierung funktionsunfähig zu machen, vorteilhaft gering gehalten werden. Insbesondere kann die Aktualisierung nach einer Unterbrechung vorteilhaft an dem zuletzt abgeschlossenen und dokumentierten Verarbeitungsschritt wiederaufgenommen werden. Insbesondere kann auf eine Wiederholung der Aktualisierung von Anfang an verzichtet werden. Insbesondere kann die Aktualisierung auch nach einer Unterbrechung vorteilhaft schnell abgeschlossen werden.
  • Ferner wird eine Elektronikvorrichtung mit zumindest einem persistenten Datenspeicher, einer in dem persistenten Datenspeicher gespeicherten Firmware und zumindest einem Prozessor zu einer Durchführung eines erfindungsgemäßen Verfahrens vorgeschlagen. Der persistenten Datenspeicher ist vorzugsweise als nicht-flüchtiger Datenspeicher ausgebildet. Bevorzugt ist der persistente Datenspeicher als electrically erasble programmable read-only memory (EEPROM) ausgebildet, besonders bevorzugt als Flash-EEPROM. Der persistente Datenspeicher umfasst insbesondere einen Bootloaderspeicherbereich, in welchem der Bootloader abgespeichert ist. Vorzugsweise umfasst der Bootloader die virtuelle Maschine zu einem Ausführen des Aktualisierungsprogramms. Der persistente Datenspeicher umfasst insbesondere den Firmwarespeicherbereich, in welchem die Firmware abgespeichert ist. Der persistente Datenspeicher umfasst vorzugsweise den Zwischenspeicherbereich, insbesondere zu einem Zwischenspeichern von in Verarbeitung befindlichen Daten, insbesondere des in Verarbeitung befindlichen Datenpakets. Vorzugsweise umfasst der persistente Datenspeicher zumindest den freien Speicherbereich, insbesondere zu einem Ablegen von Daten, insbesondere der Aktualisierungsdaten, für eine spätere Verarbeitung. Bevorzugt umfasst der persistente Datenspeicher zumindest den Markierungsbereich, insbesondere zu einer Parameterübergabe an den Bootloader. Der persistente Datenspeicher kann durch einen einzelnen physischen Speicherbaustein implementiert sein oder mehrere physische Speicherbausteine umfassen. Vorzugsweise sind die unterschiedlichen Speicherbereiche in unterschiedlichen Partitionen oder Sektoren desselben physischen Speicherbausteins implementiert oder auf die mehreren physischen Speicherbausteine verteilt. Vorzugsweise umfasst die Elektronikvorrichtung zumindest die Datenschnittstelle, insbesondere zu einem Empfang der Aktualisierungsdaten. Die Datenschnittstelle kann zum Beispiel als Bluetooth-Schnittstelle, insbesondere eine Bluetooth-Low-Energy-Schnittstelle, als ZigBee-Schnittstelle, als Near Field Communication-Schnittstelle (NFC-Schnittstelle), als LAN-Schnittstelle, insbesondere wireless LAN-Schnittstelle, als Worldwide Interoperability for Microwave Access-Schnittstelle (WiMAX-Schnittstelle), als Universal Serial Bus-Schnittstelle (USB-Schnittstelle), als Lightning-Schnittstelle, als Recommended Standard 232-Schnittstelle (RS-232-Schnittstelle) oder dergleichen ausgebildet sein. Durch die erfindungsgemäße Ausgestaltung kann eine Elektronikvorrichtung zur Verfügung gestellt werden, welche ein vorteilhaft geringes Risiko aufweist, durch eine unterbrochene Aktualisierung ihrer Software funktionsunfähig zu werden. Insbesondere kann eine Speicherkapazität des Bootloaderspeicherbereichs vorteilhaft klein gehalten werden.
  • Die erfindungsgemäßen Verfahren und/oder die erfindungsgemäße Elektronikvorrichtung sollen/soll hierbei nicht auf die oben beschriebene Anwendung und Ausführungsform beschränkt sein. Insbesondere können/kann die erfindungsgemäßen Verfahren und/oder die erfindungsgemäße Elektronikvorrichtung zu einer Erfüllung einer hierin beschriebenen Funktionsweise eine von einer hierin genannten Anzahl von einzelnen Elementen, Bauteilen und Einheiten sowie Verfahrensschritten abweichende Anzahl aufweisen. Zudem sollen bei den in dieser Offenbarung angegebenen Wertebereichen auch innerhalb der genannten Grenzen liegende Werte als offenbart und als beliebig einsetzbar gelten.
  • Figurenliste
  • Weitere Vorteile ergeben sich aus der folgenden Zeichnungsbeschreibung. In den Zeichnungen ist ein Ausführungsbeispiel der Erfindung dargestellt. Die Zeichnungen, die Beschreibung und die Ansprüche enthalten zahlreiche Merkmale in Kombination. Der Fachmann wird die Merkmale zweckmäßigerweise auch einzeln betrachten und zu sinnvollen weiteren Kombinationen zusammenfassen.
  • Es zeigen:
    • 1 einen schematischen Ablauf eines erfindungsgemäßen Verfahrens zu einem Aktualisieren einer Firmware einer erfindungsgemäßen Elektronikvorrichtung,
    • 2 eine schematische Darstellung der erfindungsgemäßen Elektronikvorrichtung,
    • 3 ein schematisches Flussdiagramm eines erfindungsgemäßen Verfahrens zu einem Erstellen von Aktualisierungsdaten für die Firmware,
    • 4 ein schematisches Flussdiagramm eines erfindungsgemäßen Verfahrens zu einem Überschreiben der Firmware und
    • 5 einen schematischen Zustandsverlauf eines Datenspeichers der Elektronikvorrichtung während des erfindungsgemäßen Verfahrens zum Überschreiben der Firmware.
  • Beschreibung des Ausführungsbeispiels
  • 1 zeigt einen Ablauf eines Verfahren 56 zu einem Aktualisieren einer Firmware 14 (vgl. 2) einer Elektronikvorrichtung 16. Das Verfahren 56 zum Aktualisieren der Firmware 14 umfasst zumindest eine Verfahrensphase, in welcher Aktualisierungsdaten 12 erstellt werden. Vorzugsweise wird die Verfahrensphase, in welcher Aktualisierungsdaten 12 erstellt werden, gemäß einem Verfahren 10 zu einem Erstellen von Aktualisierungsdaten 12, welches in 3 näher erläutert wird, durchgeführt. Das Verfahren 56 zum Aktualisieren der Firmware 14 umfasst zumindest eine Verfahrensphase zu einem Überschreiben der Firmware 14. Vorzugsweise wird die Verfahrensphase zum Überschreiben der Firmware 14 gemäß einem Verfahren 44 zum Überschreiben der Firmware 14, welches in den 4 und 5 näher erläutert wird, durchgeführt. Die Aktualisierungsdaten 12 werden beispielsweise auf einem Server 60 bereitgestellt. Das Verfahren 56 zum Aktualisieren der Firmware 14 umfasst vorzugsweise eine Versionsabfrage 64 zu einem Abfragen einer bisherigen Version 54 (siehe 3) der Firmware 14. Vorzugsweise umfasst das Verfahren 56 zum Aktualisieren der Firmware 14 eine Aktualisierungsabfrage 66 zu einem Abfragen, insbesondere von dem Server 60, ob eine andere Version der Firmware 14 zur Verfügung steht. Stehen mehrere Versionen der Firmware 14 zur Verfügung, kann eine Zielversion 20 (siehe 3) der Firmware 14 von einem Benutzer oder automatisiert ausgewählt werden. Das Verfahren 56 zum Aktualisieren der Firmware 14 umfasst vorzugsweise einen Download 68 der zu der Zielversion 20 bereitgestellten Aktualisierungsdaten 12. Das Verfahren 56 zum Aktualisieren der Firmware 14 umfasst einen Speicherschritt 46, in welchem insbesondere die Aktualisierungsdaten 12 auf der Elektronikvorrichtung 16 gespeichert werden. Das Verfahren 56 zu einem Aktualisieren einer Firmware 14 umfasst vorzugsweise einen Aktualisierungsstart 70 zu einem Starten der Verfahrensphase zum Überschreiben der Firmware 14, insbesondere des Verfahrens 44 zum Überschreiben der Firmware 14. Der Aktualisierungsstart 70 kann automatisiert gestartet werden oder kann von einem Benutzer über eine Benutzerschnittstelle 62 bestätigt werden. Die Benutzerschnittstelle 62 kann Teil der Elektronikvorrichtung 16 sein oder ein eigenständiges Gerät sein, welches zumindest eine Kommunikationsschnittstelle zu einer Kommunikation mit der Elektronikvorrichtung 16 aufweist und optional zu einer Kommunikation mit dem Server 60. Hier ist die Benutzerschnittstelle 62 beispielsweise als mobiles Gerät, insbesondere Smartphone oder Tablet, dargestellt. Die Benutzerschnittstelle 62 umfasst beispielsweise eine Bluetooth-Schnittstelle, insbesondere eine Bluetooth-Low-Energy-Schnittstelle, zu einer Kommunikation mit der Elektronikvorrichtung 16. Die Benutzerschnittstelle 62 umfasst beispielsweise eine Local Area Network-Schnittstelle (LAN-Schnittstelle), insbesondere eine wireless LAN-Schnittstelle, und/oder eine Mobilfunknetzschnittstelle zu einer Kommunikation mit dem Server 60. Die Elektronikvorrichtung 16 ist hier beispielhaft als, insbesondere handhaltbare, Wärmebildkamera dargestellt.
  • Bezüglich weiterer Merkmale des Verfahrens 56 zum Aktualisieren der Firmware 14 sei insbesondere auf die 3 bis 5 und deren Beschreibung verwiesen. Insbesondere sollen alle für das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 und/oder für das Verfahren 44 zum Überschreiben der Firmware 14 offenbarten Merkmale auch für das Verfahren 56 zum Aktualisieren der Firmware 14 als offenbart gelten.
  • 2 zeigt die Elektronikvorrichtung 16. Die Elektronikvorrichtung 16 umfasst zumindest einen persistenten Datenspeicher 40. Die Elektronikvorrichtung 16 umfasst die Firmware 14, insbesondere die bisherige Version 54 der Firmware 14. Die Firmware 14 ist in dem persistenten Datenspeicher 40 gespeichert. Die Elektronikvorrichtung 16 umfasst zumindest einen Prozessor 58. Der Prozessor 58 ist zu einer Durchführung der Verfahrensphase zum Überschreiben der Firmware 14, insbesondere des Verfahrens 44 zum Überschreiben der Firmware 14, vorgesehen. Die Elektronikvorrichtung 16 umfasst insbesondere eine Funktionseinheit 72 zu einer Durchführung einer durch die Elektronikvorrichtung 16 vorgesehenen Hauptfunktion, beispielsweise einen Infrarot-charge-coupled device Sensor (IR-CCD Sensor). Vorzugsweise umfasst die Elektronikvorrichtung 16 zumindest eine Energieversorgung 76, insbesondere einen elektrischen Energiespeicher oder eine leitungsgebundene elektrische Energieversorgung, zu einer Energieversorgung zumindest des Prozessors 58. Bevorzugt umfasst die Elektronikvorrichtung 16 zumindest eine Datenschnittstelle 74, insbesondere zu einem Empfang der Aktualisierungsdaten 12. Beispielsweise ist die Datenschnittstelle 74 als Bluetooth-Schnittstelle, insbesondere als Bluetooth-Low-Energie-Schnittstelle, ausgebildet.
  • Der persistente Datenspeicher 40 umfasst insbesondere einen Markierungsbereich 84. Der persistente Datenspeicher 40 umfasst vorzugsweise einen freien Speicherbereich 82. Bevorzugt umfasst der persistente Datenspeicher 40 einen Zwischenspeicherbereich 52. Der persistente Datenspeicher 40 umfasst insbesondere einen Firmwarespeicherbereich, in welchem die Firmware 14 abgelegt ist. Optional umfasst der persistente Datenspeicher 40 einen Kalibrierungsspeicherbereich, in welchem Kalibrierungsdaten 80 abgespeichert sind. Vorzugsweise umfasst der persistente Datenspeicher 40 einen Bootloaderspeicherbereich, in welchem ein Bootloader 78 der Elektronikvorrichtung 16 abgespeichert ist.
  • 3 zeigt das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 für die Firmware 14 der Elektronikvorrichtung 16. Das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 umfasst zumindest einen Unterteilungsschritt 18. Mittels des Unterteilungsschritts 18 wird zumindest die Zielversion 20 der Firmware 14 in zumindest zwei Datenpakete 22, 24, 26 unterteilt. Insbesondere wird die Zielversion 20 der Firmware 14 und eine Kopie der bisherigen Version 54 der Firmware 14 in mehrere unverarbeitete Datenpakete 22', 22", 24', 24", 26', 26" aufgeteilt. Während des Unterteilungsschritts 18 wird eine Größe der unverarbeiteten Datenpakete22', 22", 24', 24", 26', 26" in Abhängigkeit von einer Sektorgröße des persistenten Datenspeichers 40 der Elektronikvorrichtung 16 gewählt. Insbesondere sind zumindest die unverarbeiteten Datenpakete 22", 24", 26" der Zielversion 20 gleich groß oder kleiner als die Sektorgröße des persistenten Datenspeichers 40. Das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 umfasst zumindest einen Vergleichsschritt 34. Bei dem Vergleichsschritt 34 wird zumindest eines der Datenpakete 22, 24, 26 derart generiert, dass es Unterschiede zwischen zwei Programmversionen, insbesondere der Zielversion 20 und der bisherigen Version 54, der Firmware 14 umfasst. Der Vergleichsschritt 34 wird vorzugsweise mit bsdiff oder einem anderem binären diff-Algorithmus durchgeführt. Vorzugsweise komprimiert der Vergleichsschritt 34 die Datenpakete 22, 24, 26, sodass diese kleiner oder gleich groß den unverarbeiteten Datenpakten 22", 24", 26" der Zielversion 20 sind. Bevorzugt umfasst das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 einen Softwareentwicklungsschritt 86, in welchem ein Aktualisierungsprogramm 38 erstellt wird (vgl. 59). Das Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 umfasst zumindest einen Sicherungsschritt 28. Der Sicherungsschritt 28 ist insbesondere Teil des Softwareentwicklungsschritts 86. Das die Sicherungsanweisung umfassende Aktualisierungsprogramm 38 wird in Abhängigkeit von einem anwendungsspezifischen Modell 42 der Elektronikvorrichtung 16 erstellt. Insbesondere umfasst das Modell 42 absolute Speicheradressen des persistenten Datenspeichers 40, insbesondere des Markierungsbereichs 84, des freien Speicherbereichs 82, des Zwischenspeicherbereichs 52, des Firmwarespeicherbereichs und/oder des Bootloaderspeicherbereichs. Insbesondere werden in dem Softwareentwicklungsschritt 86 Anweisungen zur Verarbeitung der Datenpakete 22, 24, 26 durch die Elektronikvorrichtung 16 dem Aktualisierungsprogramm 38 hinzugefügt. Das Aktualisierungsprogramm 38 ist von einer virtuellen Maschine 36 (siehe 5) der Elektronikvorrichtung 16 ausführbar. Vorzugsweise umfasst das Modell 42 eine weitere virtuelle Maschine, welche die Elektronikvorrichtung 16 emuliert, insbesondere um das Aktualisierungsprogramm 38 zu testen. In dem Sicherungsschritt 28 wird zumindest einem der Datenpakete 22, 24, 26 eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers 30, 30', 30", 32, 32', 32" zugeordnet (vgl. 5). Der Fortschrittsmarker 30, 30', 30", 32, 32', 32" ist zu einem Dokumentieren einer zumindest teilweise durchgeführten Aktualisierung der Firmware 14 mit zumindest einem der Datenpakete 22, 24, 26 vorgesehen. Zumindest einem der, insbesondere allen, Datenpakete 22, 24, 26 werden zumindest zwei Sicherungsanweisungen zu einem Setzen zumindest je eines persistenten Fortschrittsmarkers 30, 30', 30", 32, 32', 32" zugeordnet. Insbesondere umfasst das Aktualisierungsprogramm 38 abwechselnd zumindest eine Anweisung zur Verarbeitung eines der Datenpakete 22, 24, 26 und eine der Sicherungsanweisungen. Insbesondere sind die Sicherungsanweisungen dazu vorgesehen, die zumindest eine zuvor durchgeführte und abgeschlossene Anweisung zur Verarbeitung eines der Datenpakete 22, 24, 26 zu dokumentieren und insbesondere dadurch ein Ergebnis dieser zumindest einen Anweisung zu sichern. Insbesondere werden die Sicherungsanweisungen insbesondere nach Anweisungen zu einem Schreiben auf dem persistenten Datenspeicher 40 in dem Aktualisierungsprogramm 38 eingefügt.
  • Die Datenpakete 22, 24, 26 werden in einem Bereitstellungsschritt 92 des Verfahrens 10 zum Erstellen der Aktualisierungsdaten 12 den Aktualisierungsdaten 12 hinzugefügt. Vorzugsweise werden die Datenpakete 22, 24, 26 und/oder das Aktualisierungsprogramm 38 in einem Authentifizierungsschritt 88 des Verfahrens 10 zum Erstellen der Aktualisierungsdaten 12 verschlüsselt und/oder signiert, insbesondere bevor sie den Aktualisierungsdaten 12 hinzugefügt werden. Vorzugsweise werden den Aktualisierungsdaten 12 Metadaten 90, insbesondere Versionshinweise der Zielversion 20, hinzugefügt. Optional wird den Aktualisierungsdaten 12 ein Installationsprogramm hinzugefügt, welches die Elektronikvorrichtung 16 und/oder die Benutzerschnittstelle 62 dazu veranlasst, die Datenpakete 22, 24, 26 und/oder das Aktualisierungsprogramm 38 automatisch in den freien Speicherbereich 82 des persistenten Datenspeichers 40 zu kopieren. Bevorzugt werden die Aktualisierungsdaten 12 zu einer einzelnen Datei zusammengefasst. Beispielsweise werden die Aktualisierungsdaten 12 auf dem Server 60 zur Verfügung gestellt.
  • 4 zeigt das Verfahren 44 zum Überschreiben der Firmware 14 der Elektronikvorrichtung 16. Das Verfahren 44 verarbeitet insbesondere die mit dem Verfahren 10 zum Erstellen der Aktualisierungsdaten 12 erstellten Aktualisierungsdaten 12. Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst zumindest einen Speicherschritt 46 (siehe 1). In dem Speicherschritt 46 wird die Zielversion 20 der Firmware 14 als die zumindest zwei Datenpakete 22, 24, 26 in dem persistenten Datenspeicher 40 der Elektronikvorrichtung 16 abgelegt. Der Speicherschritt 46 kann von einem Benutzer manuell oder durch das Installationsprogramm durchgeführt werden. Der Aktualisierungsstart 70 kann insbesondere von einem Benutzer manuell, von dem Installationsprogramm automatisch ausgelöst werden. Insbesondere setzt bei Aktualisierungsstart 70 die Firmware 14 oder das Installationsprogramm einen Aktualisierungsmarker 104 in den Markierungsbereich 84 und startet insbesondere die Elektronikvorrichtung 16 neu. Vorzugsweise liest der Bootloader 78 bei einem Neustart der Elektronikvorrichtung 16 in einer Markerabfrage 94 des Verfahrens 44 zum Überschreiben der Firmware 14 den Markierungsbereich 84 aus. Insbesondere startet der Bootloader 78 das Aktualisierungsprogramm 38, wenn in dem Markierungsbereich 84 der Aktualisierungsmarker 104 und/oder zumindest einer, und insbesondere nicht alle, der persistenten Fortschrittsmarker 30, 30', 30", 32, 32' gesetzt ist. Der persistente Fortschrittsmarker 30, 30', 30", 32, 32', 32" verhindert in zumindest einem Verfahrensschritt ein Ausführen der Firmware 14. Der Bootloader 78 startet insbesondere eine Initialisierung 96 der Firmware 14, wenn in dem Markierungsbereich 84 weder der Aktualisierungsmarker 104 noch irgendeiner der persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" gesetzt sind oder wenn alle persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" gesetzt sind. Der Aktualisierungsmarker 104 und die persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" können unabhängig voneinander gespeichert werden oder als unterschiedliche Werte derselben Variablen gespeichert sein. Bei einer unabhängigen Speicherung des Aktualisierungsmarkers 104 und der persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" umfasst die letzte durchzuführende Sicherungsanweisung, insbesondere zusätzlich oder alternativ zu einem Setzen des letzten persistenten Fortschrittsmarkers 32", ein Setzen des Aktualisierungsmarkers 104 auf einen Wert, der einen Abschluss der Aktualisierung kennzeichnet. Der Bootloader 78 startet insbesondere eine Initialisierung 96 der Firmware 14, wenn der Aktualisierungsmarker 104 angibt, dass keine Aktualisierung vorhanden ist oder die Aktualisierung abgeschlossen wurde.
  • Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst insbesondere eine Reihenfolgeermittlung 98. Insbesondere ermittelt der Bootloader 78 in der Reihenfolgeermittlung 98, welche der Fortschrittsmarker 30, 30', 30", 32, 32', 32" in dem Markierungsbereich 84 gesetzt sind oder zumindest welches der zuletzt gesetzte Fortschrittsmarker 30, 30', 30", 32, 32', 32" ist. Der Bootloader 78 wählt insbesondere dasjenige der Datenpakete 22, 24, 26, welches als Nächstes verarbeitet wird, in Abhängigkeit von dem bereits in den Markierungsbereich 84 vorhandenen persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" aus. Befindet sich während der Reihenfolgeermittlung 98 nur der Aktualisierungsmarker 104 in dem Markierungsbereich 84, beginnt der Bootloader 78 insbesondere mit einem ersten der Datenpakete 26.
  • Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst insbesondere einen Zwischenspeicherschritt 100. In dem Zwischenspeicherschritt 100 gleicht der Bootloader 78 eines der Datenpakete 22, 24, 26 mit einem Teil der in dem Firmwarespeicherbereich befindlichen bisherigen Version 54 ab. Insbesondere erstellt der Bootloader 78 in dem Zwischenspeicherschritt 100 in dem Zwischenspeicherbereich 52 ein Datenpaket der Zielversion 20 basierend auf dem Abgleich von dem Datenpakt 22, 24, 26 und der bisherigen Version 54. Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst zumindest einen Markierungsschritt 48. In dem Markierungsschritt 48 führt der Bootloader 78 insbesondere eine Zwischensicherungsanweisung des Aktualisierungsprogramms 38 aus. In dem Markierungsschritt 48 wird zumindest ein persistenter Fortschrittsmarker 30, 30', 30" gesetzt. Insbesondere führt der Bootloader 78 den Markierungsschritt 48 aus, wenn das Datenpaket der Zielversion 20 in dem Zwischenspeicherbereich 52 erfolgreich erstellt wurde. Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst insbesondere einen Überschreibschritt 102, in welchem die bisherige Version 54 in dem Firmwarespeicherbereich mit dem in dem Zwischenspeicherbereich 52 befindlichen Datenpaket der Zielversion 20 überschrieben wird. Insbesondere wird zumindest ein Sektor des persistenten Datenspeichers 40, der dem Firmwarespeicherbereich zugeordnet ist, gelöscht und mit dem Datenpaket der Zielversion 20 in dem Zwischenspeicherbereich 52 neu beschrieben. Das Verfahren 44 zum Überschreiben der Firmware 14 umfasst zumindest einen weiteren Markierungsschritt 50. In dem weiteren Markierungsschritt 50 führt der Bootloader 78 insbesondere eine Abschlusssicherungsanweisung des Aktualisierungsprogramms 38 aus. In dem weiteren Markierungsschritt 50 wird zumindest ein persistenter Fortschrittsmarker 32, 32', 32" gesetzt. Insbesondere führt der Bootloader 78 den weiteren Markierungsschritt 48 aus, wenn die bisherige Version 54 der Firmware 14 mit dem Datenpaket der Zielversion 20 in dem Zwischenspeicherbereich 52 überschrieben wurde. Die persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" dokumentieren eine zumindest teilweise durchgeführte Aktualisierung der Firmware 14 mit zumindest einem der Datenpakete 22, 24, 26. In der Reihenfolgeermittlung 96 entscheidet der Bootloader 78, insbesondere nach einer Wiederaufnahme der Aktualisierung nach einer Unterbrechung, in Abhängigkeit von den in dem Markierungsbereich gesetzten Fortschrittsmarkern, ob zunächst der Zwischenspeicherschritt 100, insbesondere für das nächste der Datenpakete 22, 24, 26, oder der Überschreibschritt 102, insbesondere für ein bereits teilweise verarbeitetes der Datenpakete 22, 24, 26, ausgeführt wird.
  • Insbesondere wiederholen sich die oben genannten Schritte bis sämtliche Datenpakete 22, 24, 26 verarbeitet wurden. Insbesondere führt der Bootloader 78 einen Neustart 106 der Elektronikvorrichtung 16 oder die Initialisierung 96 der Firmware 14 aus, wenn sich in der Reihenfolgeermittlung 98 alle persistenten Fortschrittsmarker 30, 30', 30", 32, 32', 32" in dem Markierungsbereich 84 befinden, wenn sich zumindest ein abschließender Fortschrittsmarker 32" in dem Markierungsbereich 84 befindet und/oder wenn der Aktualisierungsmarker 104 einen Abschluss der Aktualisierung kennzeichnet.
  • Die virtuelle Maschine 36 der Elektronikvorrichtung 16 führt den Markierungsschritt 48, 50 aus. Insbesondere lädt der Bootloader 78 bei einer Detektion zumindest eines Markers in dem Markierungsbereich 84 das in dem freien Speicherbereich 82 befindliche Aktualisierungsprogramm 38 mit der virtuellen Maschine 36. Insbesondere führt die virtuelle Maschine 36 den Zwischenspeicherschritt 100 aus. Insbesondere führt die virtuelle Maschine 36 den Überschreibschritt 102 aus.
  • 5 zeigt einen schematischen Zustandsverlauf des Datenspeichers 40 während des Verfahrens 44 zum Überschreiben der Firmware 14. Beispielhaft ist die bisherige Version 54, 54', 54" der Firmware 14 in mehreren, insbesondere drei Sektoren, des persistenten Datenspeichers 40 gespeichert, wobei die Apostrophe insbesondere in unterschiedlichen Sektoren gespeicherte Anteile der bisherigen Version 54 kennzeichnen. Insbesondere umfassen die Aktualisierungsdaten 12 mehrere, insbesondere drei, Datenpakete 22, 24, 26. In einem ersten Durchlauf durch das in 4 dargestellte Verfahren 44 erstellt der Bootloader 78 ein Datenpaket der Zielversion 20 in dem Zwischenspeicherbereich 52 basierend auf einem der in dem freien Speicherbereich 82 gespeicherten Datenpakete 26, welches mit der gesamten bisherigen Version 54, 54' ,54" abgeglichen wird. Insbesondere anschließend daran setzt der Bootloader 78 einen der Fortschrittsmarker 30 in den Markierungsbereich 84. Das Datenpaket der Zielversion 20 in dem Zwischenspeicherbereich 52 wird vorzugsweise in einen der Sektoren mit einem Anteil der bisherigen Version 54 kopiert. Insbesondere anschließend daran setzt der Bootloader 78 einen weiteren der Fortschrittsmarker 32 in den Markierungsbereich 84.
  • In einem weiteren Durchlauf durch das in 4 dargestellte Verfahren 44 erstellt der Bootloader 78 ein weiteres Datenpaket der Zielversion 20' in dem Zwischenspeicherbereich 52 basierend auf einem weiteren der in dem freien Speicherbereich 82 gespeicherten Datenpakete 24, welches mit einem noch nicht überschriebenen Teil der bisherigen Version 54' ,54" abgeglichen wird. Den zumindest zwei Datenpaketen 22, 24, 26 wird derselbe persistente Zwischenspeicherbereich 52 der Elektronikvorrichtung 16 zu einem Erstellen eines Teils der Zielversion 20 der Firmware 14 zugeordnet. Insbesondere anschließend daran setzt der Bootloader 78 einen der Fortschrittsmarker 32' in den Markierungsbereich 84. Das Datenpaket der Zielversion 20' in dem Zwischenspeicherbereich 52 wird vorzugsweise in einen weiteren der Sektoren mit einem weiteren Anteil der bisherigen Version 54' kopiert. Insbesondere anschließend daran setzt der Bootloader 78 einen weiteren der Fortschrittsmarker 32' in den Markierungsbereich 84.
  • In einem letzten Durchlauf durch das in 4 dargestellte Verfahren 44 erstellt der Bootloader 78 ein zusätzliches Datenpaket der Zielversion 20" in dem Zwischenspeicherbereich 52 basierend auf einem weiteren der in dem freien Speicherbereich 82 gespeicherten Datenpakete 22, welches mit einem noch nicht überschriebenen Teil der bisherigen Version 54" abgeglichen wird. Jedes der Datenpakete 22, 24, 26 wird mit einem unterschiedlich großen Teil der bisherigen Version 54 der Firmware 14 verarbeitet. Insbesondere anschließend daran setzt der Bootloader 78 einen der Fortschrittsmarker 30" in den Markierungsbereich 84. Das Datenpaket der Zielversion 20" in dem Zwischenspeicherbereich 52 wird vorzugsweise in einen zusätzlichen der Sektoren mit einem zusätzlichen Anteil der bisherigen Version 54" kopiert. Insbesondere anschließend daran setzt der Bootloader 78 einen weiteren, insbesondere abschließenden, der Fortschrittsmarker 32" in den Markierungsbereich 84.

Claims (14)

  1. Verfahren zu einem Erstellen von Aktualisierungsdaten (12) für eine Firmware (14) einer Elektronikvorrichtung, mit zumindest einem Unterteilungsschritt (18), mittels welchem zumindest eine Zielversion (20) der Firmware (14) in zumindest zwei Datenpakete (22, 24, 26) unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten (12) hinzugefügt werden, gekennzeichnet durch zumindest einen Sicherungsschritt (28), in welchem zumindest einem der Datenpakete (22, 24, 26) eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers (30, 30', 30", 32, 32', 32") zugeordnet wird, welcher zu einem Dokumentieren einer zumindest teilweise durchgeführten Aktualisierung der Firmware (14) mit zumindest einem der Datenpakete (22, 24, 26) vorgesehen ist.
  2. Verfahren nach Anspruch 1, gekennzeichnet durch einen Vergleichsschritt (34), bei welchem zumindest eines der Datenpakete (22, 24, 26) derart generiert wird, dass es Unterschiede zwischen zwei Programmversionen der Firmware (14) umfasst.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Sicherungsanweisung als Teil eines von einer virtuellen Maschine (36) ausführbaren Aktualisierungsprogramms (38) erstellt wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zumindest einem der Datenpakete (22, 24, 26) zumindest zwei Sicherungsanweisungen zu einem Setzen zumindest je eines persistenten Fortschrittsmarkers (30, 30', 30", 32, 32', 32") zugeordnet werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass während des Unterteilungsschritts (18) eine Größe der Datenpakete (22, 24, 26) in Abhängigkeit von einer Sektorgröße eines persistenten Datenspeichers (40) der Elektronikvorrichtung gewählt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein die Sicherungsanweisung umfassendes Aktualisierungsprogramm (38) in Abhängigkeit von einem anwendungsspezifischen Modell (42) der Elektronikvorrichtung erstellt wird.
  7. Verfahren zu einem Überschreiben einer Firmware (14) einer Elektronikvorrichtung, insbesondere mittels einer Verarbeitung von mit einem Verfahren der vorhergehenden Ansprüchen erstellten Aktualisierungsdaten (12), mit zumindest einem Speicherschritt (46), in welchem zumindest eine Zielversion (20) der Firmware (14) als zumindest zwei Datenpakete (22, 24, 26) in einem Datenspeicher (40) der Elektronikvorrichtung abgelegt wird, gekennzeichnet durch zumindest einen Markierungsschritt (48, 50), in welchem zumindest ein persistenter Fortschrittsmarker (30, 30', 30", 32, 32', 32") gesetzt wird, welcher eine zumindest teilweise durchgeführte Aktualisierung der Firmware (14) mit zumindest einem der Datenpakete (22, 24, 26) dokumentiert.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass eine virtuelle Maschine (36) der Elektronikvorrichtung den Markierungsschritt (48, 50) ausführt.
  9. Verfahren nach einem der Ansprüche 7 oder 8, dadurch gekennzeichnet, dass den zumindest zwei der Datenpakete (22, 24, 26) derselbe persistente Zwischenspeicherbereich (52) der Elektronikvorrichtung zu einem Erstellen eines Teils der Zielversion (20) der Firmware (14) zugeordnet wird.
  10. Verfahren nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass jedes der Datenpakete (22, 24, 26) mit einem unterschiedlich großen Teil der bisherigen Version (54) der Firmware (14) verarbeitet wird.
  11. Verfahren nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass der persistente Fortschrittsmarker (30, 30', 30", 32, 32', 32") in zumindest einem Verfahrensschritt ein Ausführen der Firmware (14) verhindert.
  12. Verfahren nach einem der Ansprüche 7 bis 11, dadurch gekennzeichnet, dass in zumindest einem Verfahrensschritt dasjenige der Datenpakete (22, 24, 26), welches als Nächstes verarbeitet wird, in Abhängigkeit von dem persistenten Fortschrittsmarker (30, 30', 30", 32, 32', 32") ausgewählt wird.
  13. Verfahren zu einem Aktualisieren einer Firmware (14) einer Elektronikvorrichtung, wobei in zumindest einer Verfahrensphase Aktualisierungsdaten (12) erstellt werden, insbesondere gemäß einem Verfahren nach einem der Ansprüche 1 bis 6, und mit zumindest einer Verfahrensphase zu einem Überschreiben der Firmware (14), insbesondere gemäß einem Verfahren nach einem der Ansprüche 7 bis 12, mit zumindest einem Unterteilungsschritt (18), mittels welchem zumindest eine Zielversion (20) der Firmware (14) in zumindest zwei Datenpakete (22, 24, 26) unterteilt wird, welche in zumindest einem Verfahrensschritt den Aktualisierungsdaten (12) hinzugefügt werden, und mit zumindest einem Speicherschritt (46), in welchem zumindest die Zielversion (20) der Firmware (14) in Form der zumindest zwei Datenpakete (22, 24, 26) in einem Datenspeicher (40) der Elektronikvorrichtung abgelegt wird, gekennzeichnet durch zumindest einen Sicherungsschritt (28), in welchem zumindest einem der Datenpakete (22, 24, 26) eine Sicherungsanweisung zu einem Setzen zumindest eines persistenten Fortschrittsmarkers (30, 30', 30", 32, 32', 32") zugeordnet wird, welcher eine zumindest teilweise durchgeführte Aktualisierung der Firmware (14) dokumentiert, und zumindest einen Markierungsschritt (48, 50), in welchem der zumindest eine persistente Fortschrittsmarker (30, 30', 30", 32, 32', 32") gesetzt wird.
  14. Elektronikvorrichtung mit zumindest einem persistenten Datenspeicher (40), einer in dem persistenten Datenspeicher (40) gespeicherten Firmware (14) und zumindest einem Prozessor (58) zu einer Durchführung eines Verfahrens nach einem der Ansprüche 7 bis 13.
DE102021202029.1A 2021-03-03 2021-03-03 Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens Pending DE102021202029A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102021202029.1A DE102021202029A1 (de) 2021-03-03 2021-03-03 Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens
EP22712522.6A EP4302182A1 (de) 2021-03-03 2022-02-24 Verfahren zu einem erstellen von aktualisierungsdaten, verfahren zu einem überschreiben einer firmware, verfahren zum aktualisieren einer firmware und elektronikvorrichtung zu einer durchführung eines derartigen verfahrens
CN202280018673.2A CN116964555A (zh) 2021-03-03 2022-02-24 创建更新数据的方法、覆写固件的方法、更新固件的方法及执行该方法的电子设备
PCT/EP2022/054608 WO2022184534A1 (de) 2021-03-03 2022-02-24 Verfahren zu einem erstellen von aktualisierungsdaten, verfahren zu einem überschreiben einer firmware, verfahren zum aktualisieren einer firmware und elektronikvorrichtung zu einer durchführung eines derartigen verfahrens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021202029.1A DE102021202029A1 (de) 2021-03-03 2021-03-03 Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens

Publications (1)

Publication Number Publication Date
DE102021202029A1 true DE102021202029A1 (de) 2022-09-08

Family

ID=80937226

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021202029.1A Pending DE102021202029A1 (de) 2021-03-03 2021-03-03 Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens

Country Status (4)

Country Link
EP (1) EP4302182A1 (de)
CN (1) CN116964555A (de)
DE (1) DE102021202029A1 (de)
WO (1) WO2022184534A1 (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
CN102650947B (zh) * 2012-04-01 2015-06-24 广东欧珀移动通信有限公司 一种Android手持设备连续增量的空中升级方法
US9128798B2 (en) * 2012-10-17 2015-09-08 Movimento Group Module updating device
KR20180131840A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 펌웨어 업데이트 지원 장치 및 그 방법

Also Published As

Publication number Publication date
EP4302182A1 (de) 2024-01-10
CN116964555A (zh) 2023-10-27
WO2022184534A1 (de) 2022-09-09

Similar Documents

Publication Publication Date Title
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE10315490B4 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE112009002207B4 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
EP3128383B1 (de) Feldgerät
DE112017003641T5 (de) Datenüberschreibvorrichtung und Datenüberschreibprogramm
DE112009004563T5 (de) Bios-bild-verwalter
DE102011075776A1 (de) Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers
DE602005003778T2 (de) Verfahren und Vorrichtung zum Wiederbeschreiben eines Sektors mit Bootloader-Software in einem sektor-löschbaren nichtflüchtigen Halbleiterspeicher
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
WO2005085993A2 (de) Verfahren und datenverarbeitungsgerät zur aktualisierung von rechnerprogrammen per datenübertragung
DE102021202029A1 (de) Verfahren zu einem Erstellen von Aktualisierungsdaten, Verfahren zu einem Überschreiben einer Firmware, Verfahren zum Aktualisieren einer Firmware und Elektronikvorrichtung zu einer Durchführung eines derartigen Verfahrens
EP3224756B1 (de) Verfahren zum nachladen von software auf eine chipkarte durch einen nachladeautomaten
EP2394232B1 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software
WO2020099023A2 (de) Steuergerät für eine fahrzeugkomponente, kit umfassend ein steuergerät und eine testereinrichtung, fahrzeug, verfahren zum aktualisieren eines steuergeräts und computerlesbares speichermedium
DE112019006929T5 (de) Antriebssteuerung
DE102013100820A1 (de) Verfahren zum sicheren Löschen eines nichtflüchtigen Halbleiter-Massenspeichers, Computersystem sowie Computerprogrammprodukt
DE102004006308B4 (de) Verfahren zum Verändern von Programmcode eines tragbaren Datenträgers mittels Patchdaten
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
WO2019042546A1 (en) METHOD FOR IMPROVING THE ROBUSTNESS OF A MICROPROGRAM UPDATE IN PLACE
DE102006013759B4 (de) Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
WO2020025372A1 (de) Verfahren, steuervorrichtung, computerprogramm und computerprogrammprodukt zum aktualisieren einer software für eine steuervorrichtung
DE102022132090A1 (de) Verfahren zum erzeugen von rollback-differenzdaten eines fahrzeugsteuergeräts und rollback-verfahren für ein fahrzeugsteuergerät
DE102020207614A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102020212988A1 (de) Sicheres Hochfahren eines Computersystems
DE102006013762A1 (de) Verfahren zum Betreiben einer Speichereinrichtung