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 PDF

Info

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
Application number
DE60205755T
Other languages
English (en)
Other versions
DE60205755D1 (de
Inventor
Gowri Rajaram
Paul Seckendorf
Diego Kaplan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Wireless Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/917,026 external-priority patent/US7328007B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/927,131 external-priority patent/US7143407B2/en
Priority claimed from US09/969,305 external-priority patent/US7386846B2/en
Application filed by Kyocera Wireless Corp filed Critical Kyocera Wireless Corp
Publication of DE60205755D1 publication Critical patent/DE60205755D1/de
Application granted granted Critical
Publication of DE60205755T2 publication Critical patent/DE60205755T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal 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 von 3 darstellt.
  • 6 ist eine ausführliche Darstellung der Symbolbibliothek eins von 3, mit Symbolen.
  • 7 ist eine Tabelle, die die Symboloffset-Adresstabelle von 3 darstellt.
  • Die 8a bis 8c 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 Softwarewartungssystems 100 der drahtlosen Vorrichtung. Die Systemsoftware-Organisation der vorliegenden Erfindung ist im Folgenden im Anschluss an einen allgemeinen Überblick über das Softwarewartungssystem 100 ausführlich dargestellt. Das allgemeine System 100 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-Update 102 als ein oder mehrere Codeabschnitte transportiert. Das Software-Update wird zu den auf dem Markt befindlichen drahtlosen Vorrichtungen gesendet, von denen die drahtlose Kommunikationsvorrichtung 104 repräsentativ ist, oder wird in separater Kommunikation von einer Basisstation 106 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 Speichers 108. Der nichtflüchtige Speicher 108 weist einen Dateisystemabschnitt (FSS) 110 und einen Codespeicherabschnitt 112 auf. Der Codeabschnitt wird vor dem Transport typischerweise komprimiert, um die Belegung in dem FSS 110 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-Speicher 114 geladen werden, müssen sie immer in dem nichtflüchtigen Speicher 108 gespeichert werden, so dass sie jedes Mal in den flüchtigen Direktzugriffs-Schreib-Lese-Speicher 114 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-Speicher 114 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 FSS 110 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-Speicher 114 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 Codespeicherabschnitt 112 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-Speicher 114 geladen werden.
  • 2 ist ein schematisches Blockdiagramm des Softwarewartungssystems 100, welches die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt. Zusätzlich zum Aktualisieren von Systemsoftware-Codeabschnitten kann dass Wartungssystem 100 Befehlssätze oder Programme herunterladen und installieren, die hier als Patcherzeuger-Befehlssatz (PMIS) bezeichnet werden. Der PMIS-Codeabschnitt 200 wird zu der drahtlosen Vorrichtung 104 in der gleichen Weise wie die oben beschriebenen Systemsoftware-Codeabschnitte transportiert. PMIS-Codeabschnitte werden am Anfang in dem FSS 110 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 Codespeicherabschnitt 112 transportiert. Alternativ kann der PMIS von dem FSS 110 aufbewahrt und verarbeitet werden. Nachdem das mobile Gerät 104 alle Befehle in dem PMIS-Abschnitt ausgeführt hat, kann der PMIS-Abschnitt aus dem FSS 110 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 Speichers 108 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 System 100 analysiert den Codespeicherabschnitt, während er gepatcht (aktualisiert) wird. Das System 100 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 System 100 die Codeabschnitte im Speicher 112. Alternativ kann die Kompaktierung durch den Hersteller oder Dienstanbieter berechnet werden, und Kompaktierungsanweisungen können zu der drahtlosen Vorrichtung 104 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 System 300 weist einen Codespeicherabschnitt 112 im Speicher 108 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-Codeabschnitt 308 gezeigt. Jedoch ist die Erfindung nicht auf irgendeine bestimmte Anzahl von Codeabschnitten beschränkt. Ferner weist das System 300 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-Codeabschnitt 308 angeordnet.
  • 4 ist ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung. Wie gezeigt, ist der Speicher der Codespeicherabschnitt 112 von 1. 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 FSS 110 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 Codespeicherabschnitt 112 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 Speicherblock 400, Codeabschnitt zwei (304) in dem zweiten Speicherblock 402, Codeabschnitt n (306) in dem n-ten Speicherblock 404 und der Patchmanager-Codeabschnitt (308) in dem p-ten Speicherblock 406 gespeichert.
  • Stellt man die 3 und 4 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 Startadresse 408 (markiert mit "S") in dem Codespeicherabschnitt-Speicher 112. In 3 beginnt Symbolbibliothek eins (310) am Anfang 318 des ersten Codeabschnitts. Gleichermaßen beginnt Codeabschnitt zwei (304) an einer zweiten Startadresse 410 (4), und die Symbolbibliothek zwei beginnt am Anfang 320 von Codeabschnitt zwei (3). Codeabschnitt n (306) beginnt an einer dritten Startadresse 412 in dem Codespeicherabschnitt-Speicher 112 (4), und Symbolbibliothek m (316) beginnt am Anfang des Codeabschnitts n 322 (3). Der Patchmanager-Codeabschnitt beginnt an der p-ten Startadresse 414 im Codespeicherabschnitt-Speicher 112, und die erste Symbolbibliothek in dem Patchmanager-Codeabschnitt 308 beginnt an dem Anfang 324 des Patchmanager-Codeabschnitts. Somit ist die Symbolbibliothek eins (310) ultimativ in dem ersten Speicherblock 400 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 Speicherblock 402, gespeichert.
  • In 3 weist die Systemsoftware-Struktur 300 ferner eine Codeabschnitt-Adresstabelle 326 als einen Symboltyp auf, die in einer Symbolbibliothek enthalten ist, die in dem Patchmanager-Codeabschnitt 308 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-Adresstabelle 326 von 3 repräsentiert. Die Codeabschnitt-Adresstabelle 326 wird konsultiert, um die Codeabschnitt-Startadresse für eine Symbolbibliothek zu finden. Zum Beispiel sucht das System 300 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-Adresstabelle 326 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-Startadresse 320. Daher konsultiert das System 300, wenn ein Symbol in der Symbolbibliothek 3 (314) für die Ausführung erforderlich ist, die Codeabschnitt-Adresstabelle 326 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) von 3 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 (siehe 3). Wie in 6 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-Adresstabelle 328 in dem Patchmanager-Codeabschnitt gespeichert (siehe 3).
  • 7 ist eine Tabelle, die die Symboloffset-Adresstabelle 328 von 3 darstellt. Die Symboloffset- Adresstabelle 328 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-Adresstabelle 328 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-Daten 330 in dem Patchmanager-Codeabschnitt 308 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-Zugriffscode 332 an einer Adresse in dem Patchmanager-Codeabschnitt 308 angeordnet und gespeichert. Die Systemsoftware-Struktur 300 weist ferner eine erste Speicherstelle zur Speicherung der Symbol-Zugriffscodeadresse auf. Die erste Speicherstelle kann ein Codeabschnitt in dem Codespeicherabschnitt 112 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 Speicherstelle 334 in dem Patchmanager-Codeabschnitt 308 mit den Lese-Schreib-Daten 330, der Symboloffset-Adresstabelle 328, der Codeabschnitt-Adresstabelle 326 und dem Symbol-Zugriffscode 332 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 (siehe 6). 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-Struktur 300 ferner einen flüchtigen Lese-Schreib-Speicher 114 auf, typischerweise einen Direktzugriffsspeicher (RAM). Die Lese-Schreib-Daten 330, die Codeabschnitt-Adresstabelle 326, die Symboloffset-Adresstabelle 328, der Symbol-Zugriffscode 332 und die Symbol-Zugriffscodeadresse 334 werden in den flüchtigen Lese-Schreib-Speicher 114 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 Codeabschnitt 1 geladene Symbolbibliothek kleiner als 100 Byte sein. Wie in 3 gezeigt, hat der Codeabschnitt eins (302) einen unbenutzten Abschnitt 340, 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 System 300 eine Patch-Symbolbibliothek auf, welche hier als Patchbibliothek 336 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 Patchmanager 336 ordnet nicht nur neue Codeabschnitte mit den aktuellen Codeabschnitten an, er ersetzt auch Codeabschnitte durch aktualisierte Codeabschnitte.
  • Zurückkehrend zu 4 empfängt der Dateisystemabschnitt 110 des Speichers 108 neue Codeabschnitte, wie zum Beispiel den neuen Codeabschnitt 450 und einen aktualisierten Patchmanager-Codeabschnitt 452. Der Dateisystemabschnitt empfängt auch einen ersten Patchmanger-Befehlssatz (PMIS) 454 einschließlich Anweisungen zum Anordnen der neuen Codeabschnitte mit den aktuellen Codeabschnitten. Wie in 1 zu sehen, empfängt eine Luftverbindungsschnittstelle 150 neue oder aktualisierte Codeabschnitte sowie den ersten PMIS. Obwohl die Luftverbindungsschnittstelle 150 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 Dateisystemabschnitt 110 speichert die neuen Codeabschnitte, die über die Luftverbindungsschnittstelle 150 empfangen wurden. Die Patchbibliothek 336, die von dem flüchtigen Lese-Schreib-Speicher 114 ausgeführt wird, ersetzt einen ersten Codeabschnitt in dem Codespeicherabschnitt, zum Beispiel Codeabschnitt n (306), durch den neuen oder aktualisierten Codeabschnitt 450 in Antwort auf den ersten PMIS 454. Typischerweise wird der Patchmanager-Codeabschnitt 308 durch den aktualisierten Patchmanager-Codeabschnitt 452 ersetzt. Wenn Codeabschnitte ersetzt werden, überschreibt die Patchbibliothek 336 den ersten Codeabschnitt, zum Beispiel Codeabschnitt n (306), in dem Codespeicherabschnitt 112 mit dem aktualisierten Codeabschnitt, zum Beispiel Codeabschnitt 450, in dem Dateisystemabschnitt 110. Im Extremfall werden alle Codeabschnitte in dem Codespeicherabschnitt 112 durch aktualisierte Codeabschnitte ersetzt. Das heißt, der FSS 110 empfängt eine zweite Mehrzahl von aktualisierten Codeabschnitten (nicht gezeigt), und die Patchbibliothek 336 ersetzt die zweite Mehrzahl von Codeabschnitten in dem Codespeicherabschnitt 112 durch die zweite Mehrzahl von aktualisierten Codeabschnitten. Natürlich muss der FSS 110 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-Codeabschnitt 308 durch den aktualisierten Patchmanager-Codeabschnitt 450 ersetzt wird. Gleichermaßen werden die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, der Symbol-Zugriffscode-Abschnitt sowie die Patchbibliothek ersetzt, wenn der aktualisierte Patchmanager-Codeabschnitt 450 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-Codeabschnitt 450 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 Speicher 334 typischerweise in dem Patchmanager-Codeabschnitt (siehe 3).
  • Die 8a bis 8c 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 Schritt 800. Schritt 802 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. Schritt 804 ordnet die erste Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten an. Schritt 806 speichert die Systemsoftware für die drahtlose Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten. Schritt 808 empfängt einen neuen Codeabschnitt über eine Luftschnittstelle der drahtlosen Kommunikationsvorrichtung. Schritt 810 ordnet den neuen Codeabschnitt mit den aktuellen Codeabschnitten an, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden. Schritt 812 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 Schritt 810 das Ersetzen des ersten Codeabschnitts durch den neuen Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt 812 weist die Verwendung des neuen Codeabschnitts beim Ausführen der aktualisierten Systemsoftware auf. Wenn Schritt 806 die Systemsoftware für die drahtlose Vorrichtung in einer zweiten Mehrzahl von aktuellen Codeabschnitten speichert und in Schritt 808 eine zweite Mehrzahl von aktualisierten Codeabschnitten empfangen wird, dann weist Schritt 810 das Ersetzen der zweiten Mehrzahl von aktuellen Codeabschnitten durch die zweiten Mehrzahl von aktualisierten Codeabschnitten auf, und Schritt 812 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 Schritt 804 das Anordnen der Lese-Schreib-Daten in einem gemeinsamen Lese-Schreib-Codeabschnitt auf. Das Empfangen eines neuen Codeabschnitts in Schritt 808 weist das Empfangen eines aktualisierten Lese-Schreib-Codeabschnitts auf, und das Identifizieren eines ersten Codeabschnitts zum Aktualisieren in Schritt 809 weist das Idenfifizieren des Lese-Schreib-Codeabschnitts auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten, um die aktualisierte Systemsoftware in Schritt 810 zu bilden, weist das Ersetzen des Lese-Schreib-Codeabschnitts durch den aktualisierten Lese-Schreib-Codeabschnitt auf. Das Ausführen der aktualisierten Systemsoftware in Schritt 812 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 Schritt 806 weist das Speichern des Beginns der Codeabschnitte an entsprechenden Startadressen auf. Dann hält ein weiterer Schritt 807a 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 Schritt 807b 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. Schritt 804a ordnet die Codeabschnitt-Adresstabelle in einem Erste-Tabelle-Codeabschnitt an, Schritt 804b ordnet die Symboloffset-Adresstabelle in einem Zweite-Tabelle-Codeabschnitt an. Das Empfangen eines aktualisierten Codeabschnitts in Schritt 808 weist das Empfangen eines aktualisierten Erste-Tabelle-Codeabschnitts und eines aktualisierten Zweite-Tabelle-Codeabschnitts auf. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt 810, 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 Schritt 812 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 Schritt 804 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. Schritt 810a greift auf den Patchmanager-Codeabschnitt zu. Schritt 810b ruft die Patchbibliothek auf, um den neuen Codeabschnitt zu speichern. Das Aufrufen der Patchbibliothek in Schritt 810b, 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 Schritt 808 den neuen Codeabschnitt in einem Dateisystemabschnitt des Speichers. Das Anordnen des neuen Codeabschnitts mit aktuellen Codeabschnitten in Schritt 810, 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 Schritt 810, 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 Schritt 812 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 Schritt 808 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 Schritt 804 weist das Anordnen des Symbol-Zugriffscodes in dem Patchmanager-Codeabschnitt auf. Dann speichert ein weiterer Schritt 806a die Symbol-Zugriffscodeadresse an einer ersten Stelle im Speicher. Das Ausführen der aktualisierten Systemsoftware in Schritt 812 weist Unterschritte auf. Schritt 812a 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. Schritt 812b greift in Antwort auf das Referenzieren der ersten Stelle im Speicher auf den Symbol-Zugriffscode zu. Schritt 812c 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. Schritt 812d 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 Schritt 810 weist das Ersetzen des Symbol-Zugriffscodes durch den aktualisierten Symbol-Zugriffscode auf. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt 812 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. Schritt 808c speichert die aktualisierte Symbol-Zugriffscodeadresse in dem Dateisystemabschnitt. Schritt 810c 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 Schritt 812 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 Schritt 810c 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. Schritt 812d 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. Schritt 806b erzeugt eine zweite Mehrzahl von angrenzend adressierten Speicherblöcken. Schritt 806c identifiziert jeden Speicherblock mit einem zugehörigen Codeabschnitt. Schritt 806d 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 Schritt 806c weist das Identifizieren eines ersten Speicherblocks mit dem ersten Codeabschnitt auf. Das Speichern der Codeabschnitte in den identifizierten Speicherblöcken in Schritt 806d weist das Speichern der dritten Mehrzahl von Symbolbibliotheken in dem ersten Speicherblock auf. Das Empfangen eines neuen Codeabschnitts in Schritt 808 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 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.
  • 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 Schritt 806c weist das Identifizieren eines ersten Speicherblocks mit dem ersten Codeabschnitt auf. Das Speichern der Codeabschnitten in den identifizierten Speicherblöcken in Schritt 806d weist das Speichern der ersten Symbolbibliothek in dem ersten Speicherblock auf. Das Empfangen eines neuen Codeabschnitts in Schritt 808 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 Schritt 806b 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 Schritt 804 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)

  1. 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.
  2. 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.
  3. 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.
  4. Verfahren gemäß Anspruch 3, wobei jedes Symbol in einer Symbolbibliothek eine zugehörige Funktionalität hat.
  5. 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.
  6. Verfahren gemäß Anspruch 5, wobei das Software-Update ferner einen aktualisierten Lese-Schreib-Codeabschnitt aufweist.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Verfahren gemäß Anspruch 10, wobei das Software-Update ferner einen aktualisierten Erste-Tabelle-Codeabschnitt und einen aktualisierten Zweite-Tabelle-Codeabschnitt aufweist.
  12. 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.
  13. 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.
  14. 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.
  15. Verfahren gemäß Anspruch 14, wobei der Erzeugungsschritt ferner das Dimensionieren der Speicherblöcke aufweist, um entsprechende Codeabschnitte aufzunehmen.
  16. Verfahren gemäß Anspruch 15, wobei der Dimensionierungsschritt ferner das Dimensionieren der Codeabschnitte aufweist, um Größen größer als die Symbolbibliotheken aufzunehmen.
  17. 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.
  18. 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.
  19. System gemäß Anspruch 17, wobei jede Symbolbibliothek Symbole aufweist, die eine zugehörige Funktionalität haben.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. System gemäß Anspruch 23, wobei das Software-Update eine aktualisierte Codeabschnitt-Adresstabelle und eine aktualisierte Symboloffset-Adresstabelle aufweist.
  25. System gemäß Anspruch 17, wobei ein aktueller Codeabschnitt die Laufzeit-Befehlsmaschine aufweist.
  26. 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.
  27. System gemäß Anspruch 26, wobei der Laufzeit-Befehlsmaschine-Codeabschnitt Lese-Schreib-Daten, eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle aufweist.
  28. System gemäß Anspruch 26, wobei der Laufzeit-Befehlsmaschine-Codeabschnitt einen Symbol-Zugriffscode aufweist, der einen Symbol-Bezeichner und einen zugehörigen Codeabschnitt-Bezeichner aufweist.
  29. System gemäß Anspruch 28, wobei der Symbol-Zugriffscode die Adresse eines Symbols durch Zugreifen auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle berechnet.
  30. System gemäß Anspruch 29, wobei das Software-Update einen aktualisierten Symbol-Zugriffscode aufweist.
  31. System gemäß Anspruch 17, das ferner eine Mehrzahl von angrenzend adressierten Speicherblöcken aufweist, die mit der Mehrzahl der aktuellen Codeabschnitte identifiziert werden.
  32. 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.
  33. System gemäß Anspruch 32, wobei ein aktueller Codeabschnitt größer als die zugehörigen, darin angeordneten Symbolbibliotheken dimensioniert wird.
