-
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 101–104 gespeichert
sind. Die Speicherblöcke 101–104 sind
in einem Speicherraum 111 in einem physikalischen Speicher
der Vorrichtung definiert. Die Speicherblöcke 101–104 sind
vertikal, in einem speziellen Zustand 106–110 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 201–204 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 201–204 auf.
Anstatt eines Verwenden eines spezifischen Sicherungsblocks ist
jedoch ein zusätzlicher Block
vor dem Binär-Abbild,
das durch die Blöcke 201–204 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.