DE60205755T2 - System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen - Google Patents
System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen Download PDFInfo
- Publication number
- DE60205755T2 DE60205755T2 DE60205755T DE60205755T DE60205755T2 DE 60205755 T2 DE60205755 T2 DE 60205755T2 DE 60205755 T DE60205755 T DE 60205755T DE 60205755 T DE60205755 T DE 60205755T DE 60205755 T2 DE60205755 T2 DE 60205755T2
- Authority
- DE
- Germany
- Prior art keywords
- code
- symbol
- code section
- section
- updated
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims abstract description 97
- 230000008569 process Effects 0.000 claims description 10
- 238000004513 sizing Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 abstract description 5
- 230000002085 persistent effect Effects 0.000 abstract 4
- 238000003860 storage Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 8
- 238000005056 compaction Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W8/20—Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
- Transceivers (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
- Sub-Exchange Stations And Push- Button Telephones (AREA)
- Information Transfer Between Computers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Selective Calling Equipment (AREA)
- Circuits Of Receivers In General (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
- HINTERGRUND DER ERFINDUNG
- 1. Gebiet der Erfindung
- Diese Erfindung betrifft allgemein drahtlose Kommunikationsvorrichtungen und genauer ein System und ein Verfahren zum Aktualisieren von Codeabschnitten in der Systemsoftware einer auf dem Markt befindlichen drahtlosen Kommunikationsvorrichtung über eine Luftverbindungsschnittstelle.
- 2. Beschreibung des Standes der Technik
- Es ist nicht ungewöhnlich, Softwareaktualisierungen für Telefone herauszugeben, die schon auf dem Markt sind. Diese Aktualisierungen können Probleme betreffen, die, sobald die Telefone hergestellt und an die Öffentlichkeit verteilt worden sind, in der Software gefunden wurden. Einige Aktualisierungen können die Verwendung neuer Eigenschaften des Telefons oder Dienste mit sich bringen, die von dem Dienstanbieter bereitgestellt werden. Noch andere Aktualisierungen können auf regionalen Problemen oder Problemen beruhen, die mit bestimmten Netzbetreibern verbunden sind. Zum Beispiel kann in bestimmten Regionen der Netzaufbau von Netzbetreibern dem mobilen Gerät Bedingungen der Luftverbindungsschnittstelle auferlegen, die bewirken, dass das mobile Gerät ein unerwartetes Verhalten zeigt, wie zum Beispiel eine unpassende Kanalsuche, eine unsachgemäße Rufbeendigung, einen ungenauen Ton oder Ähnliches.
- Die herkömmliche Vorgehensweise bei solchen Aktualisierungen war, die drahtlose Kommunikationsvorrichtung, die hier auch als drahtlose Vorrichtung, Telefon oder mobiles Gerät bezeichnet wird, in die nächste Einzelhandels-/Servive- Verkaufsstelle des Netzbetreibers oder zu dem Hersteller zurückzurufen, um die Änderungen auszuführen. Die Kosten, die solche Aktualisierungen verursachen, sind erheblich und schmälern den Endgewinn. Ferner macht es dem Kunden Umstände und wahrscheinlich ärgert er sich. Oftmals ist die praktische Lösung, dem Kunden neue Telefone zu geben.
- Ein konventionelles Beispielsystem zum Konfigurieren von Software in einer Telekommunikationsvorrichtung ist in
US 5,771,386 (DE 19,502,728 ) ("Baumbauer") beschrieben. Baumbauer betrifft eine Telekommunikationsvorrichtung, die Software hat, die mehrere, getrennt kompatible Programmeinheiten aufweist. Um die notwendige Zeit zum Herstellen der Vorrichtung und die notwendige Zeit zur Implementierung von Softwareänderungen zu reduzieren, lehrt Baumbauer, dass jede Programmeinheit einen Kopf hat, welcher Adressen (Ap1, Ap2, Ad) enthält, die zum Adressieren von Prozeduren und/oder Daten verwendet werden, die in den Programmeinheiten zusammengefasst sind. Ferner ist ein Katalog vorgesehen, der Verweise zum Adressieren der Köpfe der Programmeinheiten enthält. Der Katalog steht allen geladenen Programmeinheiten zur Verfügung. Im Rahmen der Herstellung der Telekommunikationsvorrichtung müssen die vordefinierten Programmeinheiten nicht verbunden sein, wenn die Software der Telekommunikationsvorrichtung implementiert wird. - Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung preiswert und ohne Umstände für den Kunden aktualisiert werden könnte.
- Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung aktualisiert werden könnte, ohne dass die Kunden die Verwendbarkeit ihrer Telefone für eine signifikante Zeitspanne verlieren.
- Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung mit einem Minimum an Techniker- Servicezeit oder ohne das Erfordernis aktualisiert werden könnte, das Gerät zu einer Serviceeinrichtung zu senden.
- Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung in Codeabschnitte aufgeteilt werden könnte, so dass nur bestimmte Codeabschnitte der Systemsoftware ersetzt werden müssten, um die Systemsoftware zu aktualisieren. Es wäre vorteilhaft, wenn diese Codeabschnitte zu der drahtlosen Vorrichtung über die Luftverbindung kommuniziert werden könnten.
- ZUSAMMENFASSUNG DER ERFINDUNG
- Softwareaktualisierungen einer drahtlosen Kommunikationsvorrichtung ermöglichen den Kunden das bestmögliche Produkt und Nutzererlebnis. Eine teure Komponente des Geschäfts beruht auf dem Rückruf von mobilen Geräten, um die Software zu aktualisieren. Diese Aktualisierungen können notwendig sein, um dem Nutzer zusätzliche Dienste anzubieten oder um Probleme anzugehen, die bei der Verwendung des Telefons entdeckt wurden, nachdem es hergestellt wurde. Die vorliegende Erfindung ermöglicht es, die auf dem Markt befindliche Software der mobilen Geräte über die Luftverbindungsschnittstelle praktisch nachzurüsten.
- Entsprechend wurde ein Verfahren, wie es in Anspruch 1 definiert ist, zum Aktualisieren von Systemsoftware bereitgestellt, die in dem Speicher einer drahtlosen Kommunikationsvorrichtung gespeichert ist. Das Verfahren weist auf: Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken einschließlich einer Codeabschnitt-Adresstabelle, einer Symboloffset-Adresstabelle, eines Symbol-Zugriffscodes, einer Patchbibliothek und Lese-Schreib-Daten für eine Mehrzahl von Symbolbibliotheken; Anordnen der Codeabschnitt-Adresstabelle, der Symboloffset-Adresstabelle, des Symbol-Zugriffscodes, der Patch-Bibliothek, der Lese-Schreib-Daten und der Symbol-Zugriffscodeadresse in einen Patchmanager-Codeabschnitt; Speichern der Systemsoftware für die drahtlose Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten; Empfangen neuer Codeabschnitte über eine Luftschnittstelle der drahtlosen Kommunikationsvorrichtung; Speichern der neuen Codeabschnitte in einem Dateisystemabschnitt des Speichers; Identifizieren aktueller Codeabschnitte zum Aktualisieren; Ersetzen aktueller Codeabschnitte durch neue Codeabschnitte, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden; und Ausführen der aktualisierten Systemsoftware.
- In einigen Aspekten der Erfindung weist das Empfangen neuer Codeabschnitte das Empfangen eines neuen Patchmanager-Codeabschnitts auf; und das Ersetzen aktueller Codeabschnitte durch neue Codeabschnitte, um die aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, weist das Ersetzen eines aktuellen Patchmanager-Codeabschnitts durch den neuen Patchmananger-Codeabschnitt auf.
- Weitere Details des oben beschriebenen Verfahrens zum Aktualisieren der Systemsoftware der drahtlosen Vorrichtung und ein System einer drahtlosen Vorrichtung zum Aktualisieren der Systemsoftware, wie in Anspruch 17 definiert, werden nachstehend ausführlich dargestellt.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein schematisches Blockdiagramm des gesamten Softwarewartungssystems der drahtlosen Vorrichtung. -
2 ist ein schematisches Blockdiagramm des Softwarewartungssystems, das die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt. -
3 ist ein schematisches Blockdiagramm, das das System der vorliegenden Erfindung zum Aktualisieren von Systemsoftware in einer drahtlosen Kommunikationsvorrichtung darstellt. -
4 ist ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung. -
5 ist eine Tabelle, die die Codeabschnitt-Adresstabelle von3 darstellt. -
6 ist eine ausführliche Darstellung der Symbolbibliothek eins von3 , mit Symbolen. -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle von3 darstellt. - Die
8a bis8c sind Flussdiagramme, die das Verfahren der vorliegenden Erfindung zum Aktualisieren der Systemsoftware im Speicher einer drahtlosen Kommunikationsvorrichtung darstellen. - AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
- Einige Teile der ausführlichen Beschreibungen, die folgen, werden in Form von Prozeduren, Schritten, logischen Blöcken, Codes, Ablaufsteuerungen und anderen symbolischen Darstellungen von Operationen an Datenbits innerhalb eines Mikroprozessors oder Speichers einer drahtlosen Vorrichtung präsentiert. Diese Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten in der Datenverarbeitung verwendet werden, um den Inhalt ihrer Arbeit anderen Fachleuten äußerst effektiv mitzuteilen. Eine Prozedur, ein von einem Mikroprozessor ausgeführter Schritt, eine Anwendung, ein logischer Block, ein Prozess u.s.w. wird hier und allgemein verstanden als eine in sich konsistente Folge von Schritten oder Anweisungen, die zu einem gewünschten Ergebnis führen. Die Schritte sind jene, die physische Manipulationen physikalischer Größen erfordern. Obgleich nicht notwendigerweise, haben diese Größen üblicherweise die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweit in einer mikroprozessorbasierten drahtlosen Vorrichtung verarbeitet werden können. Es hat sich zuweilen erwiesen, hauptsächlich aus Gründen des allgemeinen Gebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Nummern oder Ähnliches zu bezeichnen. Wo physische Vorrichtungen, wie zum Beispiel ein Speicher, erwähnt werden, sind sie mit anderen physischen Vorrichtungen durch einen Bus oder eine andere elektrische Verbindung verbunden. Diese physischen Vorrichtungen können betrachtet werden, dass sie mit logischen Abläufen oder Anwendungen zusammenwirken und deshalb mit logischen Operationen "verbunden" sind. Zum Beispiel kann ein Speicher einen Code speichern oder auf ihn zugreifen, um eine logische Operation zu unterstützen.
- Man sollte jedoch nicht vergessen, dass alle diese und ähnliche Terme mit den geeigneten physikalischen Größen in Verbindung zu bringen sind und lediglich zweckmäßige Kennzeichnungen sind, die auf diese Größen angewendet werden. Sofern es nicht speziell anderweitig erklärt wird, als es aus den folgenden Diskussionen ersichtlich ist, versteht es sich, dass in der ganzen vorliegenden Erfindung Diskussionen, die Terme wie zum Beispiel "Verarbeiten" oder "Verbinden" oder "Übersetzen" oder "Anzeigen" oder "Eingeben" oder "Bestimmen" oder "Anzeigen" oder "Erkennen" oder Ähnliches verwenden, die Aktivität und die Prozesse in einem Mikroprozessorsystem einer drahtlosen Vorrichtung bezeichnen, das Daten, die als physikalische (elektronische) Größen innerhalb der Register und der Speicher des Computersystems repräsentiert sind, verarbeitet und in andere Daten umformt, die in gleicher Weise als physikalische Größen innerhalb der Speicher oder Register oder anderer solcher Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen der drahtlosen Vorrichtung dargestellt sind.
-
1 ist ein schematisches Blockdiagramm des gesamten Softwarewartungssystems100 der drahtlosen Vorrichtung. Die Systemsoftware-Organisation der vorliegenden Erfindung ist im Folgenden im Anschluss an einen allgemeinen Überblick über das Softwarewartungssystem100 ausführlich dargestellt. Das allgemeine System100 beschreibt einen Prozess des Lieferns von Systemsoftwareaktualisierungen und Befehlssätzen (Programmen) und das Installieren der gelieferten Software in einer drahtlosen Vorrichtung. Die Systemsoftwareaktualisierungen oder Patcherzeuger-Befehlssätze (PMIS) werden von dem Hersteller der mobilen Geräte erstellt. Die Systemsoftware ist in Symbolbibliotheken organisiert. Die Symbolbibliotheken sind in Codeabschnitten angeordnet. Wenn Symbolbibliotheken aktualisiert werden müssen, wird das Software-Update102 als ein oder mehrere Codeabschnitte transportiert. Das Software-Update wird zu den auf dem Markt befindlichen drahtlosen Vorrichtungen gesendet, von denen die drahtlose Kommunikationsvorrichtung104 repräsentativ ist, oder wird in separater Kommunikation von einer Basisstation106 unter Verwendung gut bekannter, konventioneller Luft-, Daten- oder Nachrichtentransportprotokolle übertragen. Die Erfindung ist auf kein bestimmtes Transportformat beschränkt, da die drahtlose Kommunikationsvorrichtung leicht modifiziert werden kann, um jedes verfügbare Über-Luft-Transportprotokoll für den Zweck des Empfangens der Systemsoftware und der PMIS-Updates zu verarbeiten. - Die Systemsoftware kann als eine Sammlung von verschiedenen Untersystemen betrachtet werden. Codeobjekte können fest in einem dieser abstrakten Untersysteme verankert sein, und die resultierende Sammlung kann als eine Symbolbibliothek gekennzeichnet werden. Dies sorgt für eine logische Aufgliederung der Codebasis, und Software-Patches und -Fixes können mit einer dieser Symbolbibliotheken in Verbindung gebracht werden. In den meisten Fällen ist eine einzelne Aktualisierung mit einer oder meistens zwei Symbolbibliotheken verbunden. Der Rest der Codebasis, die anderen Symbolbibliotheken, bleiben unverändert.
- Der Gedanke der Symbolbibliotheken stellt einen Mechanismus bereit, mit Code und Konstanten umzugehen. Auf der anderen Seite passen die Lese-Schreib (RW)-Daten in eine einzelne individuelle RW-Bibliothek, die RAM-basierte Daten für alle Bibliotheken enthält.
- Sobald der transportierte Codeabschnitt durch die drahtlose Vorrichtung
104 empfangen wurde, muss er verarbeitet werden. Diese drahtlose Vorrichtung überschreibt einen bestimmten Codeabschnitt des nichtflüchtigen Speichers108 . Der nichtflüchtige Speicher108 weist einen Dateisystemabschnitt (FSS)110 und einen Codespeicherabschnitt112 auf. Der Codeabschnitt wird vor dem Transport typischerweise komprimiert, um die Belegung in dem FSS110 zu minimieren. Oft wird der aktualisierte Codeabschnitt von seinen RW-Daten begleitet sein, die eine andere Art von Symbolbibliothek sind, die alle RW-Daten für jede Symbolbibliothek enthält. Obwohl die RW-Daten beim Ausführen der Systemsoftware in einen flüchtigen Direktzugriffs-Schreib-Lese-Speicher114 geladen werden, müssen sie immer in dem nichtflüchtigen Speicher108 gespeichert werden, so dass sie jedes Mal in den flüchtigen Direktzugriffs-Schreib-Lese-Speicher114 geladen werden können, wenn die drahtlose Vorrichtung zurückgesetzt wird. Das beinhaltet, dass beim ersten Mal RW-Daten in den flüchtigen Direktzugriffs-Schreib-Lese-Speicher geladen werden. Wie nachfolgend ausführlicher erläutert, sind die RW-Daten typischerweise mit einem Patchmanager-Codeabschnitt angeordnet. - Das System
100 weist das Konzept virtueller Tabellen auf. Durch die Verwendung solcher Tabellen können Symbolbibliotheken in einem Codeabschnitt ohne Zerteilen (Ersetzen) anderer Teile der Systemsoftware (andere Codeabschnitte) eingesetzt (ersetzt) werden. Virtuelle Tabellen werden aus Effizienzgründen von dem flüchtigen Direktzugriffs-Schreib-Lese-Speicher114 ausgeführt. Eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle sind virtuelle Tabellen. - Die aktualisierten Codeabschnitte werden durch die drahtlose Vorrichtung
104 empfangen und in dem FSS110 gespeichert. Eine Benutzerschnittstelle (UI) der drahtlosen Vorrichtung gibt dem Benutzer typischerweise bekannt, dass neue Software verfügbar ist. In Antwort auf UI-Eingabeaufforderungen bestätigt der Benutzer die Bekanntgabe und signalisiert den Patch- oder Aktualisierungsvorgang. Alternativ wird der Aktualisierungsvorgang automatisch ausgeführt. Es kann sein, dass die drahtlose Vorrichtung normale Kommunikationsaufgaben nicht ausführen kann, während der Aktualisierungsvorgang ausgeführt wird. Der Patchmanager-Codeabschnitt weist eine nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek auf, die auch in den flüchtigen Direktzugriffs-Schreib-Lese-Speicher114 geladen wird. Die nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek bewirkt, dass Codeabschnitte mit aktualisierten Codeabschnitten überschrieben werden. Wie in der Figur gezeigt, werden der Codeabschnitt n und der Patchmanager-Codeabschnitt mit aktualisierten Codeabschnitten überschrieben. Der Patchmanager-Codeabschnitt weist die Lese-Schreib-Daten, die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle sowie einen Symbol-Zugriffscode und die Symbol- Zugriffscodeadresse (im Folgenden erörtert) auf. Teile von diesen Daten sind ungültig, wenn aktualisierte Codeabschnitte eingeführt werden, und ein aktualisierter Patchmanager-Codeabschnitt weist Lese-Schreib-Daten, eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle auf, die für die aktualisierten Codeabschnitte gültig sind. Sobald die aktualisierten Codeabschnitte in den Codespeicherabschnitt112 geladen sind, wird die drahtlose Vorrichtung zurückgesetzt. Anschließend an den Rücksetzvorgang kann die drahtlose Vorrichtung die aktualisierte Systemsoftware ausführen. Es versteht sich auch, dass der Patchmanager-Codeabschnitt andere Symbolbibliotheken beinhalten kann, die oben nicht erörtert wurden. Diese anderen Symbolbibliotheken müssen nicht in den flüchtigen Schreib-Lese-Speicher114 geladen werden. -
2 ist ein schematisches Blockdiagramm des Softwarewartungssystems100 , welches die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt. Zusätzlich zum Aktualisieren von Systemsoftware-Codeabschnitten kann dass Wartungssystem100 Befehlssätze oder Programme herunterladen und installieren, die hier als Patcherzeuger-Befehlssatz (PMIS) bezeichnet werden. Der PMIS-Codeabschnitt200 wird zu der drahtlosen Vorrichtung104 in der gleichen Weise wie die oben beschriebenen Systemsoftware-Codeabschnitte transportiert. PMIS-Codeabschnitte werden am Anfang in dem FSS110 gespeichert. Ein PMIS-Codeabschnitt ist typischerweise eine Binärdatei, die man sich als kompilierte Anweisungen für das mobile Gerät vorstellen kann. Ein PMIS-Codeabschnitt ist umfassend genug, um für die Ausführung von grundlegenden mathematischen Operationen und die Ausführung von bedingt ausgeführten Operationen zu sorgen. Beispielsweise könnte ein RF-Kalibrierungs-PMIS die folgenden Operationen ausführen:
IF RF CAL ITEM IS LESS THAN X
EXECUTE INSTRUCTION
ELSE
EXECUTE INSTRUCTION - Ein PMIS kann grundlegende mathematische Operationen unterstützen, wie zum Beispiel Addition, Subtraktion, Multiplikation und Division. Wie bei den Systemsoftware-Codeabschnitten kann der PMIS-Codeabschnitt in Antwort auf UI-Eingabeaufforderungen geladen werden, und die drahtlose Vorrichtung muss zurückgesetzt werden, nachdem der PMIS in den Codespeicherabschnitt
112 geladen ist. Dann kann der PMIS-Abschnitt ausgeführt werden. Wenn der PMIS-Codeabschnitt mit irgendwelchen virtuellen Tabellen oder Lese-Schreib-Daten verknüpft ist, wird ein aktualisierter Patchmanager-Codeabschnitt mit dem PMIS für die Installation in den Codespeicherabschnitt112 transportiert. Alternativ kann der PMIS von dem FSS110 aufbewahrt und verarbeitet werden. Nachdem das mobile Gerät104 alle Befehle in dem PMIS-Abschnitt ausgeführt hat, kann der PMIS-Abschnitt aus dem FSS110 gelöscht werden. - In einigen Aspekten der Erfindung kann die Organisation der Systemsoftware in Symbolbibliotheken Auswirkungen auf die für die Ausführung erforderliche Größe des flüchtigen Speichers
114 und des nichtflüchtigen Speichers108 haben. Das liegt an der Tatsache, dass die Codeabschnitte typischerweise größer als die in den Codeabschnitten angeordneten Symbolbibliotheken sind. Diese größeren Codeabschnitte existieren, um aktualisierte Codeabschnitte aufzunehmen. Das Organisieren der Systemsoftware als eine Sammlung von Bibliotheken beeinflusst den Kapazitätsbedarf des nichtflüchtigen Speichers. Für die gleiche Codegröße ist die Menge des verwendeten nichtflüchtigen Speichers infolge der Tatsache höher, dass die Codeabschnitte so dimensioniert werden können, dass sie größer als die darin angeordneten Symbolbibliotheken sind. - PMIS ist eine sehr leistungsfähige Laufzeit-Befehlsmaschine. Das mobile Gerät kann jeden zum ihm gelieferten Befehl durch die PMIS-Umgebung ausführen. Dieser Mechanismus kann verwendet werden, um RF-Kalibrierungen und PRI-Aktualisierungen zu unterstützen. Allgemeiner kann PMIS verwendet werden, um Fehler in der Software der drahtlosen Vorrichtung ferngesteuert zu beseitigen, wenn, typischerweise als das Ergebnis von Benutzerbeschwerden, Softwareprobleme durch den Hersteller oder den Dienstanbieter erkannt werden. PMIS kann auch Daten erfassen, die benötigt werden, um Softwareprobleme zu diagnosizieren. PMIS kann neu heruntergeladene Systemanwendungen für die Datenanalyse, die Fehlersuche und die Fehlerbeseitigung starten. PMIS kann auf RW-Daten basierende Updates für die Analyse und mögliche vorläufige Behebung eines Problems anstatt eines aktualisierten Systemsoftware-Codeabschnitts bereitstellen. PMIS kann Speicherkompaktierungsalgorithmen zur Verwendung durch die drahtlose Vorrichtung bereitstellen.
- Sobald die Softwareaktualisierungen zu der drahtlosen Vorrichtung geliefert wurden, unterstützt das Softwarewartungssystem
100 die Speicherkompaktierung. Die Speicherkompaktierung ist ähnlich der Disketten-Defragmentierungsanwendungen in Desktop-Computern. Der Kompaktierungsmechanismus stellt sicher, dass der Speicher optimal genutzt wird und gut ausgewogen für zukünftige Codeabschnitt-Updates ist, bei denen die Größe der aktualisierten Codeabschnitte unvorhersagbar ist. Das System100 analysiert den Codespeicherabschnitt, während er gepatcht (aktualisiert) wird. Das System100 versucht, aktualisierte Codeabschnitte in den Speicherplatz einzupassen, der durch den Codeabschnitt belegt wird, der gerade ersetzt wird. Wenn der aktualisierte Codeabschnitt größer ist als der Codeabschnitt, der gerade ersetzt wird, kompaktiert das System100 die Codeabschnitte im Speicher112 . Alternativ kann die Kompaktierung durch den Hersteller oder Dienstanbieter berechnet werden, und Kompaktierungsanweisungen können zu der drahtlosen Vorrichtung104 transportiert werden. - Die Kompaktierung kann infolge der Komplexität des Algorithmus und auch des enormen Volumens der Datenbewegung ein zeitaufwendiger Vorgang sein. Der Kompaktierungsalgorithmus sagt die Machbarkeit voraus, bevor er irgendeine Verarbeitung beginnt. UI-Eingabeaufforderungen können verwendet werden, um um Erlaubnis von dem Benutzer nachzusuchen, bevor die Kompaktierung versucht wird.
- In einigen Aspekten der Erfindung können alle Systemsoftware-Codeabschnitte gleichzeitig aktualisiert werden. Ein vollständiges Systemsoftware-Upgrade würde jedoch einen größeren FSS
110 erfordern. -
3 ist ein schematisches Blockdiagramm, das das System der vorliegenden Erfindung zum Aktualisieren von Systemsoftware in einer drahtlosen Kommunikationsvorrichtung darstellt. Das System300 weist einen Codespeicherabschnitt112 im Speicher108 einschließlich ausführbarer Systemsoftware der drahtlosen Vorrichtung auf, die in eine Mehrzahl von aktuellen Codeabschnitten aufgeteilt ist. Es sind Codeabschnitt eins (302 ), Codeabschnitt zwei (304 ), Codeabschnitt n (306 ) und ein Patchmanager-Codeabschnitt308 gezeigt. Jedoch ist die Erfindung nicht auf irgendeine bestimmte Anzahl von Codeabschnitten beschränkt. Ferner weist das System300 eine erste Mehrzahl von Symbolbibliotheken auf, die in der zweiten Mehrzahl von Codeabschnitten angeordnet sind. Gezeigt sind die in Codeabschnitt eins (302 ) angeordnete Symbolbibliothek eins (310 ), die in Codeabschnitt zwei (304 ) angeordneten Symbolbibliotheken zwei (312 ) und drei (314 ), und die in Codeabschnitt n (306 ) angeordnete Symbolbibliothek m (316 ). Jede Bibliothek weist Symbole auf, die eine zugehörige Funktionalität haben. Zum Beispiel kann die Symbolbibliothek eins (310 ) den Betrieb des Flüssigkristalldisplays (LCD) der drahtlosen Vorrichtung umfassen. Dann würden die Symbole mit Displayfunktionen in Verbindung stehen. Wie im Folgenden ausführlich erörtert, sind zusätzliche Symbolbibliotheken in dem Patchmanager-Codeabschnitt308 angeordnet. -
4 ist ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung. Wie gezeigt, ist der Speicher der Codespeicherabschnitt112 von1 . Der Speicher ist ein beschreibbarer, nichtflüchtiger Speicher, wie zum Beispiel ein Flash-Speicher. Es versteht sich, dass die Codeabschnitte nicht notwendigerweise in dem gleichen Speicher wie der FSS110 gespeichert sein müssen. Es versteht sich auch, dass die Systemsoftware-Struktur der vorliegenden Erfindung mit Codeabschnitten ermöglicht werden könnte, die in einer Mehrzahl von kooperierenden Speichern gespeichert sind. Der Codespeicherabschnitt112 weist eine zweite Mehrzahl von angrenzend adressierten Speicherblöcken auf, wobei jeder Speicherblock einen zugehörigen Codeabschnitt von der zweiten Mehrzahl von Codeabschnitten speichert. So ist Codeabschnitt eins (302 ) in einem ersten Speicherblock400 , Codeabschnitt zwei (304 ) in dem zweiten Speicherblock402 , Codeabschnitt n (306 ) in dem n-ten Speicherblock404 und der Patchmanager-Codeabschnitt (308 ) in dem p-ten Speicherblock406 gespeichert. - Stellt man die
3 und4 gegenüber, ist der Anfang jedes Codeabschnitts an entsprechenden Startadressen im Speicher gespeichert, und die Symbolbibliotheken sind so angeordnet, dass sie an dem Anfang von Codeabschnitten beginnen. Das heißt, jede Symbolbibliothek beginnt an einer ersten Adresse und durchläuft sequentiell von der ersten Adresse an einen Bereich von Adressen. Zum Beispiel beginnt Codeabschnitt eins (302 ) an der ersten Startadresse408 (markiert mit "S") in dem Codespeicherabschnitt-Speicher112 . In3 beginnt Symbolbibliothek eins (310 ) am Anfang318 des ersten Codeabschnitts. Gleichermaßen beginnt Codeabschnitt zwei (304 ) an einer zweiten Startadresse410 (4 ), und die Symbolbibliothek zwei beginnt am Anfang320 von Codeabschnitt zwei (3 ). Codeabschnitt n (306 ) beginnt an einer dritten Startadresse412 in dem Codespeicherabschnitt-Speicher112 (4 ), und Symbolbibliothek m (316 ) beginnt am Anfang des Codeabschnitts n322 (3 ). Der Patchmanager-Codeabschnitt beginnt an der p-ten Startadresse414 im Codespeicherabschnitt-Speicher112 , und die erste Symbolbibliothek in dem Patchmanager-Codeabschnitt308 beginnt an dem Anfang324 des Patchmanager-Codeabschnitts. Somit ist die Symbolbibliothek eins (310 ) ultimativ in dem ersten Speicherblock400 gespeichert. Wenn ein Codeabschnitt eine Mehrzahl von Symbolbibliotheken aufweist, wie zum Beispiel Codeabschnitt zwei (304 ), werden die Mehrzahl von Symbolbibliotheken in dem zugehörigen Speicherblock, in diesem Fall dem zweiten Speicherblock402 , gespeichert. - In
3 weist die Systemsoftware-Struktur300 ferner eine Codeabschnitt-Adresstabelle326 als einen Symboltyp auf, die in einer Symbolbibliothek enthalten ist, die in dem Patchmanager-Codeabschnitt308 angeordnet ist. Die Codeabschnitt-Adresstabelle stellt Querverweise von Codeabschnitt-Bezeichnern mit den zugehörigen Codeabschnitt-Startadressen im Speicher her. -
5 ist eine Tabelle, die die Codeabschnitt-Adresstabelle326 von3 repräsentiert. Die Codeabschnitt-Adresstabelle326 wird konsultiert, um die Codeabschnitt-Startadresse für eine Symbolbibliothek zu finden. Zum Beispiel sucht das System300 den Codeabschnitt eins, wenn ein Symbol in der Symbolbibliothek eins zur Ausführung erforderlich ist. Um die Startadresse von Codeabschnitt eins zu finden und folglich das Symbol in der Symbolbibliothek eins zu lokalisieren, wird die Codeabschnitt-Adresstabelle326 konsultiert. Die Anordnung von Symbolbibliotheken in Codeabschnitten und das Aufspüren von Codeabschnitten mit einer Tabelle erlaubt es, dass die Codeabschnitte verschoben oder ausgedehnt werden. Die Ausdehnungs- oder Verschiebungsvorgänge können erforderlich sein, um aktualisierte Codeabschnitte (mit aktualisierten Symbolbibliotheken) zu installieren. - Zurückkehrend zu
3 sollte beachtet werden, dass nicht jede Symbolbibliothek notwendigerweise an dem Anfang eines Codeabschnitts beginnt. Wie gezeigt, ist die Symbolbibliothek drei (314 ) im Codeabschnitt zwei (304 ) angeordnet, aber beginnt nicht an der Codeabschnitt-Startadresse320 . Daher konsultiert das System300 , wenn ein Symbol in der Symbolbibliothek 3 (314 ) für die Ausführung erforderlich ist, die Codeabschnitt-Adresstabelle326 für die Startadresse von Codeabschnitt zwei (304 ). Wie im Folgenden erläutert, erlaubt es eine Symboloffset-Adresstabelle, dass die Symbole in der Symbolbibliothek drei (314 ) lokalisiert werden. Es macht nichts, dass die Symbole über mehrere Bibliotheken verteilt sind, solange sie in dem selben Codeabschnitt gehalten werden. - Wie oben erwähnt, weist jede Symbolbibliothek funktionell zugehörige Symbole auf. Ein Symbol ist ein programmiererdefinierter Name zum Lokalisieren und Verwenden des Rumpfes einer Routine, einer Variable oder einer Datenstruktur. Somit kann ein Symbol eine Adresse oder ein Wert sein. Symbole können interne oder externe sein. Interne Symbole sind über den Bereich des aktuellen Codeabschnitts hinaus nicht sichtbar. Genauer gesagt, sie werden nicht von anderen Symbolbibliotheken in anderen Codeabschnitten gesucht.
- Externe Symbole werden über Codeabschnitte hinweg verwendet und aufgerufen und werden von Bibliotheken in unterschiedlichen Codeabschnitten gesucht. Die Symboloffset-Adresstabelle enthält typischerweise eine Liste von allen externen Symbolen.
- Zum Beispiel kann die Symbolbibliothek eins (
310 ) Zeichen auf einer Anzeige der drahtlosen Vorrichtung erzeugen. Symbole in dieser Bibliothek würden wiederum Telefonnummern, Namen, die Uhrzeit oder andere Anzeigemerkmale erzeugen. Jedes Merkmal wird mit Routinen erzeugt, die hier als ein Symbol bezeichnet werden. Beispielsweise erzeugt ein Symbol in der Symbolbibliothek eins (310 ) Telefonnummern auf der Anzeige. Dieses Symbol wird durch ein "X" dargestellt und ist extern. Wenn die drahtlose Vorrichtung einen Telefonanruf empfängt und der Anrufer-ID-Dienst aktiviert ist, muss das System das "X"-Symbol ausführen, um die Nummer auf der Anzeige zu erzeugen. Deshalb muss das System das "X"-Symbol lokalisieren. -
6 ist eine ausführliche Darstellung der Symbolbibliothek eins (310 ) von3 mit Symbolen. Die Symbole sind angeordnet, dass sie von den entsprechenden Codeabschnitt-Startadressen versetzt sind. In vielen Fällen ist der Anfang der Symbolbibliothek der Anfang eines Codeabschnitts, aber das stimmt nicht, wenn ein Codeabschnitt mehr als eine Symbolbibliothek enthält. Symbolbibliothek eins (310 ) beginnt am Anfang des Codeabschnitts eins (siehe3 ). Wie in6 gezeigt, ist das "X"-Symbol bei einem Adressabstand von (03) von dem Anfang der Symbolbibliothek lokalisiert und das "Y"-Symbol ist bei einem Adressabstand von (15) lokalisiert. Die Symboloffset-Adressen sind in einer Symboloffset-Adresstabelle328 in dem Patchmanager-Codeabschnitt gespeichert (siehe3 ). -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle328 von3 darstellt. Die Symboloffset- Adresstabelle328 stellt Querverweise von Symbol-Bezeichnern mit zugehörigen Offset-Adressen und mit zugehörigen Codeabschnitt-Bezeichnern im Speicher her. So wird, wenn das System das "X"-Symbol in der Symbolbibliothek eins ausführen möchte, die Symboloffset-Adresstabelle328 konsultiert, um die exakte Adresse des Symbols in Bezug auf den Codeabschnitt zu lokalisieren, in dem es angeordnet ist. - Zurückkehrend zu
3 weist die erste Mehrzahl von Symbolbibliotheken typischerweise alle Lese-Schreib-Daten auf, die bei der Ausführung dieser Symbolbibliotheken konsultiert oder bestimmt werden müssen. Zum Beispiel kann eine Symbolbibliothek eine Operation enthalten, die von einer bedingten Anweisung abhängt. Der Lese-Schreib-Datenbereich wird konsultiert, um den Zustand zu bestimmen, der erforderlich ist, um die bedingte Anweisung auszuführen. Die vorliegende Erfindung gruppiert die Lese-Schreib-Daten von allen Symbolbibliotheken in einen gemeinsamen Lese-Schreib-Abschnitt. In einigen Aspekten der Erfindung sind die Lese-Schreib-Daten330 in dem Patchmanager-Codeabschnitt308 angeordnet. Alternativ (nicht gezeigt) können die Lese-Schreib-Daten in einem anderen Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), angeordnet sein. Die erste Mehrzahl von Symbolbibliotheken weist auch einen Symbol-Zugriffscode auf, der in einem Codeabschnitt angeordnet ist, um die Adresse eines gesuchten Symbols zu berechnen. Der Symbol-Zugriffscode kann an einer Adresse in einem separaten Codeabschnitt, zum Beispiel Codeabschnitt 2 (304 ), angeordnet und gespeichert sein. Jedoch ist, wie gezeigt, der Symbol-Zugriffscode332 an einer Adresse in dem Patchmanager-Codeabschnitt308 angeordnet und gespeichert. Die Systemsoftware-Struktur300 weist ferner eine erste Speicherstelle zur Speicherung der Symbol-Zugriffscodeadresse auf. Die erste Speicherstelle kann ein Codeabschnitt in dem Codespeicherabschnitt112 oder in einem separaten Speicherabschnitt der drahtlosen Vorrichtung (nicht gezeigt) sein. Die erste Speicherstelle kann auch in dem selben Codeabschnitt wie die Lese-Schreib-Daten angeordnet sein. Wie gezeigt, ist die erste Speicherstelle334 in dem Patchmanager-Codeabschnitt308 mit den Lese-Schreib-Daten330 , der Symboloffset-Adresstabelle328 , der Codeabschnitt-Adresstabelle326 und dem Symbol-Zugriffscode332 und der Patch-Bibliothek (Patch-Symbolbibliothek) gespeichert. - Der Symbol-Zugriffscode greift auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle zu, um die Adresse eines gesuchten Symbols im Speicher zu berechnen oder zu finden. Das heißt, der Symbol-Zugriffscode berechnet die Adresse des gesuchten Symbols unter Verwendung eines zugehörigen Symbol-Bezeichners und eines zugehörigen Codeabschnitt-Bezeichners. Wenn beispielsweise das "X"-Symbol in der Symbolbibliothek eins gesucht wird, wird der Symbol-Zugriffscode aufgerufen, um den Symbol-Bezeichner (Symbol-ID) X_1 entsprechend dem "X"-Symbol zu suchen (siehe
7 ). Der Symbol-Zugriffscode konsultiert die Symboloffset-Adresstabelle, um zu bestimmen, dass der X_1-Symbol-Bezeichner einen Adressabstand von (03) von dem Anfang des Codeabschnitts eins hat (siehe6 ). Der Symbol-Zugriffscode wird aufgerufen, um den Codeabschnitt-Bezeichner CS 1 entsprechend dem Codeabschnitt eins zu suchen. Der Symbol-Zugriffscode konsultiert die Codeabschnitt-Adresstabelle, um die Startadresse zu bestimmen, die dem Codeabschnitt-Bezeichner (Codeabschnitt-ID) CS_1 zugeordnet ist. Auf diese Weise bestimmt der Symbol-Zugriffscode, dass der Symbol-Bezeichner X_1 einen Adressabstand von (03) von der Adresse (00100) hat, oder dass er sich an der Adresse (00103) befindet. - Das Symbol "X" ist ein reservierter Name, da er ein Teil des eigentlichen Codes ist. Mit anderen Worten, er hat absolute Daten, die mit ihm verknüpft sind. Die Daten können eine Adresse oder ein Wert sein. Der Symbol-Bezeichner ist ein alias, der erzeugt wurde, um das Symbol aufzuspüren. Sowohl die Symboloffset-Adresstabelle als auch die Codeabschnitt-Adresstabelle arbeiten mit Bezeichnern, um eine Verwechslung mit reservierten Symbol- und Codeabschnittsnamen zu vermeiden. Es ist auch möglich, das der gleiche Symbolname über viele Symbolbibliotheken hinweg verwendet wird. Die Verwendung von Bezeichnern verhindert eine Verwechslung zwischen diesen Symbolen. Zurückkehrend zu
1 weist die Systemsoftware-Struktur300 ferner einen flüchtigen Lese-Schreib-Speicher114 auf, typischerweise einen Direktzugriffsspeicher (RAM). Die Lese-Schreib-Daten330 , die Codeabschnitt-Adresstabelle326 , die Symboloffset-Adresstabelle328 , der Symbol-Zugriffscode332 und die Symbol-Zugriffscodeadresse334 werden in den flüchtigen Lese-Schreib-Speicher114 von dem Patchmanager-Abschnitt für den Zugriff während der Ausführung der Systemsoftware geladen. Wie bekannt, ist die Zugriffszeit für im RAM gespeicherten Code signifikant geringer als der Zugriff auf einen nichtflüchtigen Speicher, wie zum Beispiel einen Flash. - Zurückkehrend zu
3 kann man bemerken, dass die Symbolbibliotheken die Codeabschnitte, in welchen sie angeordnet sind, nicht notwendigerweise ausfüllen müssen, obwohl die Speicherblöcke dimensioniert sind, um die zugehörigen, darin gespeicherten Codeabschnitte genau aufzunehmen. Anders gesagt, jeder von der zweiten Mehrzahl von Codeabschnitten hat eine Größe in Byte, die die angeordneten Symbolbibliotheken aufnimmt, und jeder der angrenzend andressierten Speicherblöcke hat eine Größe in Byte, die entsprechende Codeabschnitte aufnimmt. Zum Beispiel kann Codeabschnitt eins (302 ) ein 100-Byte-Abschnitt sein, um eine Symbolbibliothek aufzunehmen, die eine Länge von 100 Byte hat. Der erste Speicherblock würde 100 Byte haben, damit er zu der Byte-Größe von Codeabschnitt eins passt. Jedoch kann die in Codeabschnitt1 geladene Symbolbibliothek kleiner als 100 Byte sein. Wie in3 gezeigt, hat der Codeabschnitt eins (302) einen unbenutzten Abschnitt340 , da die Symbolbibliothek eins (310 ) kleiner als 100 Byte ist. Somit kann jeder der zweiten Mehrzahl von Codeabschnitten eine Größe haben, die größer ist als die Größe, die benötigt wird, um die angeordneten Symbolbibliotheken aufzunehmen. Durch "Überdimensionieren" der Codeabschnitte können größere aktualisierte Symbolbibliotheken aufgenommen werden. - Wie in
3 zu sehen, weist das System300 eine Patch-Symbolbibliothek auf, welche hier als Patchbibliothek336 bezeichnet wird, um neue Codeabschnitte in dem Codespeicherabschnitt mit den aktuellen Codeabschnitten anzuordnen. Die Anordnung von neuen Codeabschnitten mit aktuellen Codeabschnitten in dem Codespeicherabschnitt bildet eine aktualisierte, ausführbare Systemsoftware. Der Patchmanager336 ordnet nicht nur neue Codeabschnitte mit den aktuellen Codeabschnitten an, er ersetzt auch Codeabschnitte durch aktualisierte Codeabschnitte. - Zurückkehrend zu
4 empfängt der Dateisystemabschnitt110 des Speichers108 neue Codeabschnitte, wie zum Beispiel den neuen Codeabschnitt450 und einen aktualisierten Patchmanager-Codeabschnitt452 . Der Dateisystemabschnitt empfängt auch einen ersten Patchmanger-Befehlssatz (PMIS)454 einschließlich Anweisungen zum Anordnen der neuen Codeabschnitte mit den aktuellen Codeabschnitten. Wie in1 zu sehen, empfängt eine Luftverbindungsschnittstelle150 neue oder aktualisierte Codeabschnitte sowie den ersten PMIS. Obwohl die Luftverbindungsschnittstelle150 durch eine Antenne dargestellt ist, versteht es sich, dass die Luftverbindungsschnittstelle auch einen RF-Transceiver, eine Basisband-Schaltung und eine Demodulationsschaltung (nicht gezeigt) umfassen würde. Der Dateisystemabschnitt110 speichert die neuen Codeabschnitte, die über die Luftverbindungsschnittstelle150 empfangen wurden. Die Patchbibliothek336 , die von dem flüchtigen Lese-Schreib-Speicher114 ausgeführt wird, ersetzt einen ersten Codeabschnitt in dem Codespeicherabschnitt, zum Beispiel Codeabschnitt n (306 ), durch den neuen oder aktualisierten Codeabschnitt450 in Antwort auf den ersten PMIS454 . Typischerweise wird der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt452 ersetzt. Wenn Codeabschnitte ersetzt werden, überschreibt die Patchbibliothek336 den ersten Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), in dem Codespeicherabschnitt112 mit dem aktualisierten Codeabschnitt, zum Beispiel Codeabschnitt450 , in dem Dateisystemabschnitt110 . Im Extremfall werden alle Codeabschnitte in dem Codespeicherabschnitt112 durch aktualisierte Codeabschnitte ersetzt. Das heißt, der FSS110 empfängt eine zweite Mehrzahl von aktualisierten Codeabschnitten (nicht gezeigt), und die Patchbibliothek336 ersetzt die zweite Mehrzahl von Codeabschnitten in dem Codespeicherabschnitt112 durch die zweite Mehrzahl von aktualisierten Codeabschnitten. Natürlich muss der FSS110 groß genug sein, um die zweite Mehrzahl von aktualisierten Codeabschnitten aufzunehmen, die über die Luftverbindungsschnittstelle empfangen wurden. - Wie oben erwähnt, können die aktualisierten Codeabschnitte, die empfangen werden, Lese-Schreib-Daten-Codeabschnitte, Codeabschnitt-Adresstabelle-Codeabschnitte, Symbolbibliotheken, Symboloffset-Adresstabelle-Codeabschnitte, Symbol-Zugriffscode-Abschnitte oder einen Codeabschnitt mit einer neuen Patchbibliothek aufweisen. Alle diese Codeabschnitte mit ihren zugehörigen Symbolbibliotheken und Symbolen können als eindeutige und unabhängige Codeabschnitte gespeichert werden. Dann würde jeder dieser Codeabschnitte durch einen unikalen aktualisierten Codeabschnitt ersetzt werden. Das heißt, ein aktualisierter Lese-Schreib-Codeabschnitt würde empfangen werden und würde den Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Codeabschnitt-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Codeabschnitt-Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symboloffset-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Symboloffset-Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symbol-Zugriffscode-Abschnitt würde empfangen werden und würde den Symbol-Zugriffscode-Abschnitt in dem Codespeicherabschnitt ersetzen. Gleichermaßen würde ein aktualisierter Patchmanager-Codeabschnitt (mit einer Patchbibliothek) empfangen werden und würde den Patchmanager-Codeabschnitt in dem Codespeicherabschnitt ersetzen.
- Jedoch sind die oben erwähnten Codeabschnitte typischerweise zusammen in dem Patchmanager-Codeabschnitt gebündelt. Daher wird der Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt durch den aktualisierten Lese-Schreib-Codeabschnitt aus dem Dateisystemabschnitt
110 ersetzt, wenn der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt450 ersetzt wird. Gleichermaßen werden die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, der Symbol-Zugriffscode-Abschnitt sowie die Patchbibliothek ersetzt, wenn der aktualisierte Patchmanager-Codeabschnitt450 installiert wird. Die Anordnung der neuen Lese-Schreib-Daten, der neuen Codeabschnitt-Adresstabelle, der neuen Symboloffset-Adresstabelle, des neuen Symbol-Zugriffscodes und der neuen Patchbibliothek als der aktualisierte Patchmanager-Codeabschnitt450 zusammen mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt bildet eine aktualisierte, ausführbare Systemsoftware. - Wenn der Dateisystemabschnitt
110 eine aktualisierte Symbol-Zugriffscodeadresse empfängt, ersetzt der Patchmanager die Symbol-Zugriffscodeadresse an der ersten Stelle im Speicher mit einer aktualisierten Symbol-Zugriffscodeadresse. Wie oben erwähnt, ist die erste Stelle im Speicher334 typischerweise in dem Patchmanager-Codeabschnitt (siehe3 ). - Die
8a bis8c sind Flussdiagramme, die das Verfahren der vorliegenden Erfindung zum Aktualisieren von Systemsoftware im Speicher einer drahtlosen Kommunikationsvorrichtung darstellen. Obwohl der Klarheit wegen das Verfahren als eine Folge von nummerierten Schritten beschrieben ist, sollte aus der Nummerierung keine Reihenfolge abgeleitet werden, es sei denn, es wird explizit erklärt. Das Verfahren beginnt bei Schritt800 . Schritt802 formt die Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken, wobei jede Symbolbibliothek zumindest ein Symbol aufweist. Ferner weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken auf, dass jede Symbolbibliothek Symbole aufweist, die eine zugehörige Funktionalität haben. Schritt804 ordnet die erste Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten an. Schritt806 speichert die Systemsoftware für die drahtlose Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten. Schritt808 empfängt einen neuen Codeabschnitt über eine Luftschnittstelle der drahtlosen Kommunikationsvorrichtung. Schritt810 ordnet den neuen Codeabschnitt mit den aktuellen Codeabschnitten an, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden. Schritt812 führt die aktualisierte Systemsoftware aus. - In einigen Aspekten der Erfindung identifiziert Schritt
809 einen ersten Codeabschnitt zum Aktualisieren. Dann weist das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt810 das Ersetzen des ersten Codeabschnitts durch den neuen Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt812 weist die Verwendung des neuen Codeabschnitts beim Ausführen der aktualisierten Systemsoftware auf. Wenn Schritt806 die Systemsoftware für die drahtlose Vorrichtung in einer zweiten Mehrzahl von aktuellen Codeabschnitten speichert und in Schritt808 eine zweite Mehrzahl von aktualisierten Codeabschnitten empfangen wird, dann weist Schritt810 das Ersetzen der zweiten Mehrzahl von aktuellen Codeabschnitten durch die zweiten Mehrzahl von aktualisierten Codeabschnitten auf, und Schritt812 verwendet die zweite Mehrzahl von aktualisierten Codeabschnitten beim Ausführen der aktualisierten Systemsoftware. - In einigen Aspekten weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken in Schritt
802 das Formen von Lese-Schreib-Daten für eine Mehrzahl von Symbolbibliotheken auf. Dann weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt804 das Anordnen der Lese-Schreib-Daten in einem gemeinsamen Lese-Schreib-Codeabschnitt auf. Das Empfangen eines neuen Codeabschnitts in Schritt808 weist das Empfangen eines aktualisierten Lese-Schreib-Codeabschnitts auf, und das Identifizieren eines ersten Codeabschnitts zum Aktualisieren in Schritt809 weist das Idenfifizieren des Lese-Schreib-Codeabschnitts auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten, um die aktualisierte Systemsoftware in Schritt810 zu bilden, weist das Ersetzen des Lese-Schreib-Codeabschnitts durch den aktualisierten Lese-Schreib-Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt812 weist das Verwenden des aktualisierten Lese-Schreib-Codeabschnitts beim Ausführen der aktualisierten Systemsoftware auf. - In einigen Aspekten der Erfindung weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 auf, dass Symbolbibliotheken am Anfang der Codeabschnitte beginnen. Das Speichern der Systemsoftware für die drahtlose Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten in Schritt806 weist das Speichern des Beginns der Codeabschnitte an entsprechenden Startadressen auf. Dann hält ein weiterer Schritt807a eine Codeabschnitt-Adresstabelle aufrecht, die Querverweise der Codeabschnitt-Bezeichner mit den zugehörigen Startadressen herstellt. - In einigen Aspekten der Erfindung weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 das Anordnen jedes Symbols auf, damit es von seiner jeweiligen Codeabschnitt-Startadresse versetzt ist. Dann hält ein weiterer Schritt807b eine Symboloffset-Adresstabelle aufrecht, die Querverweise der Symbol-Bezeichner mit den zugehörigen Offsetadressen und den zugehörigen Codeabschnitt-Bezeichnern herstellt. - Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 weist Unterschritte auf. Schritt804a ordnet die Codeabschnitt-Adresstabelle in einem Erste-Tabelle-Codeabschnitt an, Schritt804b ordnet die Symboloffset-Adresstabelle in einem Zweite-Tabelle-Codeabschnitt an. Das Empfangen eines aktualisierten Codeabschnitts in Schritt808 weist das Empfangen eines aktualisierten Erste-Tabelle-Codeabschnitts und eines aktualisierten Zweite-Tabelle-Codeabschnitts auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt810 , um eine aktualisierte Systemsoftware zu bilden, weist das Ersetzen des Erste-Tabelle-Codeabschnitts durch den aktualisierten Erste-Tabelle-Codeabschnitt, und des Zweite-Tabelle-Codeabschnitts durch den aktualisierten Zweite-Tabelle-Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt812 weist das Verwenden des aktualisierten Erste-Tabelle-Codeabschnitts und des aktualisierten Zweite-Tabelle-Codeabschnitts beim Ausführen der aktualisierten Systemsoftware auf. - In einigen Aspekten der Erfindung weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken in Schritt
802 das Bilden einer Patchbibliothek oder einer Patch-Symbolbibliothek auf. Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt804 weist das Anordnen einer Patchbibliothek in einen Patchmanager-Codeabschnitt auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten, um die aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, weist Unterschritte auf. Schritt810a greift auf den Patchmanager-Codeabschnitt zu. Schritt810b ruft die Patchbibliothek auf, um den neuen Codeabschnitt zu speichern. Das Aufrufen der Patchbibliothek in Schritt810b , um den neuen Codeabschnitt zu speichern, weist typischerweise das Aufrufen der Patchbibliothek auf, um den ersten Codeabschnitt mit dem neuen Codeabschnitt zu überschreiben. - In einigen Aspekten speichert Schritt
808a nach dem Empfangen des neuen Codeabschnitts in Schritt808 den neuen Codeabschnitt in einem Dateisystemabschnitt des Speichers. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt810 , um die aktualisierte Systemsoftware zu bilden, weist das Aufrufen der Patchbibliothek auf, um den ersten Codeabschnitt mit dem neuen, in dem Dateisystemabschnitt des Speichers gespeicherten Codeabschnitt zu überschreiben. - In anderen Aspekten der Erfindung weist das Empfangen eines neuen Codeabschnitts in Schritt
808 das Empfangen eines aktualisierten Patchmanager-Codeabschnitts auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt810 , um die aktualisierte Systemsoftware zu bilden, weist das Ersetzen des Patchmanager-Codeabschnitts durch den aktualisierten Patchmanager-Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt812 weist das Verwenden des aktualisierten Patchmanager-Codes beim Ausführen der aktualisierten Systemsoftware auf. - Typischerweise weist Schritt
804 das Anordnen von Lese-Schreib-Daten, der Codeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle in dem Patchmanager-Codeabschnitt auf. Dann weist das Empfangen eines aktualisierten Patchmanager-Codeabschnitts in Schritt808 das Empfangen einer aktualisierten Symboloffset-Adresstabelle, einer aktualisierten Codeabschnitt-Adresstabelle und aktualisierter Lese-Schreib-Daten auf. - In einigen Aspekten der Erfindung weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken in Schritt
802 das Bilden eines Symbol-Zugriffscodes auf, und das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt804 weist das Anordnen des Symbol-Zugriffscodes in dem Patchmanager-Codeabschnitt auf. Dann speichert ein weiterer Schritt806a die Symbol-Zugriffscodeadresse an einer ersten Stelle im Speicher. Das Ausführen der aktualisierten Systemsoftware in Schritt812 weist Unterschritte auf. Schritt812a lädt eine dritte Mehrzahl von Symbolbibliotheken in den flüchtigen Lese-Schreib-Speicher, typischerweise einen RAM. Es versteht sich, dass nicht alle Symbolbibliotheken in dem Patchmanager- Codeabschnitt notwendigerweise in den flüchtigen Lese-Schreib-Speicher geladen werden. Ferner können Symbolbibliotheken in anderen Codeabschnitten neben dem Patchmanager-Codeabschnitt in den flüchtigen Lese-Schreib-Speicher geladen werden. Schritt812b greift in Antwort auf das Referenzieren der ersten Stelle im Speicher auf den Symbol-Zugriffscode zu. Schritt812c ruft den Symbol-Zugriffscode auf, um die Adresse eines gesuchten Symbols unter Verwendung eines zugehörigen Symbol-Bezeichners zu berechnen. Das Aufrufen des Symbol-Zugriffscodes, um die Adresse des gesuchten Symbols zu berechnen, weist das Zugreifen auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle auf, um die Adresse des gesuchten Symbols zu berechnen. Schritt812d greift auf die dritte Mehrzahl von Symbolbibliotheken aus dem RAM zu. - Typischerweise weist das Empfangen eines aktualisierten Patchmanager-Codeabschnitts in Schritt
808 das Empfangen eines aktualisierten Symbol-Zugriffscodes auf. Das Ersetzen des Patchmanager-Codeabschnitts durch den aktualisierten Patchmanager-Codeabschnitt in Schritt810 weist das Ersetzen des Symbol-Zugriffscodes durch den aktualisierten Symbol-Zugriffscode auf. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt812 das Verwenden des aktualisierten Symbol-Zugriffscodes beim Ausführen der aktualisierten Systemsoftware auf. - Einige Aspekte der Erfindung weisen weitere Schritte auf. Schritt
808b empfängt eine aktualisierte Symbol-Zugriffscodeadresse. Schritt808c speichert die aktualisierte Symbol-Zugriffscodeadresse in dem Dateisystemabschnitt. Schritt810c ersetzt die Symbol-Zugriffscodeadresse an der ersten Stelle im Speicher durch die aktualisierte Symbol-Zugriffscodeadresse von dem Dateisystemabschnitt. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt812 das Verwenden der aktualisierten Symbol-Zugriffscodeadresse beim Ausführen der aktualisierten Systemsoftware auf. - Typischerweise weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 das Anordnen der Symbol-Zugriffscodeadresse in dem Patchmanager-Codeabschnitt auf. Dann weist das Ersetzen der Symbol-Zugriffscodeadresse an der ersten Stelle im Speicher durch die aktualisierte Symbol-Zugriffscodeadresse aus dem Dateisystemabschnitt in Schritt810c das Ersetzen der Symbol-Zugriffscodeadresse in dem Patchmanager-Codeabschnitt durch die aktualisierte Symbol-Zugriffscodeadresse in einem aktualisierten Patchmanager-Codeabschnitt auf. - In einigen Aspekten lädt Schritt
812a die Lese-Schreib-Daten, die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, die Patchbibliothek, den Symbol-Zugriffscode und eine Symbol-Zugriffscodeadresse aus dem Patchmanager-Codeabschnitt in den flüchtigen Lese-Schreib-Speicher. Schritt812d greift auf die Lese-Schreib-Daten, die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, die Patchbibliothek, den Symbol-Zugriffscode und die Symbol-Zugriffscodeadresse aus dem flüchtigen Lese-Schreib-Speicher zu. - Das Speichern des Beginns der Codeabschnitte an zugehörigen Startadressen in Schritt
806 weist Unterschritte auf. Schritt806b erzeugt eine zweite Mehrzahl von angrenzend adressierten Speicherblöcken. Schritt806c identifiziert jeden Speicherblock mit einem zugehörigen Codeabschnitt. Schritt806d speichert die Codeabschnitte in den identifizierten Speicherblöcken. - In einigen Aspekten weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 das Anordnen einer dritten Mehrzahl von Symbolbibliotheken in einem ersten Codeabschnitt auf. Das Identifizieren jedes Speicherblocks mit einem zugehörigen Codeabschnitt in Schritt806c weist das Identifizieren eines ersten Speicherblocks mit dem ersten Codeabschnitt auf. Das Speichern der Codeabschnitte in den identifizierten Speicherblöcken in Schritt806d weist das Speichern der dritten Mehrzahl von Symbolbibliotheken in dem ersten Speicherblock auf. Das Empfangen eines neuen Codeabschnitts in Schritt808 weist das Empfangen eines aktualisierten ersten Codeabschnitts mit einer dritten Mehrzahl von darin angeordneten Symbolbibliotheken auf. Dann weist das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt810 , um die aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, das Überschreiben des ersten Codeabschnitts in dem ersten Speicherblock mit einem aktualisierten ersten Codeabschnitt auf. - In anderen Aspekten weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 das Anordnen einer ersten Symbolbibliothek in einem ersten Codeabschnitt auf. Das Identifizieren jedes Speicherblocks mit einem zugehörigen Codeabschnitt in Schritt806c weist das Identifizieren eines ersten Speicherblocks mit dem ersten Codeabschnitt auf. Das Speichern der Codeabschnitten in den identifizierten Speicherblöcken in Schritt806d weist das Speichern der ersten Symbolbibliothek in dem ersten Speicherblock auf. Das Empfangen eines neuen Codeabschnitts in Schritt808 weist das Empfangen eines aktualisierten ersten Codeabschnitts mit der darin angeordneten ersten Symbolbibliothek auf. Dann weist das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt 810, um die aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, das Überschreiben des ersten Codeabschnitts in dem ersten Speicherblock mit einem aktualisierten ersten Codeabschnitt auf. - Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt
804 weist das Dimensionieren der Codeabschnitte auf, um die angeordneten Symbolbibliotheken aufzunehmen. Dann weist das Erzeugen einer zweiten Mehrzahl von angrenzend adressierten Speicherblöcken in Schritt806b das Dimensionieren der Speicherblöcke auf, um die zugehörigen Codeabschnitte unterzubringen. Alternativ weist das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt804 das Dimensionieren der Codeabschnitte auf, um Größen unterzubringen, die größer als die angeordneten Symbolbibliotheken sind. - Es wurden ein System und ein Verfahren für eine aktualisierbare Systemsoftware-Struktur zur Verwendung in einer drahtlosen Kommunikationsvorrichtung bereitgestellt. Das System ist wegen der Anordnung von Symbolbibliotheken in Codeabschnitten leicht aktualisierbar, mit Tabellen, um auf die Startadressen der Codeabschnitte im Speicher und die Offsetadressen von Symbolen in den Symbolbibliotheken zuzugreifen. Obwohl einige Beispiele dieser Bibliotheksanordnungen und Querverweistabellen für eine Anzeigefunktion gegeben wurden, ist die vorliegende Erfindung nicht auf genau diese Beispiele beschränkt. Andere Variationen und Ausführungsformen der Erfindung werden dem Fachmann einfallen.
Claims (33)
- Verfahren zum Aktualisieren von Systemsoftware, die im Speicher einer drahtlosen Kommunikationsvorrichtung (
104 ) gespeichert ist, wobei das Verfahren aufweist: Speichern der Systemsoftware für die drahtlose Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten (302 ); Empfangen eines Software-Updates (102 ) über ein drahtloses Kommunikationsnetzwerk, wobei das Update einen Patcherzeuger-Befehlssatz (200 ) und einen neuen Codeabschnitt aufweist; Starten einer Laufzeit-Befehlsmaschine, die konfiguriert ist, um den Patcherzeuger-Befehlssatz zu verarbeiten; und Ausführen des Patcherzeuger-Befehlssatzes in der Laufzeitmaschine, um den neuen Codeabschnitt mit aktuellen Codeabschnitten anzuordnen, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden. - Verfahren nach Anspruch 1, ferner aufweisend: Identifizieren eines aktuellen Codeabschnitts zum Aktualisieren; und wobei das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten, um eine aktualisierte Systemsoftware zu bilden, das Ersetzen des aktuellen Codeabschnitts durch den neuen Codeabschnitt aufweist.
- Verfahren nach Anspruch 1, wobei der Speicherschritt ferner aufweist: Formen der Systemsoftware in eine Mehrzahl von Symbolbibliotheken, wobei jede Symbolbibliothek zumindest ein Symbol aufweist; und Anordnen der Mehrzahl von Symbolbibliotheken in eine Mehrzahl von Codeabschnitten.
- Verfahren gemäß Anspruch 3, wobei jedes Symbol in einer Symbolbibliothek eine zugehörige Funktionalität hat.
- Verfahren gemäß Anspruch 4, wobei der Formungsschritt ferner das Bilden von Lese-Schreib-Daten für eine Mehrzahl von Symbolbibliotheken aufweist, und Anordnen der Lese-Schreib-Daten in einem gemeinsamen Lese-Schreib-Codeabschnitt.
- Verfahren gemäß Anspruch 5, wobei das Software-Update ferner einen aktualisierten Lese-Schreib-Codeabschnitt aufweist.
- Verfahren gemäß Anspruch 6, ferner aufweisend: Identifizieren eines aktuellen Lese-Schreib-Codeabschnitts entsprechend dem aktualisierten Lese-Schreib-Codeabschnitt, wobei der Ausführungsschritt ferner das Ersetzen des Lese-Schreib-Codeabschnitts durch den aktualisierten Lese-Schreib-Codeabschnitt aufweist.
- Verfahren gemäß Anspruch 3, wobei der Anordnungsschritt ferner das Anordnen einer ersten Symbolbibliothek an dem Anfang eines Codeabschnitts aufweist, wobei jeder Anfang eines Codeabschnitts eine zugehörige Startadresse hat; und Führen einer Codeabschnitt-Adresstabelle, die Querverweise von Codeabschnitt-Bezeichnern mit zugehörigen Startadressen herstellt.
- Verfahren gemäß Anspruch 8, wobei der Anordnungsschritt ferner das Anordnen einer zweiten Symbolbibliothek aufweist, die von dem Anfang eines Codeabschnitts versetzt ist; und Führen einer Symboloffset-Adresstabelle, die Querverweise eines Bezeichners der zweiten Symbolbibliothek mit einer zugehörigen Offsetadresse und einem zugehörigen Codeabschnitt-Bezeichner herstellt.
- Verfahren gemäß Anspruch 9, ferner aufweisend: Speichern der Codeabschnitt-Adresstabelle in einem Erste-Tabelle-Codeabschnitt; und Speichern der Symboloffset-Adresstabelle in einem Zweite-Tabelle-Codeabschnitt.
- Verfahren gemäß Anspruch 10, wobei das Software-Update ferner einen aktualisierten Erste-Tabelle-Codeabschnitt und einen aktualisierten Zweite-Tabelle-Codeabschnitt aufweist.
- Verfahren gemäß Anspruch 10, ferner aufweisend: Zugreifen auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle, um die Adresse eines Symbols aus einem Symbol-Zugriffscode zu berechnen, der einen Symbol-Bezeichner und einen Codeabschnitt-Bezeichner aufweist.
- Verfahren gemäß Anspruch 12, wobei das Software-Update ferner einen aktualisierten Symbol-Zugriffscode aufweist, und das ferner das Ersetzen des Symbol-Zugriffscodes durch den aktualisierten Symbol-Zugriffscode aufweist.
- Verfahren gemäß Anspruch 8, wobei das Speichern der Symbolbibliotheken am Anfang der zugehörigen Codeabschnitte ferner aufweist: Erzeugen einer Mehrzahl von angrenzend adressierten Speicherblöcken; Identifizieren jedes Speicherblocks mit einem zugehörigen Codeabschnitt; und Speichern der entsprechenden Codeabschnitte in den identifizierten Speicherblöcken.
- Verfahren gemäß Anspruch 14, wobei der Erzeugungsschritt ferner das Dimensionieren der Speicherblöcke aufweist, um entsprechende Codeabschnitte aufzunehmen.
- Verfahren gemäß Anspruch 15, wobei der Dimensionierungsschritt ferner das Dimensionieren der Codeabschnitte aufweist, um Größen größer als die Symbolbibliotheken aufzunehmen.
- Software-Aktualisierungssystem für eine eingesetzte drahtlose Kommunikationsvorrichtung, wobei das System aufweist: ausführbare Systemsoftware der drahtlosen Vorrichtung, die in eine Mehrzahl von aktuellen Codeabschnitten (
302 ) aufgeteilt ist, wobei jeder aktuelle Codeabschnitt eine oder mehrere Symbolbibliotheken aufweist; eine drahtlose Kommunikationsschnittstelle (150 ), die konfiguriert ist, um ein Software-Update (102 ) über ein drahtloses Kommunikationsnetz zu empfangen, wobei das Software-Update einen Patcherzeuger-Befehlssatz (200 ) und eine neue Symbolbibliothek aufweist, die einen zugehörigen Codeabschnitt hat; eine Laufzeit-Befehlsmaschine, die konfiguriert ist, um das Software-Update zu verarbeiten und den Patcherzeuger-Befehlssatz auszuführen, um die neue Symbolbibliothek in dem zugehörigen Codeabschnitt anzuordnen. - System gemäß Anspruch 17, wobei das Software-Update einen neuen Codeabschnitt aufweist und das Verarbeiten des Updates einen aktuellen Codeabschnitt durch den neuen Codeabschnitt ersetzt.
- System gemäß Anspruch 17, wobei jede Symbolbibliothek Symbole aufweist, die eine zugehörige Funktionalität haben.
- System gemäß Anspruch 19, wobei jeder aktuelle Codeabschnitt einen gemeinsamen Lese-Schreib-Codeabschnitt mit den Lese-Schreib-Daten aufweist, die den zugehörigen Symbolbibliotheken zugänglich sind.
- System gemäß Anspruch 20, wobei das Software-Update einen aktualisierten Lese-Schreib-Codeabschnitt aufweist und das Verarbeiten des Updates den gemeinsamen Lese-Schreib-Codeabschnitt durch den aktualisierten Lese-Schreib-Codeabschnitt ersetzt.
- System gemäß Anspruch 21, wobei eine Symbolbibliothek angeordnet wird, um am Anfang jedes aktuellen Codeabschnitts zu beginnen, und wobei jeder aktuelle Codeabschnitt eine Codeabschnitt-Adresstabelle aufweist, die eine Mehrzahl von Codeabschnitt-Bezeichnern aufweist, die mit den Startadressen für die Mehrzahl der aktuellen Codeabschnitte verknüpft sind.
- System gemäß Anspruch 22, wobei ein aktueller Codeabschnitt eine Symboloffset-Adresstabelle aufweist, die Symbol-Bezeichner aufweist, die mit zugehörigen Offset-Adressen und zugehörigen Codeabschnitt-Bezeichnern verknüpft sind.
- System gemäß Anspruch 23, wobei das Software-Update eine aktualisierte Codeabschnitt-Adresstabelle und eine aktualisierte Symboloffset-Adresstabelle aufweist.
- System gemäß Anspruch 17, wobei ein aktueller Codeabschnitt die Laufzeit-Befehlsmaschine aufweist.
- System gemäß Anspruch 24, wobei das Software-Update eine neue Symbolbibliothek in dem Laufzeit-Befehlsmaschine-Codeabschnitt aufweist und das Verarbeiten des Updates eine Symbolbibliothek in dem Laufzeit-Befehlsmaschine-Codeabschnitt durch die neue Symbolbibliothek ersetzt.
- System gemäß Anspruch 26, wobei der Laufzeit-Befehlsmaschine-Codeabschnitt Lese-Schreib-Daten, eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle aufweist.
- System gemäß Anspruch 26, wobei der Laufzeit-Befehlsmaschine-Codeabschnitt einen Symbol-Zugriffscode aufweist, der einen Symbol-Bezeichner und einen zugehörigen Codeabschnitt-Bezeichner aufweist.
- System gemäß Anspruch 28, wobei der Symbol-Zugriffscode die Adresse eines Symbols durch Zugreifen auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle berechnet.
- System gemäß Anspruch 29, wobei das Software-Update einen aktualisierten Symbol-Zugriffscode aufweist.
- System gemäß Anspruch 17, das ferner eine Mehrzahl von angrenzend adressierten Speicherblöcken aufweist, die mit der Mehrzahl der aktuellen Codeabschnitte identifiziert werden.
- System gemäß Anspruch 31, wobei ein aktueller Codeabschnitt dimensioniert wird, um die zugehörigen, darin angeordneten Symbolbibliotheken aufzunehmen, und der entsprechende Speicherblock dimensioniert wird, um den aktuellen Codeabschnitt aufzunehmen.
- System gemäß Anspruch 32, wobei ein aktueller Codeabschnitt größer als die zugehörigen, darin angeordneten Symbolbibliotheken dimensioniert wird.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/916,460 US7159214B2 (en) | 2001-07-26 | 2001-07-26 | System and method for compacting field upgradeable wireless communication device software code sections |
US916900 | 2001-07-26 | ||
US916460 | 2001-07-26 | ||
US09/917,026 US7328007B2 (en) | 2001-07-26 | 2001-07-26 | System and method for organizing wireless communication device system software |
US917026 | 2001-07-26 | ||
US09/916,900 US7027806B2 (en) | 2001-07-26 | 2001-07-26 | System and method for field downloading a wireless communications device software code section |
US09/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
US969305 | 2001-10-02 | ||
US09/969,305 US7386846B2 (en) | 2001-07-26 | 2001-10-02 | System and method for the management of wireless communications device system software downloads in the field |
PCT/IB2002/002869 WO2003010662A2 (en) | 2001-07-26 | 2002-07-23 | System and method for field downloading a wireless communication device software code section |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60205755D1 DE60205755D1 (de) | 2005-09-29 |
DE60205755T2 true DE60205755T2 (de) | 2006-06-29 |
Family
ID=27542295
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
DE60205755T Expired - Lifetime DE60205755T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen |
DE60207429T Expired - Lifetime DE60207429T2 (de) | 2001-07-26 | 2002-07-25 | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze |
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60206055T Expired - Lifetime DE60206055T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60207429T Expired - Lifetime DE60207429T2 (de) | 2001-07-26 | 2002-07-25 | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze |
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60206055T Expired - Lifetime DE60206055T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410189B1 (de) |
JP (11) | JP2005505813A (de) |
KR (10) | KR100911604B1 (de) |
CN (10) | CN1288553C (de) |
AT (9) | ATE387658T1 (de) |
AU (9) | AU2002319572A1 (de) |
DE (7) | DE60211704T2 (de) |
ES (9) | ES2300454T3 (de) |
WO (10) | WO2003010663A2 (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143407B2 (en) * | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
JP4417123B2 (ja) | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
US7644404B2 (en) | 2003-06-04 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Network having customizable generators and electronic device having customizable updating software |
US7873956B2 (en) | 2003-09-25 | 2011-01-18 | Pantech & Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
US7257583B2 (en) | 2004-01-09 | 2007-08-14 | Microsoft Corporation | System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download |
KR100620729B1 (ko) * | 2004-03-31 | 2006-09-13 | 주식회사 팬택앤큐리텔 | 소프트웨어 이미지 생성 방법 |
KR100841510B1 (ko) * | 2004-05-18 | 2008-06-25 | 키오세라 와이어리스 코포레이션 | 무선 통신 장치를 위한 모듈식 데이터 구성요소 |
GB2416876B (en) * | 2004-08-03 | 2007-01-10 | Nec Technologies | Export file processing within a mobile radio communications device |
US7512939B2 (en) * | 2004-10-05 | 2009-03-31 | Neopost Technologies | System and method of secure updating of remote device software |
EP1659810B1 (de) * | 2004-11-17 | 2013-04-10 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Aktualisierung der Konfigurationsparameter in einem mobilen Endgerät |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US9148409B2 (en) | 2005-06-30 | 2015-09-29 | The Chamberlain Group, Inc. | Method and apparatus to facilitate message transmission and reception using different transmission characteristics |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
WO2006110991A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
CN100442708C (zh) * | 2005-06-17 | 2008-12-10 | 上海华为技术有限公司 | 一种主备备份的方法及*** |
CN100476728C (zh) * | 2005-08-19 | 2009-04-08 | 光宝科技股份有限公司 | 应用程序更新方法及使用上述方法的移动通讯装置 |
CN100410893C (zh) * | 2005-09-28 | 2008-08-13 | 联想(北京)有限公司 | 自行修复嵌入式设备的主控应用程序的方法及设备 |
CN1980447B (zh) * | 2005-12-06 | 2010-06-16 | 中兴通讯股份有限公司 | 一种通信***软件版本的平滑升级方法 |
KR100963550B1 (ko) * | 2006-03-10 | 2010-06-15 | 후지쯔 가부시끼가이샤 | 적용 패치 선별 장치 및 적용 패치 선별 방법 |
WO2007146710A2 (en) | 2006-06-08 | 2007-12-21 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (de) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | Benutzererfahrungs- und abhängigkeitsverwaltung bei einer mobilen vorrichtung |
CN100403263C (zh) * | 2006-08-16 | 2008-07-16 | 华为技术有限公司 | 按配置下载设备软件的方法 |
KR100924647B1 (ko) * | 2008-08-07 | 2009-11-02 | 주식회사 케이티 | 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템 |
AU2010234392A1 (en) | 2009-04-07 | 2011-10-27 | Sensient Colors Inc. | Self-dispersing particles and methods for making and using the same |
CN101539885B (zh) * | 2009-04-23 | 2011-06-08 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及*** |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN102253847A (zh) * | 2010-05-19 | 2011-11-23 | 宏碁股份有限公司 | 制作***软件的***及***软件的部署方法 |
US8756256B2 (en) * | 2010-05-26 | 2014-06-17 | Qualcomm Incorporated | Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts |
CN104871140B (zh) * | 2012-11-09 | 2018-06-19 | 相干逻辑公司 | 对于多处理器***的实时分析和控制 |
US10064251B2 (en) | 2013-03-15 | 2018-08-28 | Cree, Inc. | Updatable lighting fixtures and related components |
CN103345412B (zh) * | 2013-07-10 | 2016-08-24 | 华为技术有限公司 | 打补丁的方法及装置 |
US10652743B2 (en) | 2017-12-21 | 2020-05-12 | The Chamberlain Group, Inc. | Security system for a moveable barrier operator |
AU2019262696A1 (en) * | 2018-05-04 | 2021-01-07 | Herdx, Inc. | Food supply tracking, verification, and feedback system |
US11074773B1 (en) | 2018-06-27 | 2021-07-27 | The Chamberlain Group, Inc. | Network-based control of movable barrier operators for autonomous vehicles |
US11423717B2 (en) | 2018-08-01 | 2022-08-23 | The Chamberlain Group Llc | Movable barrier operator and transmitter pairing over a network |
KR102176204B1 (ko) | 2018-10-15 | 2020-11-09 | 김용대 | 유명인 사용물품 기부 중개 서비스 방법 |
US10997810B2 (en) | 2019-05-16 | 2021-05-04 | The Chamberlain Group, Inc. | In-vehicle transmitter training |
JP7461755B2 (ja) * | 2020-02-21 | 2024-04-04 | 日立Astemo株式会社 | 情報処理装置、プログラム更新システム、及びプログラム更新方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8901932D0 (en) * | 1989-01-28 | 1989-03-15 | Int Computers Ltd | Data processing system |
FR2662891A1 (fr) * | 1990-05-30 | 1991-12-06 | Cit Alcatel | Dispositif de telechargement de logiciel pour un terminal de telecommunication. |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
JPH07182178A (ja) * | 1993-02-19 | 1995-07-21 | Nec Corp | プリロードモジュール修正システム |
US5488648A (en) * | 1993-08-17 | 1996-01-30 | Telefonaktiebolaget L M Ericsson | Behavior monitoring and analyzing system for stored program controlled switching system |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
JP3140906B2 (ja) | 1994-04-12 | 2001-03-05 | 株式会社エヌ・ティ・ティ・データ | システムファイルの更新及び復元方法 |
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
JPH08166877A (ja) * | 1994-12-13 | 1996-06-25 | Olympus Optical Co Ltd | 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ |
DE19502728A1 (de) * | 1995-01-28 | 1996-08-01 | Philips Patentverwaltung | Telekommunikationsvorrichtung |
US5673317A (en) * | 1995-03-22 | 1997-09-30 | Ora Electronics, Inc. | System and method for preventing unauthorized programming of wireless network access devices |
US5699275A (en) * | 1995-04-12 | 1997-12-16 | Highwaymaster Communications, Inc. | System and method for remote patching of operating code located in a mobile unit |
DE19527808C2 (de) * | 1995-07-28 | 1999-04-01 | Siemens Ag | Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems |
DE19543843C2 (de) * | 1995-11-24 | 2001-02-08 | Acer Peripherals Inc | Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon |
WO1998009208A2 (en) * | 1996-08-28 | 1998-03-05 | Wind River Systems, Inc. | A tool for software diagnosis divided across multiple processors |
US6247065B1 (en) * | 1996-12-26 | 2001-06-12 | At&T Corp. | Messaging platform process |
US6023620A (en) * | 1997-02-26 | 2000-02-08 | Telefonaktiebolaget Lm Ecrisson | Method for downloading control software to a cellular telephone |
US5938766A (en) * | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
SE512110C2 (sv) * | 1997-06-17 | 2000-01-24 | Ericsson Telefon Ab L M | System och förfarande för att kundanpassa trådlösa kommunikationsenheter |
JPH1115689A (ja) * | 1997-06-19 | 1999-01-22 | Nec Corp | ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体 |
US5974312A (en) * | 1997-07-10 | 1999-10-26 | Ericsson Inc. | System and method for updating a memory in an electronic device via wireless data transfer |
US6496979B1 (en) * | 1997-10-24 | 2002-12-17 | Microsoft Corporation | System and method for managing application installation for a mobile device |
JPH11141394A (ja) * | 1997-11-07 | 1999-05-25 | Nissan Motor Co Ltd | 車両制御用メモリ書き換え装置 |
JPH11146011A (ja) * | 1997-11-11 | 1999-05-28 | Nec Corp | 電子メールシステム及び電子メールサーバ及び通信端末 |
JP3337062B2 (ja) * | 1997-11-21 | 2002-10-21 | 日本電気株式会社 | 無線データ転送方法及びそのシステム |
US6275694B1 (en) * | 1997-12-19 | 2001-08-14 | Vlsi Technology, Inc. | Method for remotely updating software code for personal handy phone system equipment |
US6438711B2 (en) * | 1998-07-15 | 2002-08-20 | Intel Corporation | Method and apparatus for performing field diagnostics on a computer system |
US20020073398A1 (en) * | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
GB2349485B (en) | 1999-04-23 | 2003-12-10 | Ibm | Application management |
SE516806C2 (sv) * | 1999-05-26 | 2002-03-05 | Ericsson Telefon Ab L M | Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal |
US6282647B1 (en) * | 1999-06-02 | 2001-08-28 | Adaptec, Inc. | Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code |
FR2800963B1 (fr) * | 1999-11-09 | 2001-12-07 | Wavecom Sa | Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant |
US7264532B2 (en) * | 2004-12-27 | 2007-09-04 | Tsan-Yao Chen | Cup structure |
-
2002
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 EP EP02749158A patent/EP1410189B1/de not_active Expired - Lifetime
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active IP Right Cessation
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Application Discontinuation
- 2002-07-22 CN CNB028148312A patent/CN1275149C/zh not_active Expired - Fee Related
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 AU AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en active Application Filing
- 2002-07-22 EP EP02749157A patent/EP1410188A2/de not_active Withdrawn
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active IP Right Cessation
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active IP Right Cessation
- 2002-07-22 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en active IP Right Grant
- 2002-07-22 EP EP02749161A patent/EP1410191A2/de not_active Withdrawn
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 EP EP02749163A patent/EP1410209B1/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en active IP Right Grant
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 EP EP02749159A patent/EP1410190B1/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 EP EP05021081A patent/EP1610222B1/de not_active Expired - Fee Related
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515970A patent/JP4073399B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749167A patent/EP1410193B1/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en active IP Right Grant
- 2002-07-23 KR KR1020047000726A patent/KR100913659B1/ko not_active IP Right Cessation
- 2002-07-23 EP EP02749166A patent/EP1410192B1/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active IP Right Cessation
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en active IP Right Grant
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000718A patent/KR100913658B1/ko not_active IP Right Cessation
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/en active IP Right Grant
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active IP Right Cessation
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en active IP Right Grant
- 2002-07-25 KR KR1020047001087A patent/KR100932058B1/ko not_active IP Right Cessation
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active IP Right Cessation
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 WO PCT/IB2002/002906 patent/WO2003010942A2/en active IP Right Grant
- 2002-07-25 EP EP05018919A patent/EP1601217B1/de not_active Expired - Lifetime
- 2002-07-25 CN CNB02814841XA patent/CN1250035C/zh not_active Expired - Fee Related
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 EP EP02751472A patent/EP1423959B1/de not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active IP Right Cessation
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en active IP Right Grant
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 2002-07-25 JP JP2003518153A patent/JP4101752B2/ja not_active Expired - Fee Related
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 EP EP02762622A patent/EP1425894B1/de not_active Expired - Lifetime
- 2002-07-25 EP EP02741113A patent/EP1410665B1/de not_active Expired - Lifetime
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60205755T2 (de) | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen | |
DE60224281T2 (de) | System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes | |
EP0849666B1 (de) | Verfahren zum Instantiieren einer versionsbehafteten Klasse | |
DE602005004214T2 (de) | Kommunikationssystem and Verfahren zur Aktualisierung von Software in einem Endbenutzergerät | |
DE60215990T2 (de) | Dynamisches Dienstmerkmal in einem mobilen Kommunikationsgerät oder einer SIM-Karte zum Empfang und zur Ausführung von dynamischen Dienstskripten in Form kurzer Textnachrichten, beispielsweise SMS | |
DE60006410T2 (de) | Verfahren und system zum verteilen von objektorientierten rechnerprogrammen | |
DE3853539T2 (de) | Verfahren und vorrichtung zur selbsttätigen ladung eines datenpakets im kern eines übertragungsnetzes. | |
DE60214601T2 (de) | Verfahren und Vorrichtung zur dynamischen Verwaltung einer Serverapplikation auf einer Server-Plattform | |
DE60314748T2 (de) | Kommunikationssystem, Mobileinrichtung und Verfahren zur Speicherung von Seiten in einer Mobileinrichtung | |
DE102015001815A1 (de) | Teilnehmeridentitätsmodul | |
EP2895985B1 (de) | Inhalteverwaltung für mobilstation mit laufzeitumgebung | |
DE69828804T2 (de) | Einführung von dienst unabhängigen baublöcken | |
DE69911660T2 (de) | Laden von objektorientierten rechnerprogrammen | |
EP0918425A2 (de) | Softwaregesteuertes Teilnehmerendgerät, Server zum Bereitstellen eines Steuerprogrammes und Verfahren zum Betrieb des Softwaregesteuerten Teilnehmerendgerätes | |
DE69833470T2 (de) | Verfahren und Gerät zur Aktualisierung von Textdaten für eine elektrische Einrichtung | |
DE60117600T2 (de) | Anordnung und verfahren zum vorprogrammieren des speichers eines elektronischen geräts | |
EP1643782A1 (de) | Verfahren zum Bereitstellen von ein Mobilfunkgerät in einem Mobilfunknetzwerk identifizierenden Geräteidentifikationen in dem Mobilfunkgerät | |
DE19920640A1 (de) | Verfahren zum Erstellen von Dienstprogrammen | |
DE102006040086A1 (de) | Individualisierung von Mobilfunknehmer-Identifikations-Modulen | |
EP3668132B1 (de) | Inkrementelles aktualisieren einer firmware | |
DE602004011974T2 (de) | Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung | |
DE60007144T2 (de) | System und verfahren zum laden von befehlen in eine ic karte | |
DE10006416A1 (de) | System und Verfahren für eine Peripheriesystemverwaltung unter Verwendung von Mehr-Objekt-Schnittstellen | |
DE60303710T2 (de) | Konfiguration eines Computers in einem Netzwerk | |
DE69734196T2 (de) | Effiziente Darstellung und Uebertragung von Objekten mit Varianten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R082 | Change of representative |
Ref document number: 1410190 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE |
|
R081 | Change of applicant/patentee |
Ref document number: 1410190 Country of ref document: EP Owner name: KYOCERA CORP., JP Free format text: FORMER OWNER: KYOCERA WIRELESS CORP., SAN DIEGO, US Effective date: 20120817 |
|
R082 | Change of representative |
Ref document number: 1410190 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE Effective date: 20120817 |