DE60205755T 2001-07-26 2002-07-23 System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen Expired - Lifetime DE60205755T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
DE60219536D1 (de) 2007-05-24
EP1410190B1 (de) 2005-08-24
KR100932058B1 (ko) 2009-12-15
KR20040019334A (ko) 2004-03-05
CN1535418A (zh) 2004-10-06
EP1410192B1 (de) 2007-12-26
JP4077408B2 (ja) 2008-04-16
DE60206055T2 (de) 2006-06-29
KR20040022464A (ko) 2004-03-12
WO2003013103A2 (en) 2003-02-13
JP4104546B2 (ja) 2008-06-18
ATE305632T1 (de) 2005-10-15
KR100940178B1 (ko) 2010-02-03
JP4073399B2 (ja) 2008-04-09
WO2003013103A3 (en) 2004-04-08
CN1235138C (zh) 2006-01-04
WO2003010662A2 (en) 2003-02-06
EP1601217A3 (de) 2006-05-10
KR20040022463A (ko) 2004-03-12
CN1235137C (zh) 2006-01-04
JP4106020B2 (ja) 2008-06-25
CN1535422A (zh) 2004-10-06
JP2004537120A (ja) 2004-12-09
WO2003010664A3 (en) 2003-12-24
EP1601217B1 (de) 2007-04-11
DE60206055D1 (de) 2005-10-13
AU2002319573A1 (en) 2003-02-17
AU2002319572A1 (en) 2003-02-17
EP1410665B1 (de) 2005-09-07
EP1601217A2 (de) 2005-11-30
ES2263796T3 (es) 2006-12-16
CN1275149C (zh) 2006-09-13
JP2008108268A (ja) 2008-05-08
AU2002319570A1 (en) 2003-02-17
CN1288554C (zh) 2006-12-06
JP4101752B2 (ja) 2008-06-18
ATE302972T1 (de) 2005-09-15
WO2003010656A3 (en) 2003-11-13
KR20040022462A (ko) 2004-03-12
KR20040015823A (ko) 2004-02-19
KR100918162B1 (ko) 2009-09-17
WO2003012639A2 (en) 2003-02-13
EP1425894A2 (de) 2004-06-09
WO2003010656A2 (en) 2003-02-06
KR100913658B1 (ko) 2009-08-24
CN100378661C (zh) 2008-04-02
KR100817387B1 (ko) 2008-03-27
CN1535420A (zh) 2004-10-06
JP4310186B2 (ja) 2009-08-05
KR20040017351A (ko) 2004-02-26
JP2004537899A (ja) 2004-12-16
CN1535419A (zh) 2004-10-06
KR20040022459A (ko) 2004-03-12
EP1610222A3 (de) 2007-01-31
AU2002319576A1 (en) 2003-02-17
EP1425894B1 (de) 2005-11-16
WO2003010663A2 (en) 2003-02-06
KR100913659B1 (ko) 2009-08-24
ES2253553T3 (es) 2006-06-01
JP2004537895A (ja) 2004-12-16
WO2003010668A3 (en) 2003-09-25
KR100940180B1 (ko) 2010-02-04
WO2003010664A2 (en) 2003-02-06
EP1610222B1 (de) 2011-03-02
EP1410188A2 (de) 2004-04-21
CN1250035C (zh) 2006-04-05
ATE327536T1 (de) 2006-06-15
JP4176634B2 (ja) 2008-11-05
DE60205755D1 (de) 2005-09-29
AU2002319577A1 (en) 2003-02-17
JP2004538693A (ja) 2004-12-24
ES2249602T3 (es) 2006-04-01
AU2002319569A1 (en) 2003-02-17
DE60211719D1 (de) 2006-06-29
AU2002355308A1 (en) 2003-02-17
CN1537276A (zh) 2004-10-13
CN1537272A (zh) 2004-10-13
JP2004537123A (ja) 2004-12-09
ES2284112T3 (es) 2007-11-01
WO2003010932A2 (en) 2003-02-06
JP2005505813A (ja) 2005-02-24
WO2003010662A3 (en) 2003-12-24
EP1610222A2 (de) 2005-12-28
DE60211704D1 (de) 2006-06-29
EP1410189A2 (de) 2004-04-21
AU2002328167A1 (en) 2003-02-17
EP1423959B1 (de) 2006-05-24
DE60206389T2 (de) 2006-07-13
AU2002319568A1 (en) 2003-02-17
JP2004537121A (ja) 2004-12-09
EP1410209B1 (de) 2006-05-24
ATE304272T1 (de) 2005-09-15
ES2248568T3 (es) 2006-03-16
ATE359681T1 (de) 2007-05-15
WO2003010658A2 (en) 2003-02-06
EP1410192A2 (de) 2004-04-21
EP1410193A2 (de) 2004-04-21
WO2003010663A3 (en) 2003-12-24
CN1537397A (zh) 2004-10-13
ATE387658T1 (de) 2008-03-15
CN1535421A (zh) 2004-10-06
ATE327628T1 (de) 2006-06-15
DE60207429T2 (de) 2006-07-27
EP1410190A2 (de) 2004-04-21
EP1410193B1 (de) 2005-09-28
JP4278513B2 (ja) 2009-06-17
JP2004537925A (ja) 2004-12-16
WO2003010668A2 (en) 2003-02-06
CN1310488C (zh) 2007-04-11
DE60207429D1 (de) 2005-12-22
WO2003010932A3 (en) 2004-04-08
ES2299587T3 (es) 2008-06-01
EP1423959A2 (de) 2004-06-02
KR20040017352A (ko) 2004-02-26
ES2300454T3 (es) 2008-06-16
CN1275150C (zh) 2006-09-13
WO2003010942A2 (en) 2003-02-06
KR100940179B1 (ko) 2010-02-03
ES2247355T3 (es) 2006-03-01
WO2003010658A3 (en) 2003-12-24
EP1410189B1 (de) 2008-02-27
DE60211719T2 (de) 2007-01-11
WO2003010942A3 (en) 2003-05-15
EP1410665A2 (de) 2004-04-21
KR100984895B1 (ko) 2010-10-01
JP2004537209A (ja) 2004-12-09
DE60219536T2 (de) 2008-01-03
EP1410209A2 (de) 2004-04-21
KR100911604B1 (ko) 2009-08-07
WO2003012639A3 (en) 2003-12-24
CN1288553C (zh) 2006-12-06
DE60206389D1 (de) 2006-02-09
KR20040022461A (ko) 2004-03-12
KR20040022460A (ko) 2004-03-12
ATE382159T1 (de) 2008-01-15
ES2263799T3 (es) 2006-12-16
JP2005502105A (ja) 2005-01-20
CN1535423A (zh) 2004-10-06
DE60211704T2 (de) 2007-05-10
CN1279447C (zh) 2006-10-11
CN1535529A (zh) 2004-10-06
EP1410191A2 (de) 2004-04-21
ATE310354T1 (de) 2005-12-15

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