DE602004013120T2 - Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen - Google Patents

Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen Download PDF

Info

Publication number
DE602004013120T2
DE602004013120T2 DE602004013120T DE602004013120T DE602004013120T2 DE 602004013120 T2 DE602004013120 T2 DE 602004013120T2 DE 602004013120 T DE602004013120 T DE 602004013120T DE 602004013120 T DE602004013120 T DE 602004013120T DE 602004013120 T2 DE602004013120 T2 DE 602004013120T2
Authority
DE
Germany
Prior art keywords
memory block
address space
block
version
software
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.)
Expired - Lifetime
Application number
DE602004013120T
Other languages
English (en)
Other versions
DE602004013120D1 (de
Inventor
Peter Ljung
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.)
Sony Mobile Communications AB
Original Assignee
Sony Ericsson Mobile Communications AB
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 Sony Ericsson Mobile Communications AB filed Critical Sony Ericsson Mobile Communications AB
Publication of DE602004013120D1 publication Critical patent/DE602004013120D1/de
Application granted granted Critical
Publication of DE602004013120T2 publication Critical patent/DE602004013120T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

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

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Verfahren für eine Verwendung bei Computer und Mikroprozessorsystemen zum Erweitern einer Software durch Empfangen und Ausführen von Deltadateien für eine Zielerweiterung. Die Erfindung bezieht sich insbesondere auf verbesserte Lösungen zum Bewältigen eines potenziellen Leistungsverlusts während einer Zielerweiterung.
  • Hintergrund
  • Es gibt mehrere Technologien, die eine Erweiterung von Software-Binärdateien durch lediglich Senden der Unterschiede zwischen einer aktuellen Software-Version und einer aktualisierten Software-Version ermöglichen. Der Unterschied einer neuen Version eines speziellen Stücks einer Software beträgt typischerweise etwa 1–10% der Quellen-Binärdateien. Die Prozedur eines Verwendens einer Unterschiedsdatei, die im Allgemeinen als eine Deltadatei bezeichnet wird, ist besonders vorteilhaft, wenn Aktualisierungen über Träger mit einer niedrigen Bandbreite, wie GPRS (= General Packet Radio Service = Allgemeiner Paketfunkdienst), gesendet werden. Diese Technologie wird Firmware-Erweiterung über die Luft (engl.: firmware upgrade over the air) genannt und ist aktuell innerhalb der OMA standardisiert. Ein Beispiel dafür, wie dieser Typ einer Erweiterung funktioniert, kann wie folgt umrissen werden: Ein Mobiltelefon, das die zu erweiternde mikroprozessorgesteuerte Vorrichtung ist, hat aktuell eine Software V1. Die Zielsetzung besteht darin, die Software auf die neueste Freigabeversion V2 zu aktualisieren. Es wird die folgende Prozedur durchgeführt, um die Software in dem Mobiltelefon zu aktualisieren:
    • 1. Zielsoftware V2 kompilieren und binden;
    • 2. Unterschied D12 der Binärdateien von V1 zu V2 berechnen. D12 enthält alle Informationen, die benötigt werden, um V2 aus V1 zu erzeugen;
    • 3. D12, z. B. über GPRS, zu einem Ziel transportieren;
    • 4. Durch Verwenden der aktuellen Binärdatei V1 und von D12 die Zielvorrichtung sich selbst neu flashen, d. h. erweitern, lassen, um bei dem Ziel V2 zu erzeugen.
  • Die Zielvorrichtung wurde nun durch lediglich Senden eines kleinen Aktualisierungspakets D12 zu der Vorrichtung auf V2 aktualisiert.
  • Ein kritischer Schritt bei dem Aktualisierungsverfahren ist die Zielerweiterung. Aufgrund der Tatsache, dass die Zielsoftware, z. B. RTOS (= Real Time Operating System = Echtzeitbetriebssystem) und die Anwendungen neu geflasht werden, könnte ein Leistungsverlust für die Vorrichtung verhängnisvoll sein. Das Aktualisierungsverfahren muss 100% fehlerbehebungssicher sein, was bedeutet, dass das Aktualisierungsverfahren fähig sein muss, nach einem unerwarteten Leistungsausfall fortzufahren. Ein dem Stand der Technik entsprechendes Verfahren, das verwendet wird, um eine Ausfallsicherungsfähigkeit zu implementieren, und das bereits in einer Anzahl von Anwendungen, wie Datenbanken, verwendet ist, wird 2-Phasen-Festschreibung (engl.: 2 Phase commit) genannt. Die Idee besteht darin, während der Aktualisierung eine Kopie der alten Informationen zu behalten. Die alten Informationen werden so lange nicht entfernt, bis die Aktualisierung abgeschlossen ist. Auf diese Art und Weise ist es immer möglich, zu dem letzten Zustand zurückzugehen, falls während der Aktualisierung die Aktualisierung abstürzen würde.
  • Für Vorrichtungen, die einen NOR-Flash verwenden, ist der Speicher in gleich dimensionierte Blöcke von typischerweise 64 kB geteilt. Bei dem Schreiben zu einer NOR-Vorrichtung bestehen besondere Beschränkungen. Es können lediglich ganze Blöcke auf einmal gelöscht werden, wobei alle Bits in dem Block auf 1 eingestellt werden. Ein Schreiben kann auf einer Byte-Ebene durchgeführt werden, es ist jedoch lediglich möglich, einen Bitzustand von 1 in 0 zu ändern. Eine Erweiterung bei einer NOR-Vorrichtung wird Block für Block durchgeführt. Um eine Ausfallbehebung zu ermöglichen, wird zuerst jeder Block zu einem spezifischen Sicherungsblock kopiert, bevor ein aktualisierter Block zu dem ursprünglichen Block geschrieben wird. Diese dem Stand der Technik entsprechende Prozedur wird nun unter Bezugnahme auf 1 beschrieben.
  • Eine spezielle Vorrichtungssoftware besteht aus vier Softwareblöcken 1–4, die in vier Speicherblöcken 101104 gespeichert sind. Die Speicherblöcke 101104 sind in einem Speicherraum 111 in einem physikalischen Speicher der Vorrichtung definiert. Die Speicherblöcke 101104 sind vertikal, in einem speziellen Zustand 106110 während eines Aktualisierungsverfahrens dargestellt, veranschaulicht. Jede Spalte stellt, von links nach rechts laufend, wie durch die Pfeile in der Zeichnung angezeigt ist, einen neuen Zustand bei dem Aktualisierungsverfahren dar. Dem Verfahren sind ferner ein Deltapaket, Zustandsinformationen und die Aktualisierungsanwendung zugeordnet, diese sind jedoch um eines Klarstellens des eigentlichen Gesamtverfahrens willen hier nicht illustriert. Während eines Aktualisierungsverfahrens wurden bereits zwei Softwareblöcke 1 und 2 aktualisiert, was der Zustand ist, der in der Spalte 106 veranschaulicht ist. Der Block 3 soll als Nächstes aktualisiert werden. Um fähig zu sein, einen potenziellen Leistungsverlust zu beheben, müssen Informationen anhaltend gespeichert werden. Zustandsinformationen werden verwendet, um zu verfolgen, welcher Block gerade verarbeitet wird und in welchem Zustand der Aktualisierung man sich aktuell befindet. Zusätzlich muss der alte Block behalten werden, bis der neue Block generiert ist. Das Verfahren zum Aktualisieren des Blocks 3 wird durch zuerst Löschen eines Sicherungsblocks 105, der ebenfalls in dem Speicherraum 111 definiert ist, bei dem Schritt zu einem Zustand 107 ausgeführt. Die Daten des Blocks 3 werden dann bei dem Schritt zu einem Zustand 108 von dem Block 103 zu dem Sicherungsblock 105 kopiert. Der Block 103 wird anschließend bei dem Schritt zu einem Zustand 109 gelöscht, was einen leeren Block 103 zurücklässt. Schließlich wird bei dem Schritt zu einem Zustand 110 das Schreibverfahren an dem Block 103 durchgeführt, was die Daten in diesem mit einem neuen Block 3 erweitert. Alternativ wird der neue Block 3 in dem Sicherungsblock 105 erzeugt, anstatt den alten Block 3 zu dem Sicherungsblock 105 zu kopieren.
  • Wäre der Sicherungsblock 105 nicht verwendet worden, wäre ein Leistungsverlust nach einem Löschen des Blocks, und bevor der neue Block vollständig geschrieben ist, nicht behebbar, da weder der Quellenblock noch der Bestimmungsblock verfügbar wären. Durch Verwenden der vorhergehenden Prozedur ist es immer möglich, die Aktualisierung dort, wo sie beendet wurde, durch Neuschreiben des letzten Blocks wieder aufzunehmen und mit der Aktualisierung fortzufahren.
  • Ein Problem bei dieser dem Stand der Technik entsprechenden Prozedur liegt darin, dass die Schreibzeit während einer Flash-Aktualisierung verdoppelt ist, da jeder Block zweimal geschrieben werden muss, damit jeder Block eine Leistungsverlustbehebung unterstützt. Bei NOR-Flash beträgt die typische Schreibgeschwindigkeit etwa 200 kB/s. Die Zeit zum Schreiben von Blöcken bei einer 16 MB-Abbild-Aktualisierung beträgt dann ungefähr 16 MB·2/0,2 = 160 Sekunden, wenn alle Blöcke aktualisiert werden müssen. Während einer Aktualisierung ist die Vorrichtung vollständig unverwendbar, es ist also wichtig, diese Zeit so niedrig wie möglich zu halten. Abhängig von der Größe der Aktualisierung und davon, wie Codeänderungen in dem neuen Binär-Abbild verteilt sind, kann sich die Anzahl der Blöcke, die aktualisiert werden müssen, unterscheiden. Die Erfahrung lässt erkennen, dass die meisten Aktualisierungen die Mehrheit aller verfügbaren Blöcke aktualisieren müssen. Es gibt Verfahren, um durch Strukturieren des Binär-Abbilds auf eine solche Art und Weise, dass Aktualisierungen auf kleinere Teile des Abbilds konzentriert sind, die Anzahl von Blöcken, die aktualisiert werden müssen, zu verringern. Diese Verfahren sind jedoch recht komplex.
  • Zusammenfassung der Erfindung
  • Es ist eine allgemeine Aufgabe der vorliegenden Erfindung, eine verbesserte Lösung zum Gewährleisten zu schaffen, dass ein Software-Aktualisierungsverfahren nach einer Unterbrechung, z. B. aufgrund eines Leistungsverlusts, behebbar ist. Es ist insbesondere eine Aufgabe, eine Lösung zum Erweitern von Software-Binärdateien durch die Verwendung von Deltadateien zu schaffen, die die Zielerweiterungszeit minimiert.
  • Gemäß einem ersten Aspekt der Erfindung ist diese Aufgabe durch ein Verfahren zum Aktualisieren einer Software, die in einer ersten Version in einer Vorrichtung vorhanden ist, durch Empfangen und Ausführen einer Deltadatei zum Erweitern der ersten Version auf eine zweite Version erfüllt, wobei die Software in eine Anzahl von Speicherblöcken, die in einem Adressraum eines physikalischen Speichers in der Vorrichtung definiert sind, geteilt und in derselben gespeichert ist, mit folgenden Schritten:
    • – Definieren eines zusätzlichen Speicherblocks, der der Anzahl von Speicherblöcken zugeordnet ist;
    • – Löschen des zusätzlichen Speicherblocks, um einen zusätzlichen Speicherblockraum zu definieren;
    • – Schreiben von aktualisierten Daten für einen ersten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den zusätzlichen Speicherblock;
    • – Löschen des ersten Speicherblocks, dadurch Bewegen des zusätzlichen Speicherblockraums um einen Block; und
    • – Schreiben von aktualisierten Daten für einen zweiten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den ersten Speicherblock.
  • Bei einem bevorzugten Ausführungsbeispiel ist der zusätzliche Speicherblock als ein Speicherblock definiert, der benachbart zu dem ersten Speicherblock in dem Adressraum platziert ist.
  • Das Verfahren weist vorteilhaft den Schritt eines Verarbeitens aller der Anzahl von Speicherblöcken nacheinander ab dem zusätzlichen Speicherblock durch Schreiben von Daten in einen der Anzahl von Speicherblöcken ab dem nächsten Speicherblock in dem Adressraum während eines Erweiterns, wie durch die Deltadatei bestimmt, bis alle der Anzahl von Speicherblöcken einen Schritt in dem Adressraum verschoben wurden, auf.
  • Bei einem Ausführungsbeispiel weist das Verfahren den Schritt eines Umkehrens der Reihenfolge des Schreibens von Speicherblöcken in dem Adressraum von der Erweiterung von einer ersten Version auf eine zweite Version zu einer zweiten Erweiterung von der zweiten Version auf eine dritte Version auf.
  • Das Verfahren weist vorzugsweise folgende Schritte auf:
    • – vor einem Empfangen und Ausführen einer Deltadatei, Verbinden der Vorrichtung mit einem Server und Übertragen von Informationen, die auf einen aktuellen Adressraumstatus bezogen sind, der abhängig von dem derzeitigen Ort des zusätzlichen Blocks in dem Adressraum bestimmt, welcher Typ einer Deltadatei zum Erweitern der Software anwendbar ist, wobei ein erster Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer Reihenfolge in dem Adressraum zu erweitern, und ein zweiter Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer umgekehrten Reihenfolge in dem Adressraum zu erweitern;
    • – Herunterladen einer Deltadatei des anwendbaren Deltadateityps von dem Server zu der Vorrichtung; und
    • – Erweitern der Software unter Verwendung der anwendbaren Deltadatei.
  • Bei einem Ausführungsbeispiel weist das Verfahren den Schritt eines Modifizieren einer Startadresse innerhalb des Adressraums in einem Urladecode für die Software abhängig von dem Bewegen von Daten zwischen den Speicherblöcken während des Schreibens, wie durch die Deltadatei bestimmt, auf.
  • Gemäß einem zweiten Aspekt der Erfindung wird die angegebene Aufgabe durch ein Computerprogrammerzeugnis für eine Verwendung in einer computergesteuerten elektronischen Vorrichtung zum Aktualisieren einer Software, die in einer ersten Version in der Vorrichtung vorhanden ist, gelöst, wobei die Vorrichtung eine Einrichtung zum Empfangen und Ausführen einer Deltadatei zum Erweitern der ersten Version auf eine zweite Version aufweist, wobei die Software in eine Anzahl von Speicherblöcken, die in einem Adressraum eines physikalischen Speichers in der Vorrichtung definiert sind, geteilt und in derselben gespeichert ist, wobei das Computerprogrammerzeugnis einen ausführbaren Computerprogrammcode aufweist, der erdacht ist, um zu bewirken, dass die Vorrichtung folgende Schritte durchführt:
    • – Definieren eines zusätzlichen Speicherblocks bei der Anzahl von Speicherblöcken;
    • – Löschen des zusätzlichen Speicherblocks, um einen zusätzlichen Speicherblockraum zu definieren;
    • – Schreiben von aktualisierten Daten für einen ersten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den zusätzlichen Speicherblock;
    • – Löschen des ersten Speicherblocks, dadurch Bewegen des zusätzlichen Speicherblockraums um einen Block; und
    • – Schreiben von aktualisierten Daten für einen zweiten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den ersten Speicherblock.
  • Bei einem Ausführungsbeispiel weist das Computerprogrammerzeugnis einen ausführbaren Computerprogrammcode auf, der erdacht ist, um zu bewirken, dass die Vorrichtung die Schritte eines der vorhergehenden Verfahrensschritte durchführt.
  • Gemäß einem dritten Aspekt der Erfindung wird die angegebene Aufgabe durch ein Funkkommunikationsendgerät gelöst, das ein Computersystem mit einem zugeordneten Computercode zum Aktualisieren einer Software, die in einer ersten Version in dem Endgerät vorhanden ist, und eine Einrichtung zum Empfangen und Ausführen einer Deltadatei zum Erweitern der ersten Version auf eine zweite Version aufweist, wobei die Software in eine Anzahl von Speicherblöcken, die in einem Adressraum eines physikalischen Speichers in dem Endgerät definiert sind, geteilt und in derselben gespeichert ist, wobei ein zusätzlicher Speicherblock, der der Anzahl von Speicherblöcken zugeordnet ist, in dem Adressraum definiert ist, wobei das Endgerät ferner eine Einrichtung zum Löschen des zusätzlichen Speicherblocks zum Definieren eines zusätzlichen Speicherblockraums, eine Datenschreibeinrichtung zum Schreiben von aktualisierten Daten für einen ersten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den zusätzlichen Speicherblock, eine Datenlöscheinrichtung zum Löschen des ersten Speicherblocks zum Bewegen des zusätzlichen Speicherblockraums um einen Block aufweist, wobei die Datenschreibeinrichtung erdacht ist, um aktualisierte Daten für einen zweiten der Anzahl von Speicherblöcken, wie durch die Deltadatei bestimmt, in den ersten Speicherblock zu schreiben.
  • Bei einem Ausführungsbeispiel ist der zusätzliche Speicherblock benachbart zu dem ersten Speicherblock in dem Adressraum platziert.
  • Die Datenschreibeinrichtung ist vorzugsweise erdacht, um alle der Anzahl von Speicherblöcken nacheinander ab dem zusätzlichen Speicherblock durch Schreiben von Daten in einen der Anzahl von Speicherblöcken ab dem nächsten Speicherblock in dem Adressraum während eines Erweiterns, wie durch die Deltadatei bestimmt, zu verarbeiten, bis alle der Anzahl von Speicherblöcken einen Schritt in dem Adressraum verschoben wurden.
  • Das Funkkommunikationsendgerät weist vorteilhaft eine Einrichtung zum Umkehren der Reihenfolge des Schreibens von Speicherblöcken in dem Adressraum von der Erweiterung von einer ersten Version auf eine zweite Version zu einer zweiten Erweiterung von der zweiten Version auf eine dritte Version auf.
  • Bei einem bevorzugten Ausführungsbeispiel ist die Vorrichtung angeordnet, um sich vor einem Empfangen und Ausführen einer Deltadatei mit einem Server zu verbinden, zum Übertragen von Informationen, die auf einen aktuellen Adressraumstatus bezogen sind, der abhängig von dem derzeitigen Ort des zusätzlichen Blocks in dem Adressraum bestimmt, welcher Typ einer Deltadatei zum Erweitern der Software anwendbar ist, wobei ein erster Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer Reihenfolge in dem Adressraum zu erweitern, und ein zweiter Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer umgekehrten Reihenfolge in dem Adressraum zu erweitern, wobei das Endgerät eine Einrichtung zum Herunterladen einer Deltadatei des anwendbaren Deltadateityps von dem Server zu der Vorrichtung und eine Einrichtung zum Erweitern der Software unter Verwendung der anwendbaren Deltadatei aufweist.
  • Das Funkkommunikationsendgerät weist vorzugsweise eine Einrichtung zum Modifizieren einer Startadresse innerhalb des Adressraums in einem Urladecode für die Software abhängig von dem Bewegen von Daten zwischen den Speicherblöcken während des Schreibens, wie durch die Deltadatei bestimmt, auf.
  • Kurze Beschreibung der Zeichnungen
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung der bevorzugten Ausführungsbeispiele unter Bezugnahme auf die beigefügten Zeichnungen offensichtlicher, in denen
  • 1 ein Verfahren der früheren Technik zum Aktualisieren einer Software durch eine Zielerweiterung schematisch illustriert;
  • 2 ein Verfahren gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zum Aktualisieren einer Software durch eine Zielerweiterung schematisch illustriert;
  • 3 zwei unterschiedliche Versionen des Gesamtverfahrens von 2 schematisch illustriert;
  • 4 ein exemplarisches Funkkommunikationsendgerät, das ein Computerprogrammerzeugnis zum Ausführen der Verfahrensschritte der vorliegenden Erfindung implementiert, schematisch illustriert; und
  • 5 das Endgerät von 4 mit seinem eingebauten Computersystem während einer Kommunikation mit einer Basisstation zum Empfangen von Aktualisierungs-Deltadateien für eine Zielerweiterung in dem Endgerät schematisch illustriert.
  • Detaillierte Beschreibung von bevorzugten Ausführungsbeispielen
  • Die vorliegende Beschreibung nimmt Bezug auf Einrichtungen und Verfahren für eine Verwendung bei einer Firmware-Erweiterung einer Software unter Verwendung von Deltadateien und einer Zielerweiterung. Die Erfindung ist besonders vorteilhaft für eine Verwendung bei Systemen mit einer relativ niedrigen Sendebandbreite, ist jedoch nicht auf solche Gebiete beschränkt. Das im Folgenden beschriebene bevorzugte Ausführungsbeispiel bezieht sich auf das Gebiet der Mobiltelefonie und insbesondere auf die Implementierung in Funkkommunikationsendgeräten. Der Ausdruck Funkkommunikationsendgerät umfasst alle Mobilkommunikationsausrüstungen, die für eine Funkkommunikation mit einer Funkstation erdacht sind, wobei die Funkstation auch ein Mobilendgerät oder z. B. eine stationäre Basisstation sein kann. Der Ausdruck Funkendgerät umfasst folglich Mobiltelefone, Kommunikatoren, elektronische Organisatoren (engl.: organisers), intelligente Telefone (engl.: smartphones), PDAs (persönliche digitale Assistenten), in einem Fahrzeug angebrachte Funkkommunikationsvorrichtungen oder dergleichen, sowie tragbare Laptop-Computer, die für eine drahtlose Kommunikation in z. B. einem WLAN (= wireless local area network = drahtlosen Lokalbereichsnetz) erdacht sind. Es sei ferner betont, dass der Ausdruck „aufweisen" oder „aufweist", wenn er in dieser Beschreibung und in den angefügten Ansprüchen verwendet ist, um beinhaltete Merkmale, Elemente oder Schritte anzuzeigen, in keiner Weise so auszulegen ist, dass er die Anwesenheit anderer Merkmale, Elemente oder Schritte als derjenigen, die ausdrücklich angegeben sind, ausschließt.
  • Die folgende Beschreibung bezieht sich auf bevorzugte Ausführungsbeispiele der vorliegenden Erfindung, bei denen ein Adressraum vier Speicherblöcke aufweist. Es sei jedoch bemerkt, dass die vorliegende Erfindung auf einen Adressraum anwendbar ist, der eine beliebige Anzahl von Speicherblöcken aufweist.
  • 2 illustriert ein bevorzugtes Ausführungsbeispiel der Strategie des vorliegenden erfinderischen Verfahrens für einen automatischen Sicherungsspeicher bei einer Firmware-Erweiterung. Durch Verwenden dieser Aktualisierungsstrategie kann die Notwendigkeit, jeden Block zu sichern, bevor er aktualisiert wird, beseitigt werden. Bei dem exemplarischen Ausführungsbeispiel von 2 weist eine Vorrichtung einen Speicher auf, der einen Speicher- oder Adressraum 211 mit vier Speicherblöcken 201204 definiert, von denen jeder jeweils einen Softwareblock 1–4 hält. Bei dem Zustand, der in Spalte 206 illustriert ist, wurden noch keine Blöcke aktualisiert, und die Software ist in einer ersten Version vorhanden. Was das dem Stand der Technik entsprechende Verfahren betrifft, das im Vorhergehenden beschrieben ist, weist der Speicherraum 211 mindestens einen Block mehr als die vier Blöcke 201204 auf. Anstatt eines Verwenden eines spezifischen Sicherungsblocks ist jedoch ein zusätzlicher Block vor dem Binär-Abbild, das durch die Blöcke 201204 dargestellt ist, zum Bewegen des gesamten Abbilds der Software einen Block zurück, oder vorwärts, in dem Adressraum 211 verwendet. Bei alternativen Ausführungsbeispielen können mehr als ein, z. B. zwei, zusätzliche Blöcke verwendet sein.
  • Wenn die Software zu aktualisieren ist, empfangt die Vorrichtung, die einen physikalischen Speicher hält, auf den sich der Adressraum 211 bezieht, eine Delta- oder Unterschiedsdatei, die alle Informationen umfasst, die zum Aktualisieren der Software von der ersten Version auf eine zweite Version benötigt sind. Bei dem Schritt von dem Zustand 206 zu 207 wird der zusätzliche Block 212 gelöscht. Der Softwareblock 1 wird dann gemäß einer Deltadatei, die der vorhandenen Software zugeordnet ist, aktualisiert. Durch Verwenden dieser Strategie besteht keine Notwendigkeit, jeden Block zu sichern, da der aktualisierte Block immer direkt vor den alten Block geschrieben wird. Der alte Block wird nicht überschrieben, bis das Schreiben des aktualisierten Blocks erfolgt ist. Anstatt zwei Lösch-/Schreiboperationen wird lediglich eine Lösch-/Schreiboperation benötigt.
  • Die vorgeschlagene Lösung hat deutliche Vorteile, bringt jedoch auch ein Problem mit sich, das zu überwinden ist. Wenn eine Aktualisierung erfolgt ist, existiert kein zusätzlicher Block an dem Beginn des Abbilds mehr, da das gesamte Abbild in dem Adressraum verschoben wurde. Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung schafft jedoch eine Lösung dieses Problems. Nach einer ersten Aktualisierungsoperation wird es stattdessen einen zusätzlichen Block an dem Ende des Abbilds geben, den Block 204 bei dem Ausführungsbeispiel von 2. Durch Umkehren des Aktualisierungsverfahrens, d. h. durch Schreiben der Blöcke in einer Rückwärtsreihenfolge, kann jedoch bei der nächsten Aktualisierung der gleiche Algorithmus eingesetzt werden. Ein anderes Problem besteht darin, dass der tatsächliche Binärcode an eine bestimmte Basisadresse gebunden ist. Wenn die Basisadresse bewegt wird, würde der Code nicht laufen, da absolute Adressen von Orten innerhalb des Binär-Abbilds auf die falsche Adresse zeigen werden. Auf die eine oder andere Weise müssen die absoluten Adressen, die in dem Abbild verwendet sind, nach einer Aktualisierung einen Block bewegt werden. Gemäß einem Ausführungsbeispiel wird dieses Problem durch Generieren von zwei Deltadateien für jede Aktualisierung gelöst, wie in 3 schematisch illustriert ist.
  • In 3 stellt D12 (AUFWÄRTS) eine erste Deltadatei zum Transformieren von einer Software-Version V1 des Typs A, wie in der Spalte 306 illustriert, zu V2 des Typs B, wie in der Spalte 307 illustriert, dar. Das Abbild des Typs A ist folglich der definierte Adressraum, bei dem sich der zusätzliche Block nach den Blöcken 1–4 befindet, wohingegen das Abbild des Typs B der definierte Adressraum ist, bei dem sich der zusätzliche Block vor den Blöcken 1–4 befindet. D12 (ABWÄRTS) stellt eine zweite Deltadatei zum Transformieren von einer Software-Version V1 des Typs B, wie in der Spalte 308 illustriert, zu V2 des Typs A, wie in der Spalte 309 illustriert, dar. Die zwei Deltadateien werden vorzugsweise durch Modifizieren des Bindeverfahrens, um vor einem Generieren der tatsächlichen Deltadateien Abbilder des Typs A und B zu erzeugen, generiert. Schließlich muss die Startadresse, die sich in dem Urladecode befindet, modifiziert werden, um auf die korrekte Startadresse zu zeigen, derart, dass eine Ausführung der Software wie beabsichtigt vor sich geht. Dies kann als ein letzter Schritt der Aktualisierungsprozedur erfolgen.
  • Mit der neuen Sicherungsstrategie, die durch die vorliegende Erfindung geschaffen ist, wird die Aktualisierungszeit bestenfalls halbiert. Dies trifft zu, wenn alle Blöcke aktualisiert werden. Bei der vorgeschlagenen Lösung müssen alle Blöcke einmal neu geschrieben werden. Bei der aktuellen Lösung müssen lediglich geänderte Blöcke aktualisiert werden, diese müssen jedoch zweimal geschrieben werden. Für Aktualisierungen, bei denen mehr als die Hälfte der Blöcke geändert werden, ist die neue Lösung schneller. Typischerweise müssen während einer Aktualisierung die meisten Blöcke geändert werden.
  • Bei einem bevorzugten Ausführungsbeispiel ist die vorliegende Erfindung für eine Firmware-Erweiterung über die Luft verwendet und insbesondere auf das Gebiet Mobilfunkkommunikation mit Funkkommunikationsendgeräten als die Zielvorrichtung angewandt. 4 illustriert als ein Beispiel für eine Vorrichtung, bei der die vorliegende Erfindung eingesetzt sein kann, ein Funkkommunikationsendgerät in dem Ausführungsbeispiel eines zellularen Mobiltelefons 40. Das Endgerät 40 weist ein Chassis oder Gehäuse 45 auf, das einen Benutzer-Audio-Eingang in der Form eines Mikrofons 41 und einen Benutzer-Audio-Ausgang in der Form eines Lautsprechers 42 oder eines Verbinders mit einem Ohrhörer (nicht gezeigt) trägt. Ein Satz von Tasten, Knöpfen oder dergleichen bildet eine Dateneingangsschnittstelle 43, die z. B. zum Wählen verwendbar ist, gemäß der bestehenden Technik. Ferner ist eine Datenausgangsschnittstelle mit einer Anzeige 44 beinhaltet, die erdacht ist, um auf eine Art und Weise, die Fachleuten gut bekannt ist, Kommunikationsinformationen, eine Adressliste etc. anzuzeigen. Das Funkkommunikationsendgerät 40 weist eine Funksende- und -empfangselektronik (nicht gezeigt) auf und ist mit einer eingebauten Antenne 46 innerhalb des Gehäuses 45 erdacht, wobei die Antenne in der Zeichnung durch die gestrichelte Linie als ein im Wesentlichen flacher Gegenstand angezeigt ist. 5 illustriert das Endgerät 40 von 4 auf eine vereinfachte Weise. Das Endgerät 40 ist mittels seiner Antenne 46 auf eine gut bekannte Art und Weise mit einer Basisstation 50, die ein Funkkommunikationsnetz in sich aufweist, kommunikativ verbindbar. Das Endgerät 40 weist ferner ein Computersystem auf, das eine Mikroprozessorsteuerung 47 mit einem zugeordneten physikalischen Speicher 48 aufweist. Durch eine Kommunikation mit der Basisstation 50 ist das Endgerät 40 in der Lage, Deltadateien zum Erweitern einer Software, die in dem Speicher 48 vorhanden ist, insbesondere Software-Binärdateien, gemäß der Erfindung zu empfangen. Das Computersystem, das den Prozessor 47 aufweist, ist ferner erdacht, um unter Verwendung eines Adressraums, wie in 2 und 3 definiert, eine Software, die in dem Speicher 48 gespeichert ist, zu speichern und auf diese zuzugreifen und um die Verfahrensschritte auszuführen, die im Vorhergehenden in Verbindung mit 2 und 3 definiert sind. Das Computersystem, das durch den Prozessor 47 gesteuert wird, weist insbesondere eine Einrichtung zum Löschen von und Schreiben in Speicherblöcke, wie durch den Inhalt von Deltadateien bestimmt, zum Aktualisieren der Software auf, wodurch der Inhalt der Speicherblöcke, aktualisiert oder nicht, einen Blockschritt in dem Adressraum verschoben wird.

Claims (3)

  1. Verfahren zum Aktualisieren einer Software, die in einer ersten Version (V1) in einer Vorrichtung (40) vorhanden ist, durch Empfangen und Ausführen einer Deltadatei (D12) zum Erweitern der ersten Version auf eine zweite Version (V2), wobei die Software in eine Anzahl von Speicherblöcken (201204), die in einem Adressraum (211) eines physikalischen Speichers (48) in der Vorrichtung definiert sind, geteilt und in derselben gespeichert ist, mit folgenden Schritten: – Definieren eines zusätzlichen Speicherblocks (212), der der Anzahl von Speicherblöcken zugeordnet ist und anfänglich vor einem ersten Speicherblock, der sich an einem Ende des Speicherraums befindet, platziert ist; – Löschen des zusätzlichen Speicherblocks; – Schreiben von aktualisierten Daten für den ersten Speicherblock in den zusätzlichen Speicherblock; – Bewegen des zusätzlichen Speicherblocks einen Block vorwärts; und – Verarbeiten aller der Anzahl von Speicherblöcken nacheinander durch Löschen des zusätzlichen Speicherblocks, Schreiben von aktualisierten Daten für den Speicherblock, der benachbart zu und nach dem zusätzlichen Speicherblock ist, in den zusätzlichen Speicherblock, Bewegen des zusätzlichen Speicherblocks jeweils einen Block vorwärts, bis alle der Anzahl von Speicherblöcken einen Schritt in dem Adressraum verschoben wurden, – Umkehren der Reihenfolge des Schreibens von Speicherblöcken in dem Adressraum von der Erweiterung von einer ersten Version auf eine zweite Version zu einer zweiten Erweiterung von der zweiten Version auf eine dritte Version, dadurch gekennzeichnet, dass das Verfahren ferner folgende Schritte aufweist: – vor einem Empfangen und Ausführen einer Deltadatei, Verbinden der Vorrichtung mit einem Server und Übertragen von Informationen, die auf einen aktuellen Adressraumstatus bezogen sind, der abhängig von dem derzeitigen Ort des zusätzlichen Blocks in dem Adressraum bestimmt, welcher Typ einer Deltadatei zum Erweitern der Software anwendbar ist, wobei ein erster Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer Reihenfolge in dem Adressraum zu erweitern, und ein zweiter Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer umgekehrten Reihenfolge in dem Adressraum zu erweitern; – Herunterladen einer Deltadatei des anwendbaren Deltadateityps von dem Server zu der Vorrichtung; und – Erweitern der Software unter Verwendung der anwendbaren Deltadatei, und ferner den Schritt eines Modifizieren einer Startadresse innerhalb des Adressraums in einem Urladecode für die Software abhängig von dem Bewegen von Daten zwischen den Speicherblöcken.
  2. Computerprogrammerzeugnis für eine Verwendung in einer computergesteuerten elektronischen Vorrichtung (40) zum Aktualisieren einer Software, die in einer ersten Version (V1) in der Vorrichtung vorhanden ist, wobei die Vorrichtung eine Einrichtung zum Empfangen und Ausführen einer Deltadatei (D12) zum Erweitern der ersten Version auf eine zweite Version (V2) aufweist, wobei die Software in eine Anzahl von Speicherblöcken (201204), die in einem Adressraum (211) eines physikalischen Speichers (48) in der Vorrichtung definiert sind, geteilt und in derselben gespeichert ist, wobei das Computerprogrammerzeugnis einen ausführbaren Computerprogrammcode aufweist, der erdacht ist, um zu bewirken, dass die Vorrichtung folgende Schritte durchführt: – Definieren eines zusätzlichen Speicherblocks (212), der der Anzahl von Speicherblöcken zugeordnet ist und anfänglich vor einem ersten Speicherblock, der sich an einem Ende des Speicherraums befindet, platziert ist; – Löschen des zusätzlichen Speicherblocks; – Schreiben von aktualisierten Daten für den ersten Speicherblock in den zusätzlichen Speicherblock; – Bewegen des zusätzlichen Speicherblocks einen Block vorwärts; und – Verarbeiten aller der Anzahl von Speicherblöcken nacheinander durch Löschen des zusätzlichen Speicherblocks, Schreiben von aktualisierten Daten für den Speicherblock, der benachbart zu und nach dem zusätzlichen Speicherblock ist, in den zusätzlichen Speicherblock, Bewegen des zusätzlichen Speicherblocks jeweils einen Block vorwärts, bis alle der Anzahl von Speicherblöcken einen Schritt in dem Adressraum verschoben wurden; – Umkehren der Reihenfolge des Schreibens von Speicherblöcken in dem Adressraum von der Erweiterung von einer ersten Version auf eine zweite Version zu einer zweiten Erweiterung von der zweiten Version auf eine dritte Version, dadurch gekennzeichnet, dass das Computerprogrammerzeugnis ferner einen ausführbaren Computerprogrammcode aufweist, der erdacht ist, um zu bewirken, dass die Vorrichtung folgende Schritte durchführt: – vor einem Empfangen und Ausführen einer Deltadatei, Verbinden der Vorrichtung mit einem Server und Übertragen von Informationen, die auf einen aktuellen Adressraumstatus bezogen sind, der abhängig von dem derzeitigen Ort des zusätzlichen Blocks in dem Adressraum bestimmt, welcher Typ einer Deltadatei zum Erweitern der Software anwendbar ist, wobei ein erster Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer Reihenfolge in dem Adressraum zu erweitern, und ein zweiter Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer umgekehrten Reihenfolge in dem Adressraum zu erweitern; – Herunterladen einer Deltadatei des anwendbaren Deltadateityps von dem Server zu der Vorrichtung; und – Erweitern der Software unter Verwendung der anwendbaren Deltadatei, und ferner – Modifizieren einer Startadresse innerhalb des Adressraums in einem Urladecode für die Software abhängig von dem Bewegen von Daten zwischen den Speicherblöcken.
  3. Funkkommunikationsendgerät (40), das ein Computersystem (47) mit einem zugeordneten Computercode zum Aktualisieren einer Software, die in einer ersten Version (V1) in dem Endgerät vorhanden ist, und eine Einrichtung (46) zum Empfangen und Ausführen einer Deltadatei (D12) zum Erweitern der ersten Version auf eine zweite Version (V2) aufweist, wobei die Software in eine Anzahl von Speicherblöcken (201204), die in einem Adressraum (211) eines physikalischen Speichers (48) in dem Endgerät definiert sind, geteilt und in derselben gespeichert ist, wodurch ein zusätzlicher Speicherblock (212), der der Zahl von Speicherblöcken zugeordnet ist und anfänglich vor einem ersten Speicherblock, der sich an einem Ende des Speicherraums befindet, platziert ist, in dem Adressraum definiert ist, wobei das Endgerät ferner eine Einrichtung zum Löschen des zusätzlichen Speicherblocks, eine Datenschreibeinrichtung zum Schreiben von aktualisierten Daten für den ersten Speicherblock in den zusätzlichen Speicherblock, eine Einrichtung zum Bewegen des zusätzlichen Speicherblocks einen Block vorwärts und eine Einrichtung zum Verarbeiten aller der Anzahl von Speicherblöcken nacheinander durch Löschen des zusätzlichen Speicherblocks, Schreiben von aktualisierten Daten für den Speicherblock, der benachbart zu und nach dem zusätzlichen Speicherblock ist, in den zusätzlichen Speicherblock, Bewegen des zusätzlichen Speicherblocks jeweils einen Block vorwärts, bis alle der Anzahl von Speicherblöcken einen Schritt in dem Adressraum verschoben wurden, eine Einrichtung zum Umkehren der Reihenfolge des Schreibens von Speicherblöcken in dem Adressraum von der Erweiterung von einer ersten Version auf eine zweite Version zu einer zweiten Erweiterung von der zweiten Version auf eine dritte Version aufweist, dadurch gekennzeichnet, dass die Vorrichtung angeordnet ist, um sich vor einem Empfangen und Ausführen einer Deltadatei mit einem Server zu verbinden, zum Übertragen von Informationen, die auf einen aktuellen Adressraumstatus bezogen sind, der abhängig von dem derzeitigen Ort des zusätzlichen Blocks in dem Adressraum bestimmt, welcher Typ einer Deltadatei zum Erweitern der Software anwendbar ist, wobei ein erster Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer Reihenfolge in dem Adressraum zu erweitern, und ein zweiter Deltadateityp angepasst ist, um die Software, die in den Speicherblöcken vorhanden ist, in einer umgekehrten Reihenfolge in dem Adressraum zu erweitern, wobei das Endgerät eine Einrichtung zum Herunterladen einer Deltadatei des anwendbaren Deltadateityps von dem Server zu der Vorrichtung und eine Einrichtung zum Erweitern der Software unter Verwendung der anwendbaren Deltadatei aufweist und ferner eine Einrichtung zum Modifizieren einer Startadresse innerhalb des Adressraums in einem Urladecode für die Software abhängig von dem Bewegen von Daten zwischen den Speicherblöcken während des Schreibens, wie durch die Deltadatei bestimmt, aufweist.
DE602004013120T 2004-03-10 2004-03-10 Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen Expired - Lifetime DE602004013120T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04005700A EP1574952B1 (de) 2004-03-10 2004-03-10 Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen

Publications (2)

Publication Number Publication Date
DE602004013120D1 DE602004013120D1 (de) 2008-05-29
DE602004013120T2 true DE602004013120T2 (de) 2009-05-14

Family

ID=34814286

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004013120T Expired - Lifetime DE602004013120T2 (de) 2004-03-10 2004-03-10 Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen

Country Status (6)

Country Link
US (1) US7502813B2 (de)
EP (1) EP1574952B1 (de)
JP (1) JP4801041B2 (de)
CN (1) CN100492292C (de)
AT (1) ATE392661T1 (de)
DE (1) DE602004013120T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
DE102006057977A1 (de) * 2006-12-08 2008-06-12 Siemens Ag Verfahren und Vorrichtung zum Aktualisieren einer Datenbank und Computerprogrammprodukt
CN101159610B (zh) * 2007-11-09 2010-06-09 中兴通讯股份有限公司 一种远程擦除传输设备单板软件的方法及其装置
US8356151B2 (en) 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8327101B2 (en) 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8136108B2 (en) * 2008-09-03 2012-03-13 Computime, Ltd Updating firmware with multiple processors
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
CN101610499A (zh) * 2009-07-13 2009-12-23 中兴通讯股份有限公司 无线数据卡的升级方法和***
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
US20120047223A1 (en) * 2010-08-20 2012-02-23 Nokia Corporation Method and apparatus for distributed storage
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
CN102508713B (zh) 2011-10-12 2015-01-28 杭州华三通信技术有限公司 进程启动方法及装置
WO2014018256A1 (en) 2012-07-26 2014-01-30 Utc Fire And Security Americas Corporation, Inc. Wireless firmware upgrades to an alarm security panel
CN102945179B (zh) * 2012-11-28 2016-06-29 青岛海信宽带多媒体技术有限公司 基于mtd分区的软件升级方法和装置
CN103605552B (zh) * 2013-11-29 2017-12-29 Tcl通力电子(惠州)有限公司 Mcu的升级方法和装置
CN105718246A (zh) * 2014-07-31 2016-06-29 格马尔托股份有限公司 在电子设备中管理应用程序包的方法
CN107077396B (zh) * 2015-01-26 2020-12-04 日立汽车***株式会社 车载控制装置、程序写入装置、程序生成装置以及方法
CN104810055B (zh) * 2015-05-08 2018-09-07 京东方科技集团股份有限公司 Flash芯片读写控制电路和方法、AMOLED应用电路
EP3358465B1 (de) * 2015-09-29 2024-04-17 Hitachi Astemo, Ltd. Fahrzeuginterne steuerungsvorrichtung, programmaktualisierungssystem und programmaktualisierungssoftware
DE102017205274A1 (de) * 2017-03-29 2018-10-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren eines Programmes
CN109284123A (zh) * 2017-07-21 2019-01-29 深圳市中兴微电子技术有限公司 一种采用版本分割实现压缩版本升级的方法及***
CN111124475B (zh) * 2018-10-31 2023-12-08 伊姆西Ip控股有限责任公司 存储管理的方法、电子设备和计算机可读存储介质
CN111240722B (zh) * 2020-01-07 2021-05-04 翱捷科技股份有限公司 空中升级固件的方法及其所应用的终端、服务器及***
CN113225729B (zh) * 2020-01-21 2022-07-12 荣耀终端有限公司 空中下载技术ota升级的方法、设备及可读存储介质
CN113472884A (zh) * 2021-06-30 2021-10-01 潍柴动力股份有限公司 Ota升级方法和装置
CN113986312B (zh) * 2021-12-09 2024-03-26 北京奕斯伟计算技术股份有限公司 软件升级方法、装置、电子设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3542565C2 (de) * 1984-12-03 1994-03-31 Asahi Chemical Ind Kunststofftüte und Verfahren zu ihrer Herstellung
EP0398545A1 (de) * 1989-05-19 1990-11-22 Delco Electronics Corporation Verfahren und Vorrichtung zur Datenspeicherung in einem nichtflüchtigen Speicher
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
DE19520030C1 (de) * 1995-05-31 1996-05-15 Siemens Ag Verfahren zur Aktualisierung der Programmstruktur einer modularen Kommunikationsanlage
US5960445A (en) * 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
JP3497066B2 (ja) * 1996-10-16 2004-02-16 富士通株式会社 フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置
DE19652628A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung Kommunikationssystem
JPH113223A (ja) * 1997-06-10 1999-01-06 Canon Inc 情報処理装置及び情報格納方法
JP2000293366A (ja) * 1999-04-06 2000-10-20 Mitsubishi Electric Corp セットトップボックス用モジュールのアップデート方法
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
JP4772214B2 (ja) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
JP3830867B2 (ja) * 2002-07-10 2006-10-11 Necエレクトロニクス株式会社 シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
US7340736B2 (en) * 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US6938140B2 (en) * 2002-08-29 2005-08-30 Micron Technology, Inc. System and method for linear object reallocation in place

Also Published As

Publication number Publication date
JP2007528071A (ja) 2007-10-04
EP1574952B1 (de) 2008-04-16
CN1930551A (zh) 2007-03-14
US20080126672A1 (en) 2008-05-29
US7502813B2 (en) 2009-03-10
ATE392661T1 (de) 2008-05-15
EP1574952A1 (de) 2005-09-14
CN100492292C (zh) 2009-05-27
DE602004013120D1 (de) 2008-05-29
JP4801041B2 (ja) 2011-10-26

Similar Documents

Publication Publication Date Title
DE602004013120T2 (de) Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen
DE10315490B4 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE602004006404T2 (de) Flashback-datenbank
DE69838756T2 (de) Die verarbeitung von eingabe/ausgabeanforderungen von mehreren treibern ermöglichen dateisystem-primitivroutine in einem mehrschicht-treiber-e/a-system
DE69821844T2 (de) Verfahren zur automatischen Installierung und übertragung von Daten auf ein Rechnerplattenlaufwerk
DE60205755T2 (de) System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE10297281T5 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE102005029744A1 (de) Verfahren zum Updaten von Kartendaten
DE102006026714A1 (de) Verfahren und System zum Aufrechterhalten eines Systemmanagement-BIOS
DE112012000282T5 (de) Anwendungswiederherstellung in einem Dateisystem
EP1721248B1 (de) Verfahren und datenverarbeitungsgerät zur aktualisierung von rechnerprogrammen per datenübertragung
DE102012221814A1 (de) Neuanordnung von Software-Abbildern auf der Grundlage von deren vorhergesagter Verwendung
DE102014116321A1 (de) Update einer Firmware
DE19741703A1 (de) Verfahren zum Laden von Betriebssoftware sowie Mobiltelefon hierfür
DE102006004599A1 (de) Endgerät und Verfahren zur Aktualisierung von Programmcode eines Endgeräts
EP3668132B1 (de) Inkrementelles aktualisieren einer firmware
DE602004013269T2 (de) Verfahren und Gerät zur Aktualisierung nichtflüchtiger Speicherinhalte auf einem schnurlosen Gerät durch Überprüfen und Vergleich eines spezifischen, in besagtem Speicher abgelegten Identifikations-Elements mit einer Software-Identifikation
DE102018213045A1 (de) Verfahren, Steuervorrichtung, Computerprogramm und Computerprogrammprodukt zum Aktualisieren einer Software für eine Steuervorrichtung
DE102004006308B4 (de) Verfahren zum Verändern von Programmcode eines tragbaren Datenträgers mittels Patchdaten
EP3926450B1 (de) Dynamisches herstellen einer kompatibilität von dateisystemen in echtzeit
DE60202858T2 (de) Installation von softwareanwendungen in einem endgerät
EP2054822A1 (de) Verfahren und vorrichtung zum aktualisieren einer datenbank und computerprogrammprodukt
DE112021000801T5 (de) Informationsverarbeitungsvorrichtung und Informationsverarbeitungsverfahren

Legal Events

Date Code Title Description
8328 Change in the person/name/address of the agent

Representative=s name: PATENT- UND RECHTSANWAELTE KRAUS & WEISERT, 80539

8364 No opposition during term of opposition