DE60224281T2 - System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes - Google Patents

System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes Download PDF

Info

Publication number
DE60224281T2
DE60224281T2 DE60224281T DE60224281T DE60224281T2 DE 60224281 T2 DE60224281 T2 DE 60224281T2 DE 60224281 T DE60224281 T DE 60224281T DE 60224281 T DE60224281 T DE 60224281T DE 60224281 T2 DE60224281 T2 DE 60224281T2
Authority
DE
Germany
Prior art keywords
code
code section
section
symbol
new
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
DE60224281T
Other languages
English (en)
Other versions
DE60224281D1 (de
Inventor
Gowri Oceanside Rajaram
Paul San Diego SECKENDORF
Diego San 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/969,305 external-priority patent/US7386846B2/en
Application filed by Kyocera Wireless Corp filed Critical Kyocera Wireless Corp
Priority claimed from PCT/IB2002/002889 external-priority patent/WO2003012639A2/en
Publication of DE60224281D1 publication Critical patent/DE60224281D1/de
Application granted granted Critical
Publication of DE60224281T2 publication Critical patent/DE60224281T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • 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
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • 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
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/05Aspects of automatic or semi-automatic exchanges related to OAM&P
    • H04M2203/052Aspects of automatic or semi-automatic exchanges related to OAM&P software update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42178Administration or customisation of services by downloading data to substation equipment

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein drahtlose Kommunikationsvorrichtungen und genauer ein System und ein Verfahren zum Kompaktieren von Codeabschnitten in der Systemsoftware einer drahtlosen Kommunikationsvorrichtung vor Ort, die über eine Luftverbindungsschnittstelle aktualisiert wird.
  • 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, Fernsprechapparat, Telefon oder Mobilteil bezeichnet wird, in die nächste Einzelhandels-/Service-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.
  • Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung preiswert und ohne Umstände für den Kunden nachgerüstet werden könnte.
  • Es wäre vorteilhaft, wenn die Software der drahtlosen Kommunikationsvorrichtung nachgerüstet werden könnte, ohne dass der Kunde die Verwendbarkeit ihrer Telefone für eine signifikante Zeitspanne verliert.
  • 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 Systemsoftware der drahtlosen Vorrichtung 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.
  • Das Herunterladen von Software-Updates über eine Luftschnittstelle ist in WO 00/74412 (Telefonaktiebolaget LM Ericsson) 19. Mai 2000 (19.05.2000) beschrieben. Ein Objektcode-Expansionsprogramm, welches neue Befehle und Daten zwischen vorher vorhandene Befehle und Daten eines Objektcodes einfügt, ist in WO 93/00633 (PURE SOFTWARE, INC.) 5. Juni 1992 (05.06.92) beschrieben.
  • Es wäre vorteilhaft, wenn die Systemsoftware mit Codeabschnitten aktualisiert werden könnte, die größer als die gegenwärtig vorhandenen Codeabschnitte sind. Es wäre auch vorteilhaft, wenn die Systemsoftware umgeordnet werden könnte, um diese größeren, aktualisierten Codeabschnitte aufzunehmen.
  • 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 Software des mobilen Gerätes vor Ort über die Luftverbindungsschnittstelle praktisch nachzurüsten, wenn die Upgrade-Codeabschnitte größer als die Codeabschnitte sind, die sie ersetzen.
  • Zu diesem Zweck stellt die Erfindung ein Verfahren zum Reorganisieren eines neuen Codeabschnitts in zumindest einen aktuellen Codeabschnitt und ein entsprechendes System bereit, welche die Merkmale in den Ansprüchen 1 beziehungsweise 11 aufweisen. Weitere Ausführungsformen sind in den abhängigen Ansprüchen beschrieben.
  • Zusätzliche Details des oben beschriebenen Verfahrens zum Reorganisieren von Softwarebefehlen in der Systemsoftware einer drahtlosen Vorrichtung und ein System einer drahtlosen Vorrichtung zum Reorganisieren von Softwarebefehlen werden nachstehend vorgestellt.
  • 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 Reorganisieren von Softwarebefehlen 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.
  • 8 ist ein schematisches Blockdiagramm, das die Ergebnisse eines beispielhaften Kompaktierungsvorgangs darstellt.
  • Die 9a bis 9e stellen die Funktion einer beispielhaften Kompaktierungsliste dar.
  • Die 10a bis 10b sind ein Flussdiagramm, das das Verfahren der vorliegenden Erfindung zum Reorganisieren von Softwarebefehlen darstellt, die in einem Speicher der drahtlosen Kommunikationsvorrichtung gespeichert sind.
  • 11 ist ein Flussdiagramm, das einen alternativen Aspekt des Verfahrens der 10a bis 10b darstellt.
  • 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, einer Ablaufsteuerung und anderen symbolischen Darstellungen von Operationen an Datenbits innerhalb eines Mikroprozessors oder Speichers der 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 physikalische 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 als günstig 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, mit logischen Abläufen oder Anwendungen zusammenzuwirken, und sind deshalb mit logischen Operationen "verbunden". Zum Beispiel kann ein Speicher einen Code speichern oder auf ihn zugreifen, um eine logische Operation zu unterstützen, oder eine Anwendung kann einen Codeabschnitt aus dem Speicher zur Ausführung aufrufen.
  • 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 eines Mikroprozessorsystems in einer drahtlosen Vorrichtung bezeichnen, das Daten, die als physikalische (elektronische) Größen innerhalb der Register und der Speicher des Computersystems repräsentiert werden, 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 repräsentiert werden.
  • 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 Vorgang des Lieferns von Systemsoftwareaktualisierungen und Befehlssätzen (Programmen) und das Installieren der gelieferten Software in einer drahtlosen Vorrichtung. Die Systemsoftwareaktualisierungen oder Patchmanager-Laufzeitbefehle (PMRTI), die allgemeiner als Befehlssätze bekannt sind, werden von dem Hersteller der Mobilteile erstellt. Die Systemsoftware ist in Symbolbibliotheken organisiert. Die Symbolbibliotheken sind in Codeabschnitte 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 bekannter 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 zum Zweck des Empfangens der Systemsoftware und der PMRTI-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-Lese-Schreib-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-Lese-Schreib-Speicher 114 geladen werden können, wenn die drahtlose Vorrichtung neu gestartet wird. Das beinhaltet, dass beim ersten Mal RW-Daten in den flüchtigen Direktzugriffs-Lese-Schreib-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 (anderer Codeabschnitte) eingesetzt (ersetzt) werden. Virtuelle Tabellen werden aus Effizienzgründen von dem flüchtigen Direktzugriffs-Lese-Schreib-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-Lese-Schreib-Speicher 114 geladen wird. Die nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek bewirkt, dass Codeabschnitte mit aktualisierten Codeabschnitten überschrieben werden. 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 neu gestartet. Anschließend an den Neustart 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 Lese-Schreib-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, Programme oder Patchmanager-Befehlssätze (PMIS), die hier als Patchmanager-Laufzeitbefehle (PMRTI) bezeichnet werden, herunterladen und installieren. Der PMRTI-Codeabschnitt 200 wird zu der drahtlosen Vorrichtung 104 in der gleichen Weise wie die oben beschriebenen Systemsoftware-Codeabschnitte transportiert. PMRTI-Codeabschnitte werden anfangs in dem FSS 110 gespeichert. Ein PMRTI-Codeabschnitt ist typischerweise eine Binärdatei, die man sich als kompilierte Anweisungen für das Mobilteil vorstellen kann. Ein PMRTI-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-Kalibrierung-PMRTI die folgenden Operationen ausführen:
    IF RF CAL ITEM IS LESS THAN X
    EXECUTE INSTRUCTION
    ELSE
    EXECUTE INSTRUCTION
  • Ein PMRTI kann grundlegende mathematische Operationen unterstützen, wie zum Beispiel: Addition, Subtraktion, Multiplikation und Division. Wie bei den Systemsoftware-Codeabschnitten kann der PMRTI-Codeabschnitt in Antwort auf UI-Eingabeaufforderungen geladen werden, und die drahtlose Vorrichtung muss neu gestartet werden, nachdem der PMRTI in den Codespeicherabschnitt 112 geladen ist. Dann kann der PMRTI-Abschnitt ausgeführt werden. Wenn der PMRTI-Codeabschnitt mit irgendwelchen virtuellen Tabellen oder Lese-Schreib-Daten verknüpft ist, wird ein aktualisierter Patchmanager-Codeabschnitt mit dem PMRTI für die Installation in den Codespeicherabschnitt 112 transportiert. Alternativ kann der PMRTI von dem FSS 110 aufbewahrt und verarbeitet werden. Nachdem das Mobilteil 104 all die Befehle in dem PMRTI-Abschnitt ausgeführt hat, kann der PMRTI-Abschnitt aus dem FSS 110 gelöscht werden.
  • PMRTI ist eine sehr leistungsfähige Laufzeit-Befehlsmaschine. Das Mobilteil kann jeden zu ihm gelieferten Befehl durch die PMRTI-Umgebung ausführen. Dieser Mechanismus kann verwendet werden, um RF-Kalibrierungen und PRI-Updates zu unterstützen. Allgemeiner kann PMRTI 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. PMRTI kann auch Daten erfassen, die benötigt werden, um Softwareprobleme zu diagnostizieren. PMRTI kann neu heruntergeladene Systemanwendungen für die Datenanalyse, die Fehlersuche und die Fehlerbeseitigung starten. PMRTI kann RW-Daten basierte Updates für die Analyse und mögliche vorläufige Behebung eines Problems anstatt eines aktualisierten Systemsoftware-Codeabschnitts bereitstellen. PMRTI kann Speicherkompaktierungsalgorithmen zur Verwendung durch die drahtlose Vorrichtung bereitstellen.
  • In einigen Aspekten der Erfindung kann die Organisation der Systemsoftware in Symbolbibliotheken Auswirkungen auf die Größe des flüchtigen Speichers 114 und des nichtflüchtigen Speichers 108 haben, die für die Ausführung erforderlich ist. Das liegt an der Tatsache, dass die Codeabschnitte typischerweise größer sind als die Symbolbibliotheken, die in den Codeabschnitten angeordnet sind. Diese größeren Codeabschnitte existieren, um aktualisierte Codeabschnitte aufzunehmen. Das Organisieren der Systemsoftware als eine Sammlung von Bibliotheken beeinflusst die Anforderung an die Größe des nichtflüchtigen Speichers. Für die gleiche Codegröße ist die Menge des verwendeten nichtflüchtigen Speichers infolge der Tatsache höher, dass Codeabschnitte so dimensioniert werden können, dass sie größer als die darin angeordneten Symbolbibliotheken sind.
  • Sobald die Software-Updates zu der drahtlosen Vorrichtung geliefert wurden, unterstützt das Softwarewartungssystem 100 die Speicherkompaktierung. 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 Codeabschnittsaktualisierungen 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 Reorganisieren von Softwarebefehlen 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 einen Bereich von Adressen von der ersten Adresse an. 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 die 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 gespeichert, in diesem Fall dem zweiten Speicherblock 402.
  • In 3 weist die Systemsoftware-Struktur 300 ferner eine Codeabschnitt-Adresstabelle 326 als einen Symboltyp auf, der 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 darstellt. 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 drei (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 gleichen 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 welchem es angeordnet ist.
  • Zurückkehrend zu 3 weist die erste Mehrzahl von Symbolbibliotheken typischerweise alle Lese-Schreib-Daten auf, die in der Ausführung dieser Symbolbibliotheken konsultiert oder eingestellt werden müssen. Zum Beispiel kann eine Symbolbibliothek eine Operation enthalten, die von einem bedingten Befehl abhängt. Der Lese-Schreib-Datenbereich wird konsultiert, um den Zustand zu bestimmen, der erforderlich ist, um den bedingten Befehl auszuführen. Die vorliegende Erfindung gruppiert die Lese-Schreib-Daten von allen Symbolbibliotheken in einem 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 zwei (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) 336 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, dass 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 von dem Patchmanager-Codeabschnitt in den flüchtigen Lese-Schreib-Speicher 114 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 entsprechenden, 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 ungenutzten 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.
  • Angrenzend adressierte Speicherblöcke beziehen sich auf das Partitionieren des physischen Speicherplatzes in logische Blöcke variabler Größe. Codeabschnitte und Speicherblöcke sind Begriffe, die im Wesentlichen austauschbar sind, wenn der Codeabschnitt im Speicher gespeichert wird. Das Konzept eines Codeabschnitts wird verwendet, um einen Abschnitt von Code, der vielleicht größer als die Symbolbibliothek ist, oder die Sammlung von Symbolbibliotheken in dem Codeabschnitt zu identifizieren, wenn er bewegt und verarbeitet wird.
  • 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-Laufzeitbefehl (PMRTI) 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 PMRTI. 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 PMRTI 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 Datensystemabschnitt 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, die Symbol-Zugriffscode-Abschnitte 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 durch eine aktualisierte Symbol-Zugriffscodeadresse. Wie oben erwähnt, ist die erste Stelle im Speicher 334 typischerweise in dem Patchmanager-Codeabschnitt (siehe 3).
  • Wie in 3 zu sehen, weist die Patchbibliothek 308 auch einen Kompaktierer oder eine Kompaktierer-Symbolbibliothek 342 auf. Der Kompaktierer 342 kann auch als ein eindeutiger und unabhängiger Codeabschnitt ermöglicht werden, jedoch ist es, wie oben erwähnt, nützlich und effizient, die Funktionen, die mit Systemsoftware-Upgrades zusammenhängen, in einem einzigen Patchmanager-Codeabschnitt zu bündeln. Im Allgemeinen kann gesagt werden, dass der Kompaktierer 342 die Größe von Codeabschnitten ändert, so dass neue Abschnitte mit aktuellen Codeabschnitten in dem Codespeicherabschnitt 112 angeordnet werden können.
  • Stellt man die 3 und 4 gegenüber, empfängt der Dateisystemabschnitt 110 einen Kompaktierungs-Befehlssatz mit Anweisungen zum Identifizieren eines aktuellen Codeabschnitts zum Aktualisieren über die Luftverbindungsschnittstelle 150 (siehe 1). Beispielsweise kann der Kompaktierungs-Befehlssatz der erste PMRTI 454 sein, obwohl die Anweisungen für die Kompaktierung nicht notwendigerweise mit den anderen Aktualisierungsbefehlen gebündelt sein müssen. Der Kompaktierer 342 ersetzt den identifizierten aktuellen Codeabschnitt in dem Codespeicherabschnitt durch den neuen Codeabschnitt. Es versteht sich, dass der Kompaktierer 342 in Kooperation mit der oben erläuterten Patchbibliothek 336 arbeitet. Anders gesagt, der Kompaktierer 342 wird aufgefordert, die Patchbibliothek 336 unter Umständen zu unterstützen, in denen eine Codeabschnitt-Größenänderung in dem Prozess des Aktualisierens der Systemsoftware erforderlich ist.
  • Der Kompaktierer ändert die Größe der Speicherblöcke (4), in welchen entsprechende, in der Größe geänderte Codeabschnitte in dem Codespeicherabschnitt gespeichert sind. Beispielsweise empfängt der Dateisystemabschnitt 110 einen neuen Codeabschnitt 450, der eine erste Größe hat.
  • Gleichzeitig oder in anderen Nachrichten empfängt die drahtlose Vorrichtung einen Kompaktierungs-Befehlssatz, sagen wir den ersten PMRTI 454, und einen aktualisierten Patchmanager-Codeabschnitt 452. Der Kompaktierungs-Befehlssatz 454 identifiziert einen aktuellen Codeabschnitt, der eine zweite Größe kleiner als die erste Größe hat, sagen wir Codeabschnitt 2 (304). Da der aktualisierte Codeabschnitt 450 größer als der Codeabschnitt ist, der ersetzt wird, muss ein Kompaktierungsvorgang ausgeführt werden. Der Kompaktierer 342 erhöht die Größe des zweiten, mit dem identifizierten aktuellen Codeabschnitt 304 verbundenen Speicherblocks 402 auf wenigstens die erste Größe. Der Kompaktierer (in Kooperation mit der Patchbibliothek 336) ersetzt den identifizierten aktuellen, in dem entsprechenden Speicherblock 402 gespeicherten Codeabschnitt 304 durch den neuen Codeabschnitt 450.
  • Wie oben bemerkt, ist es für die Codeabschnitte üblich, dass sie in Bezug auf die darin angeordnete Symbolbibliothek oder die darin angeordneten Symbolbibliotheken überdimensioniert sind. Der Kompaktierer 342 ermittelt die Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken und ändert die Größe der Codeabschnitte, damit sie genauer zu den darin angeordneten Symbolbibliothek-Größen passen. Typischerweise ändert der Kompaktierer 342 die Größe der Codeabschnitte optimal, um nachfolgende Codeabschnitt-Größenänderungs- und -Aktualisierungsvorgänge zu fördern.
  • Das oben begonnene Beispiel fortsetzend kann der Kompaktierer 342 die Codeabschnitte optimal in der Größe durch Benutzen ungenutzter Bereiche von den dem zweiten Speicherblock 402 benachbarten Codeabschnitten ändern. Wie gezeigt, weisen der Codeabschnitt eins (302) und ein Codeabschnitt drei (344) ungenutzte Bereiche 340 beziehungsweise 346 auf. Der Kompaktierer kann wählen, den ersten Speicherblock 302 und einen dritten Speicherblock 460 in der Größe zu ändern, wobei er von beiden ungenutzte Bereiche 340 und 346 nimmt, um den zweiten Speicherblock 402 groß genug für den neuen Codeabschnitt 450 zu machen.
  • 8 ist ein schematisches Blockdiagramm, das die Ergebnisse des beispielhaften Kompaktierungsvorgangs darstellt. Codeabschnitt 2 wurde durch den größeren neuen (aktualisierten) Codeabschnitt 450 ersetzt. Der ungenutzte Abschnitt 340 von Codeabschnitt eins (302) wurde wie der ungenutzte Bereich 346 von Codeabschnitt drei (344) reduziert. Das Belassen gewisser ungenutzter Bereiche in jedem Codeabschnitt dient effizienten zukünftigen Expansions- und Kompaktierungsvorgängen. Wenn beispielsweise der gesamte ungenutzte Bereich 346 würde verbraucht werden, um den aktualisierten Codeabschnitt 450 in dem aktuellen Aktualisierungsvorgang aufzunehmen, würde jede künftige Expansion von Codeabschnitt drei (344) notwendigerweise Kompaktierungsvorgänge in benachbarten Codeabschnitten erfordern. Es versteht sich auch, dass, obwohl das Beispiel nur zwei benachbarte Speicherblöcke zeigt, die in der Größe geändert werden, es einige Kompaktierungsvorgänge erfordern können, dass einige oder sogar alle Codeabschnitte in der Größe geändert werden, um neue (größere) Codeabschnitt-Updates aufzunehmen.
  • Der Kompaktierer 342 greift auf Startadressen aus der Codeabschnitt-Adresstabelle, um die Größen der Codeabschnitte zu messen, und auf die Symboloffset-Adressen aus der Symboloffset-Adresstabelle zu, um die Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken zu messen. Wieder versteht es sich, dass in einigen Aspekten der Erfindung der Kompaktierer auf andere Symbolbibliotheken angewiesen ist und mit anderen Symbolbibliotheken kooperiert, die nicht notwendigerweise in dem Patchmanager-Codeabschnitt 308 liegen, um Aufgaben zu erfüllen. Vorzugsweise arbeitet der Kompaktierer jedoch mit dem oben beschriebenen Symbol-Zugriffscode, um auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle zuzugreifen.
  • Da die Codeabschnitt-Adresstabelle die Startadresse von jedem Codeabschnitt enthält, kann eine einfache Rechenoperation unter Verwendung der Startadressen von benachbarten Codeabschnitten die Größe des Codeabschnitts ermitteln. Ebenso kann die Adresse des letzten Symbols in einer Symbolbibliothek, zusammen mit den Codeabschnitt-Startadressen, verwendet werden, um die ungefähre Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken und somit die Menge des ungenutzten Bereichs zu ermitteln. Wenn beispielsweise die Startadresse von Codeabschnitt eins (302) (0100) ist, die Startadresse von Codeabschnitt zwei (304) (0200) ist und die Adresse des letzten Symbols von Symbolbibliothek eins (310) (0170) ist, beträgt die Größe des ungenutzten Bereichs 340 ungefähr (0200–0170).
  • Jedoch sind viele Symbole über mehrere aneinandergrenzende Adressen verteilt, und die Offsetadresse des letzten Symbols ist nicht notwendigerweise die gleiche wie die Adresse, an der die Symbolbibliothek endet. Das obige Beispiel fortsetzend beträgt, wenn das letzte Symbol bei Adresse (0170) beginnt und bei (0173) endet, die Größe des ungenutzten Raumes 340 tatsächlich (0200–0173). In einigen Aspekten der Erfindung weist der Codespeicherabschnitt 112 Symbolbibliotheken mit Endsymbolen auf, um das Ende von Symbolbibliotheken zu kennzeichnen. Beispielsweise ist, vorübergehend zurückkehrend zu 6, das Symbol „Z" ein Ein-Byte-Endsymbol. Das heißt, die Adresse von Symbol „Z" kennzeichnet das Ende von Symbolbibliothek eins. Der Kompaktierer 342 verwendet die Endsymbol-Offsetadressen, durch die Funktion des Symbol-Zugriffscodes, um die Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken zu messen.
  • Alternativ weist der Codespeicherabschnitt 112 Symbolbibliotheken mit Größensymbolen auf, um die Größe von Symbolbibliotheken zu bezeichnen. Beispielsweise kann das Symbol „Y" (6) eine Zahl (0073) sein, die die Größe der Symbolbibliothek eins bezeichnet. Der Kompaktierer 342 greift auf die Größensymbole zu, um die Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken zu messen. In anderen Aspekten der Erfindung sind die Größensymbole für alle Symbolbibliotheken in einer Tabelle in einem getrennten Codeabschnitt (nicht gezeigt) des Patchmanager-Codeabschnitts gespeichert.
  • Der Kompaktierer 342 misst die Größe des neuen Codeabschnitts 450 in dem Dateisystemabschnitt 110 und ermittelt zuerst, ob der neue Codeabschnitt mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt 112 angeordnet werden kann. Der Kompaktierer 342 nimmt die Ermittlung in Antwort auf das Messen der Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken und das Messen der Größe des neuen Codeabschnitts vor. Falls es die Kompaktierung nicht erfolgreich erlaubt, dass der neue Codeabschnitt installiert wird, bricht der Kompaktierer 342 den Vorgang automatisch ab. Alternativ berechnet der Kompaktierer eine Erfolgswahrscheinlichkeit, zeigt die Wahrscheinlichkeit dem Nutzer der drahtlosen Vorrichtung an und erlaubt es dem Nutzer zu bestimmen, ob der Kompaktierungsvorgang fortgesetzt werden soll. Ungeachtet der Erfolgswahrscheinlichkeit gibt das drahtlose Telefon dem Nutzer die Option des Startens des Kompaktierungsvorgangs, da der Kompaktierer 342 die Ausführung der Systemsoftware während des Kompaktierungs- und Aktualisierungsvorgangs aussetzen muss.
  • Um die Größe des aktualisierten Codeabschnitts zu ermitteln, ist der Kompaktierer 342 im Allgemeinen auf Kompaktierungs-Befehlssatz-Daten angewiesen. Der Dateisystemabschnitt 110 empfängt einen Kompaktierungs-Befehlssatz 454, der die Größe des neuen Codeabschnitts 450 enthält. Der Kompaktierer 342 greift auf den Kompaktierungs-Befehlssatz 454 zu, um die Größe des neuen Codeabschnitts 450 in dem Dateisystemabschnitt 110 zu ermitteln und ermittelt in Antwort auf das Messen der Größe der innerhalb der entsprechenden Codeabschnitte angeordneten Symbolbibliotheken und das Ermitteln der Größe des neuen Codeabschnitts, ob der neue Codeabschnitt mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt 112 angeordnet werden kann.
  • Der Kompaktierungsvorgang kann vermieden werden, wenn der Codespeicherabschnitt große ungenutzte Speicherblockabschnitte aufweist. Der Kompaktierer 342 ermittelt die Größe der ungenutzten Speicherblöcke in dem Codespeicherabschnitt und speichert den neuen Codeabschnitt in dem ungenutzten Speicherblock, wenn die Größe des ungenutzten Speicherblocks größer als die oder gleich der Größe des neuen Codeabschnitts ist.
  • Sobald die Codeabschnitte in der Größe geändert wurden und die identifizierten Codeabschnitte durch aktualisierte Codeabschnitte ersetzt wurden, ändert der Kompaktierer 342 die Startadressen der in dem Codespeicherabschnitt gespeicherten Codeabschnitte. Wenn, das obige Beispiel fortsetzend, der Vorgang der Größenänderung durch Starten des neuen Codeabschnitts 450 (nun Codeabschnitt zwei) an der Startadresse (0175) anstelle von (0200) vollendet ist, muss die Codeabschnitt-Adresstabelle geändert werden, um die neue Startadresse widerzuspiegeln.
  • Die 9a bis 9e stellen die Wirkungsweise einer beispielhaften Kompaktierungsliste dar. Nachdem der Kompaktierer 342, der von dem flüchtigen Speicher 114 aus arbeitet, die Wahrscheinlichkeit einer erfolgreichen Kompaktierung berechnet und die Codeabschnitts-Größen berechnet hat, erzeugt der Kompaktierer 342 eine Kompaktierungsliste. Die Kompaktierungsliste enthält die Reihenfolge, in welcher Codeabschnitte verschoben werden, und ihre temporäre Platzierung in dem FSS 110. Der Dateisystemabschnitt 110 speichert temporär Codeabschnitte aus dem Codespeicherabschnitt 112, und der Kompaktierer 342 speichert in Antwort auf die Kompaktierungsliste die Codeabschnitte aus dem Dateisystemabschnitt 110 in die Speicherblöcke des Codespeicherabschnitts 112, um eine zusammenhängende Adressierung aufrechtzuerhalten.
  • Das oben begonnene Beispiel fortsetzend konsultiert in 9a der Kompaktierer 342 den Kompaktierungs-Befehlssatz (erster PMRTI) 454, um den Codeabschnitt, der aktualisiert werden muss, und die Größe des neuen Codeabschnitts 450 zu ermitteln. In 9b beginnt der Kompaktierer 342 nach dem Berechnen der Erfolgswahrscheinlichkeit und der Größe der Codeabschnitte den Vorgang durch Verschieben von Codeabschnitt drei (344) von dem dritten Speicherblock 460 in den FSS 110.
  • In 9c wird der neue Codeabschnitt 450 von dem FSS 110 in den zweiten Speicherblock 402 verschoben. Wenn Codeabschnitt eins (302) in der Größe geändert wurde, bewirkt der Kompaktierer 342, dass die Startadresse des neuen Codeabschnitts in dem ungenutzten Bereich 340 beginnt (siehe 3). Wie oben erwähnt, ändert sich der Anfang des zweiten Speicherblocks von (0200) in (0175). Das heißt, Codeabschnitt eins (302) wurde kompaktiert.
  • In 9d wird Codeabschnitt drei (344) von dem FSS 110 zurück in den dritten Speicherblock 460 verschoben. Die Verschiebung wird vorgenommen, damit Codeabschnitt drei (344) an einer neuen Startadresse beginnt. Das Beginnen des Codeabschnitts an einer neuen Startadresse kann ein Kompaktieren des Codeabschnitts mit sich bringen. Das heißt, es kann sein, dass etwas von dem ungenutzen Bereich 346 verwendet wird.
  • In 9e wird der Patchmanager (PM)-Codeabschnitt 308 durch den neuen (aktualisierten) PM-Codeabschnitt 452 ersetzt. Typischerweise weist der Patchmanager die Codeabschnitt-Adresstabelle-Code-Symbolbibliothek auf (siehe 3). Jedoch ist die aktualisierte Codeabschnitt-Adresstabelle nicht notwendigerweise korrekt, da die Ergebnisse der Kompaktierung nicht notwendigerweise im Voraus bekannt sind. Dann erzeugt der Kompaktierer 342 eine aktualisierte Codeabschnitt-Adresstabelle in Antwort auf die Veränderung der Startadressen der innerhalb der Speicherblöcke gespeicherten Codeabschnitte. Der Kompaktierer 342 überschreibt die in dem Codespeicherabschnitt 112 gespeicherte aktualisierte Codeabschnitt-Adresstabelle mit der aktualisierten Codeabschnitt-Adresstabelle, die er erzeugt hat. Dann greift die aktualisierte Systemsoftware auf die aktualisierte Codeabschnitt-Adresstabelle zu, nachdem der neue Codeabschnitt mit den aktuellen Codeabschnitten angeordnet ist.
  • Jedoch wird die Symboloffset-Adresstabelle anders behandelt, da die Symboloffset-Adressen für aktualisierte und aktuelle Codeabschnitte im Voraus berechnet werden können. Der Dateisystemabschnitt 110 empfängt einen neuen Codeabschnitt, typischerweise den PM-Codeabschnitt 452, mit einer aktualisierten Symboloffset-Adresstabelle, und die aktualisierte Systemsoftware greift auf die aktualisierte Symboloffset-Adresstabelle zu, nachdem der neue Codeabschnitt 452 mit den aktuellen Codeabschnitten angeordnet ist.
  • Ein Großteil der obigen Beschreibung der Erfindung wurde der Wirkungsweise des Kompaktierers beim Berechnen der Codeabschnitts-Größen und einer Kompaktierungsliste gewidmet. Jedoch ist in einigen Aspekten der Erfindung der Kompaktierer 342 von der Verantwortlichkeit für diese Berechnungen entbunden. In diesem Aspekt der Erfindung empfängt der Dateisystemabschnitt 110 einen Kompaktierungs-Befehlssatz 454, der Codeabschnitt-Größenänderungs-Anweisungen und eine Kompaktierungsliste aufweist. Dann ändert der Kompaktierer 342 in Antwort auf die Codeabschnitt-Größenänderungs-Anweisungen Codeabschnitte in der Größe. Wie vorher speichert der Dateisystemabschnitt 110 temporär Codeabschnitte aus dem Codespeicherabschnitt 112, und der Kompaktierer 342 speichert in Antwort auf die Kompaktierungsliste die Codeabschnitte aus dem Dateisystemabschnitt 110 in die Speicherblöcke des Codespeicherabschnitts 112, um eine zusammenhängende Adressierung aufrechtzuerhalten.
  • Der Dateisystemabschnitt 110 empfängt auch einen neuen Codeabschnitt, zum Beispiel den aktualisierten PM-Codeabschnitt 452, mit einer aktualisierten Codeabschnitt-Adresstabelle und einer aktualisierten Symboloffset-Adresstabelle. Da die Codeabschnitts-Größenänderung und die Kompaktierungsliste im Voraus berechnet wurden (nicht durch die drahtlose Vorrichtung), spiegeln diese aktualisierten Tabellen die neuen Codeabschnitts-Startadressen akkurat wider. Die aktualisierte Systemsoftware greift auf die aktualisierte Symboloffset-Adresstabelle und die aktualisierte Codeabschnitt-Adresstabelle zu, nachdem der neue Codeabschnitt mit den aktuellen Codeabschnitten angeordnet ist.
  • Wie es am besten in 1 dargestellt ist, enthält der flüchtige Speicher 114 die zum Ausführen der Systemsoftware aus dem Codespeicherabschnitt 112 geladenen Codeabschnitte der ersten und der zweiten Tabelle (der Codeabschnitt- Adresstabelle und der Symboloffset-Adresstabelle). Andere kritische Bibliotheken aus dem Patchmanager-Codeabschnitt 308 werden auch in den flüchtigen Speicher 114 geladen. Nach einem Neustart der drahtlosen Kommunikationsvorrichtung 104 werden die neuen Codeabschnitte mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt 112 angeordnet, um eine aktualisierte Systemsoftware zu bilden. Beim Neustart werden die aktualisierte Codeabschnitt-Adresstabelle und die aktualisierte Symboloffset-Adresstabelle in den flüchtigen Speicher 114 geladen, und die Systemsoftware kann dann mit den aktualisierten Tabellen ausgeführt werden.
  • Die 10a bis 10b sind ein Flussdiagramm, das das Verfahren der vorliegenden Erfindung zum Reorganisieren von in einem Speicher einer drahtlosen Kommunikationsvorrichtung gespeicherten Softwarebefehlen darstellt. Obwohl es der Klarheit wegen als eine Folge von nummerierten Schritten dargestellt ist, sollte, wenn nicht anderes angegeben, aus der Nummerierung keine Reihenfolge geschlossen werden. Das Verfahren beginnt bei Schritt 1000. Schritt 1001a formt die Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken, wobei jede Symbolbibliothek zumindest ein Symbol aufweist.
  • Schritt 1001b ordnet die erste Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten an. Schritt 1002 speichert die Systemsoftware der drahtlosen Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten. Schritt 1004 empfängt einen neuen Codeabschnitt. Das Empfangen eines neuen Codeabschnitts in Schritt 1004 weist das Empfangen des neuen Codeabschnitts über eine Luftschnittstelle der drahtlosen Kommunikationsvorrichtung auf.
  • Schritt 1006 ändert die Größe von aktuellen Codeabschnitten. Typischerweise weist die Größenänderung aktueller Codeabschnitte das Aussetzen des Betriebs der Systemsoftware auf. Schritt 1008 ordnet den neuen Codeabschnitt mit den aktuellen Codeabschnitten an, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden. Schritt 1010 führt die aktualisierte Systemsoftware aus. Typischerweise identifiziert Schritt 1005a einen aktuellen Codeabschnitt zum Aktualisieren, und das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten zum Bilden einer aktualisierten Systemsoftware in Schritt 1008 weist das Ersetzen des identifizierten aktuellen Codeabschnitts durch den neuen Codeabschnitt auf.
  • Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt 1001b weist das Beginnen von Symbolbibliotheken an dem Anfang von Codeabschnitten auf. Das Speichern der Systemsoftware der drahtlosen Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten in Schritt 1002 weist das Speichern des Anfangs von Codeabschnitten an entsprechenden Startadressen auf. Dann weist das Verfahren einen weiteren Schritt auf. Schritt 1003a hält eine Codeabschnitt-Adresstabelle aufrecht, die Querverweise von Codeabschnitt-Bezeichnern mit zugehörigen Startadressen herstellt.
  • Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt 1001b weist das Anordnen von Symbolen auf, dass sie von ihren jeweiligen Codeabschnitt-Startadressen versetzt sind. Dann hält Schritt 1003b eine Symboloffset-Adresstabelle aufrecht, die Querverweise von Symbol-Bezeichnern mit zugehörigen Offsetadressen und mit zugehörigen Codeabschnitt-Bezeichnern herstellt.
  • Das Speichern des Anfangs von Codeabschnitten an entsprechenden Startadressen weist Unterschritte auf. Schritt 1002a erzeugt eine zweite Mehrzahl von aneinandergrenzend adressierten Speicherblöcken. Schritt 1002b identifiziert jeden Speicherblock mit einem entsprechenden Codeabschnitt.
  • Schritt 1002c speichert die Codeabschnitte in den identifizierten Speicherblöcken.
  • Das Anordnen der ersten Mehrzahl von Symbolbibliotheken in eine zweite Mehrzahl von Codeabschnitten in Schritt 1002 weist das Dimensionieren der Codeabschnitte auf, um angeordnete Symbolbibliotheken unterzubringen. Das Erzeugen einer zweiten Mehrzahl von aneinandergrenzend adressierten Speicherblöcken in Schritt 1002a weist das Dimensionieren der Speicherblöcke auf, um entsprechende Codeabschnitte unterzubringen.
  • Typischerweise weist das Dimensionieren der Speicherblöcke, um entsprechende Codeabschnitte unterzubringen, das Dimensionieren der Codeabschnitte auf, um Größen größer als die angeordneten Symbolbibliotheken unterzubringen. Das Ändern der Größe von aktuellen Codeabschnitten in Schritt 1006 weist das Ändern der Größe der Speicherblöcke auf, in welchen entsprechende, in der Größe geänderte Codeabschnitte gespeichert werden.
  • Zum Beispiel weist das Empfangen eines neuen Codeabschnitts in Schritt 1004 das Empfangen eines neuen Codeabschnitts mit einer ersten Größe auf. Das Identifizieren eines aktuellen Codeabschnitts zum Aktualisieren in Schritt 1005a weist das Identifizieren eines aktuellen Codeabschnitts mit einer zweiten Größe kleiner als die erste Größe auf. Dann weist in Schritt 1006 das Ändern der Größe der Speicherblöcke, in welchen entsprechende, in der Größe geänderte Codeabschnitte gespeichert sind, Unterschritte auf. Schritt 1006a (nicht gezeigt) erhöht die Größe eines Speicherblocks, der mit dem identifizierten aktuellen Speicherblock verbunden ist, auf zumindest die erste Größe, und Schritt 1006b (nicht gezeigt) ersetzt den identifizierten, in dem entsprechenden Speicherblock gespeicherten aktuellen Codeabschnitt durch den neuen Codeabschnitt.
  • Das Ändern der Größe der Speicherblöcke, in welchen entsprechende, in der Größe geänderte Codeabschnitte gespeichert sind, in Schritt 1006 weist, in Antwort auf das Messen der Größe der innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken (siehe Schritt 1005c unten), das Ändern der Größe der Codeabschnitte auf, damit sie genauer zu den darin angeordneten Symbolbibliotheks-Größen passen. Das Ändern der Größe der Codeabschnitte in Schritt 1006, damit sie genauer zu den darin angeordneten Symbolbibliotheks-Größen passen, weist das optimale Ändern der Größe der Codeabschnitte auf, um nachfolgende Codeabschnitts-Größenänderungs- und -Aktualisierungsvorgänge zu fördern.
  • Schritt 1005b misst unter Verwendung der Startadressen aus der Codeabschnitt-Adresstabelle die Größen der aktuellen Codeabschnitte. Schritt 1005c misst unter Verwendung der Symboloffset-Adressen aus der Symboloffset-Adresstabelle die Größe der innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken. Das heißt, es werden die Codeabschnitts-Größen und die Größen der Symbolbibliotheken gemessen. Diese Informationen erlauben es, dass die Menge des ungenutzten Bereichs in jedem Codeabschnitt berechnet wird.
  • In einigen Aspekten weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken in Schritt 1001a das Bilden von Endsymbolen auf, um das Ende von Symbolbibliotheken zu kennzeichnen. Dann weist das Messen der Größe der innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken in Schritt 1005c das Verwenden der Offset-Adressen der Endsymbole auf, um die Größe der Symbolbibliotheken zu messen. Alternativ weist das Formen der Systemsoftware in eine erste Mehrzahl von Symbolbibliotheken in Schritt 1001a das Bilden von Größensymbolen auf, um die Größe von Symbolbibliotheken zu bezeichnen. Dann weist das Messen der Größe der innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken in Schritt 1005c das Zugreifen auf die Größensymbole auf, um die Größe der Symbolbibliotheken zu messen.
  • Schritt 1005d misst die Größe des neuen Codeabschnitts. Schritt 1005e ermittelt in Antwort auf das Messen der Größe von innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken in Schritt 1005c und das Messen der Größe des neuen Codeabschnitts in Schritt 1005d, ob der neue Codeabschnitt mit den aktuellen Codeabschnitten angeordnet werden kann.
  • In einigen Aspekten weist das Ermitteln in Schritt 1005e, ob der neue Codeabschnitt mit den aktuellen Codeabschnitten angeordnet werden kann, das Ermitteln der Größe ungenutzter Speicherblöcke auf. Dann weist das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten in Schritt 1008, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, das Speichern des neuen Codeabschnitts in dem ungenutzen Speicherblock auf, wenn die Größe des ungenutzten Speicherblocks größer als die oder gleich der Größe des neuen Codeabschnitts ist.
  • Schritt 1005f berechnet die Codeabschnitts-Größen. Das heißt, es wird eine Bestimmung neuer Codeabschnitts-Größen vorgenommen, die es erlauben, dass der neue Codeabschnitt mit den aktuellen Codeabschnitten angeordnet wird. Schritt 1007a erzeugt in Antwort auf das Berechnen der Codeabschnitts-Größen eine Kompaktierungsliste. Schritt 1007b verschiebt temporär Codeabschnitte in einen Dateisystemabschnitt. Dann weist das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten in Schritt 1008, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, das Speichern der Codeabschnitte aus dem Dateisystemabschnitt in die Speicherblöcke, um eine zusammenhängende Adressierung aufrechtzuerhalten, in Antwort auf die Kompaktierungsliste auf.
  • Nach der Änderung der Größe der Codeabschnitte in Schritt 1006 ändert Schritt 1009a die Codeabschnitts-Startadressen. Schritt 1009b erzeugt in Antwort auf das Ändern der Startadressen der innerhalb der Speicherblöcke gespeicherten Codeabschnitte eine aktualisierte Codeabschnitt-Adresstabelle. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt 1010 das Verwenden der aktualisierten Codeabschnitt-Adresstabelle nach dem Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten auf.
  • In einigen Aspekten der Erfindung weist das Empfangen eines neuen Codeabschnitts in Schritt 1004 das Empfangen eines neuen Codeabschnitts mit einer aktualisierten Symboloffset-Adresstabelle auf. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt 1010 das Verwenden der aktualisierten Symboloffset-Adresstabelle nach dem Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten auf.
  • Schritt 1003c lädt die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle in einen flüchtigen Speicher. Schritt 1003d (nicht gezeigt) führt die Systemsoftware in Antwort auf das Laden der Codeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle in den flüchtigen Speicher aus.
  • Schritt 1009c startet die drahtlose Kommunikationsvorrichtung neu. Schritt 1009d lädt in Antwort auf den Neustart die aktualisierte Codeabschnitt-Adresstabelle und die aktualisierte Symboloffset-Adresstabelle in den flüchtigen Speicher. Schritt 1010 führt die aktualisierte Systemsoftware in Antwort auf das Laden der aktualisierten Codeabschnitt-Adresstabelle und der aktualisierten Symboloffset-Adresstabelle in den Speicher aus.
  • 11 ist ein Flussdiagramm, das einen alternativen Aspekt des Verfahrens der 10a bis 10b darstellt. 11 teilt einige Schritte mit den 10a und 10b, welche hier um der Kürze willen nicht wiederholt werden. Das Empfangen eines neuen Codeabschnitts in Schritt 1104 weist das Empfangen eines Kompaktierungs-Befehlssatzes auf, der Codeabschnitt-Größenänderungs-Anweisungen und eine Kompaktierungsliste aufweist. Das Ändern der Größe aktueller Codeabschnitte in Schritt 1106 weist das Ändern der Größe in Antwort auf die Codeabschnitt-Größenänderungs-Anweisungen auf.
  • Schritt 1107 verschiebt Codeabschnitte temporär in einen Dateisystemabschnitt. Dann weist das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten in Schritt 1008, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden, das Speichern der Codeabschnitte aus dem Dateisystemabschnitt in die Speicherblöcke, um eine zusammenhängende Adressierung aufrechtzuerhalten, in Antwort auf die Kompaktierungsliste auf.
  • Das Empfangen eines neuen Codeabschnitts in Schritt 1104 weist das Empfangen eines neuen Codeabschnitts mit einer aktualisierten Codeabschnitt-Adresstabelle und einer aktualisierten Symboloffset-Adresstabelle auf. Dann weist das Ausführen der aktualisierten Systemsoftware in Schritt 1110 das Verwenden der aktualisierten Codeabschnitt-Adresstabelle und der aktualisierten Symboloffset-Adresstabelle nach dem Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten auf. Es wurden ein System und ein Verfahren zum Reorganisieren der Struktur der Systemsoftware in einer drahtlosen Kommunikationsvorrichtung bereitgestellt, um bei dem Vorgang des Aktualisierens der Software zu helfen. Das System kann wegen der Anordnung von Symbolbibliotheken in Codeabschnitten, mit Tabellen, um auf die Startadressen der Codeabschnitte im Speicher und die Offsetadressen von Symbolen in den Symbolbibliotheken zuzugreifen, einfach aktualisiert werden. Obwohl ein paar Beispiele dieser Bibliotheksanordnungen und Querverweistabellen für eine Anzeigefunktion gegeben wurden, ist die vorliegende Erfindung nicht auf genau diese Beispiele begrenzt. Dem Fachmann werden andere Variationen und Ausführungsformen der Erfindung einfallen.

Claims (19)

  1. Verfahren zum Reorganisieren eines neuen Codeabschnitts (450, 452, 474) in zumindest einen aktuellen, in diskreten Blöcken (400, 402, 404, 406, 460) eines nichtflüchtigen Speichers (108) gespeicherten Codeabschnitt (302, 304, 306, 308, 344), das in einer drahtlosen Kommunikationsvorrichtung (104) ausgeführt wird, wobei das Verfahren aufweist: Empfangen eines Software-Updates (102) über ein drahtloses Kommunikationsnetzwerk; Parsen des Software-Updates (102), um einen neuen Codeabschnitt (450, 452, 474) zu erhalten; Ermitteln einer Größe des neuen Codeabschnitts (450, 452, 474); Identifizieren eines Blocks (400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) zum Speichern des neuen Codeabschnitts (450, 452, 474), wobei der Block (400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) eine erste Startadresse (318, 320, 322, 324, 408, 410, 412, 414) aufweist, wobei der Schritt des Identifizierens ferner das Zuweisen, auf der Basis dieses Blocks, eines neuen Blocks (400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) aufweist, wobei der Schritt des Zuweisens ferner aufweist: Identifizieren eines oder mehrerer aktueller Codeabschnitte (302, 304, 306, 308, 344), die eine Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) und einen ungenutzten Abschnitt (340, 346) aufweisen, wobei der aktuelle Codeabschnitt (302, 304, 306, 308, 344) an einer zweiten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) eines zweiten Blocks (400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) beginnt und der ungenutzte Abschnitt (340, 346) an der Endadresse des zweiten Blocks (400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) endet; Ermitteln einer dritten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) für den ungenutzten Abschnitt (340, 346), wobei das Ermitteln der dritten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) das Lesen eines Symbols aus der Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) und, unter Verwendung des Symbols, das Ermitteln einer zweiten Endadresse für die Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) des aktuellen Codeabschnitts (302, 304, 306, 308, 344) aufweist; und Zuweisen eines bestimmten Abschnitts des nichtflüchtigen Speichers (108) zwischen der dritten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) für den ungenutzten Abschnitt (340, 346) und der Endadresse des zweiten Speicherblocks zu dem neuen Speicherblock (400, 402, 404, 406, 460); Schreiben des neuen Codeabschnitts (450, 452, 474) in den neuen Speicherblock (400, 402, 404, 406, 460), wobei der neue Codeabschnitt (450, 452, 474) an der ersten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) des neuen Speicherblocks beginnt; und Aktualisieren einer Codeabschnitt-Adresstabelle (326), um einen Eintrag hinzuzufügen, der einen Bezeichner für den neuen Codeabschnitt (450, 452, 474) und die erste Startadresse (318, 320, 322, 324, 408, 410, 412, 414) aufweist, wobei der Bezeichner und die erste Startadresse (318, 320, 322, 324, 408, 410, 412, 414) in Beziehung stehen.
  2. Verfahren von Anspruch 1, wobei der neue Codeabschnitt (450, 452, 474) eine Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) aufweist.
  3. Verfahren von Anspruch 1, wobei der Schritt des Ermittelns der Größe des neuen Codeabschnitts (450, 452, 474) ferner das Dekomprimieren des neuen Codeabschnitts (450, 452, 474) aufweist.
  4. Verfahren von Anspruch 1, wobei das Symbol die Endadresse für die Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) des aktuellen Codeabschnitts (302, 304, 306, 308, 344) aufweist.
  5. Verfahren von Anspruch 1, wobei das Symbol eine Größe der Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) des aktuellen Codeabschnitts (302, 304, 306, 308, 344) aufweist.
  6. Verfahren von Anspruch 1, wobei der Schritt des Schreibens ferner das Ersetzen eines aktuellen Codeabschnitts (302, 304, 306, 308, 344) durch den neuen Codeabschnitt (450, 452, 474) aufweist.
  7. Verfahren von Anspruch 1, das ferner die Schritte aufweist des Erhaltens der jeweiligen Größen der einen oder der mehreren Symbolbibliotheken (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) und des einen oder der mehreren aktuellen Codeabschnitte (302, 304, 306, 308, 344); des Erzeugens einer Kompaktierungsliste, die eine Reihenfolge des Relozierens der Mehrzahl verwendeter Abschnitte in aneinandergrenzende Blöcke (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) enthält; und des Ausführens der Kompaktierungsliste, um den einen oder die mehreren verwendeten Abschnitte in aneinandergrenzende Blöcke (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) zu relozieren und den einen oder die mehreren ungenutzten Abschnitte (340, 346) zu einem zusammenhängenden ungenutzten Abschnitt zusammenzufassen.
  8. Verfahren von Anspruch 7, wobei der Schritt des Ausführens ferner aufweist: Kopieren einer Mehrzahl verwendeter Abschnitte von einer entsprechenden Mehrzahl aktueller Codeabschnitte (302, 304, 306, 308, 344) in einen Dateisystemabschnitt (110) des nichtflüchtigen Speichers (108); Zuweisen einer Mehrzahl aneinandergrenzender Speicherblöcke (340, 346, 400, 402, 404, 406, 460) in dem nichtflüchtigen Speicher (108) entsprechend der Mehrzahl der verwendeten Abschnitte, wobei die Größe jedes zugewiesenen Speicherblocks (340, 346, 400, 402, 404, 406, 460) in der Mehrzahl aneinandergrenzender Speicherblöcke (340, 346, 400, 402, 404, 406, 460) im Wesentlichen gleich der Größe des entsprechenden verwendeten Abschnitts ist; und Schreiben der Mehrzahl aktueller Codeabschnitte (302, 304, 306, 308, 344) in die Mehrzahl aneinandergrenzender Speicherblöcke (340, 346, 400, 402, 404, 406, 460) in dem nichtflüchtigen Speicher (108).
  9. Verfahren von Anspruch 1, das ferner das Aktualisieren. der Codeabschnitt-Adresstabelle (326) aufweist, um eine neue Startadresse (318, 320, 322, 324, 408, 410, 412, 414) für eine entsprechende Mehrzahl relozierter aktueller Codeabschnitte (302, 304, 306, 308, 344) widerzuspiegeln.
  10. Verfahren von Anspruch 9, ferner aufweisend: Aussetzen des Betriebs der drahtlosen Kommunikationsvorrichtung (104) vor dem Ausführen der Kompaktierungsliste; und Neustarten der drahtlosen Kommunikationsvorrichtung (104) nach dem Aktualisieren der Codeabschnitt-Adresstabelle (326).
  11. System zum Reorganisieren eines neuen Codeabschnitts (450, 452, 474) in zumindest einen aktuellen Codeabschnitt (302, 304, 306, 308, 344) in einer drahtlosen Kommunikationsvorrichtung (104), aufweisend: einen nichtflüchtigen Speicher (108), der eine Mehrzahl von angrenzend adressierten Speicherblöcken (400, 402, 404, 406, 460) aufweist, wobei jeder Speicherblock (400, 402, 404, 406, 460) eine Startadresse (318, 320, 322, 324, 408, 410, 412, 414) und eine Endadresse aufweist; eine Mehrzahl von aktuellen Codeabschnitten (302, 304, 306, 308, 344), die in den Speicherblöcken (400, 402, 404, 406, 460) angeordnet sind, wobei jeder Codeabschnitt an der Startadresse (318, 320, 322, 324, 408, 410, 412, 414) beginnt und an der Endadresse des Speicherblocks (400, 402, 404, 406, 460) endet, mit welchem der Codeabschnitt verbunden ist; eine Mehrzahl von Symbolbibliotheken (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342), die in den aktuellen Codeabschnitten (302, 304, 306, 308, 344) angeordnet sind, wobei in jedem Codeabschnitt (302, 304, 306, 308, 344) eine oder mehrere Symbolbibliotheken (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) gespeichert sind; eine Luftverbindungsschnittstelle (150), die konfiguriert ist, ein Software-Update (102) über ein drahtloses Kommunikationsnetzwerk zu empfangen; und einen Codeabschnitts-Kompaktierer (342), der konfiguriert ist, einen ersten Block (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) zum Speichern des neuen Codeabschnitts (450, 452, 474) in dem ersten Block (340, 346, 400, 402, 404, 406, 460) zu identifizieren, wobei das Identifizieren das Zuweisen eines neuen Blocks (400, 402, 404, 406, 460) auf der Basis dieses Blocks des nichtflüchtigen Speichers (108) aufweist, wobei das Zuweisen ferner aufweist: Identifizieren eines oder mehrerer aktueller Codeabschnitte (302, 304, 306, 308, 344), die eine Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) und einen ungenutzten Abschnitt (340, 346) aufweisen, wobei der aktuelle Codeabschnitt (302, 304, 306, 308, 344) an einer ersten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) eines zweiten Blocks (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) beginnt und der ungenutzte Abschnitt (340, 346) an der Endadresse des zweiten Blocks (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) endet; Ermitteln einer zweiten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) des ungenutzten Abschnitts (340, 346), wobei das Ermitteln der zweiten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) das Lesen eines Symbols aus der Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) und, unter Verwendung des Symbols, das Ermitteln einer zweiten Endadresse für die Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) des aktuellen Codeabschnitts (302, 304, 306, 308, 344) aufweist; und Zuweisen eines bestimmten Abschnitts des nichtflüchtigen Speichers (108) zwischen der zweiten Startadresse (318, 320, 322, 324, 408, 410, 412, 414) für den ungenutzten Abschnitt (340, 346) und der Endadresse des zweiten Speicherblocks zu dem neuen Speicherblock (400, 402, 404, 406, 460); Schreiben des neuen Codeabschnitts (450, 452, 474) in den neuen Speicherblock (400, 402, 404, 406, 460), wobei der neue Codeabschnitt (450, 452, 474) an der Startadresse (318, 320, 322, 324, 408, 410, 412, 414) des neuen Speicherblocks beginnt; und Aktualisieren einer Codeabschnitt-Adresstabelle (326), um einen Eintrag hinzuzufügen, der einen Bezeichner für den neuen Codeabschnitt (450, 452, 474) und die Startadresse (318, 320, 322, 324, 408, 410, 412, 414) des neuen Speicherblocks aufweist, wobei der Bezeichner und die erste Startadresse (318, 320, 322, 324, 408, 410, 412, 414) in Beziehung stehen.
  12. System von Anspruch 11, wobei das Software-Update (102) einen neuen Codeabschnitt (450, 452, 474) und einen Befehlssatz aufweist.
  13. System von Anspruch 12, wobei der neue Codeabschnitt eine Symbolbibliothek (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) aufweist.
  14. System von Anspruch 11, das ferner eine Codeabschnitt-Adresstabelle (326) aufweist, die eine Mehrzahl von Codeabschnitt-Bezeichnern und ihre entsprechenden Startadressen (318, 320, 322, 324, 408, 410, 412, 414) in dem nichtflüchtigen Speicher (108) aufweist, wobei der Codeabschnitts-Kompaktierer (342) konfiguriert ist, die Codeabschnitt-Adresstabelle (326) zu aktualisieren.
  15. System von Anspruch 14, das ferner eine Symboloffset-Adresstabelle (328) aufweist, die eine Mehrzahl von Codesymbol-Bezeichnern und ihre entsprechenden Codeabschnitt-Bezeichner und Speicher-Offsetadressen aufweist, wobei der Codeabschnitts-Kompaktierer (342) konfiguriert ist, die Symboloffset-Adresstabelle (328) zu aktualisieren.
  16. System von Anspruch 11, das ferner einen Dateisystemabschnitt (110) aufweist, der konfiguriert ist, temporär aktuelle Codeabschnitte (302, 304, 306, 308, 344) zu speichern und wobei der Kompaktierer (342) ferner konfiguriert ist, einen aktuellen Codeabschnitt (302, 304, 306, 308, 344) in dem nichtflüchtigen Speicher (108) zu relozieren, um einen zusammenhängenden ungenutzten Abschnitt des nichtflüchtigen Speichers (108) zu erzeugen, einen neuen Speicherblock (340, 346, 400, 402, 404, 406, 460) in dem zusammenhängenden ungenutzten Abschnitt zuzuweisen und den neuen Codeabschnitt (450, 452, 474) in den neuen Speicherblock (340, 346, 400, 402, 404, 406, 460) zu schreiben.
  17. System von Anspruch 16, wobei der Kompaktierer (342) ferner konfiguriert ist, die Codeabschnitt-Adresstabelle (326) mit einer neuen Startadresse (318, 320, 322, 324, 408, 410, 412, 414) für den relozierten aktuellen Codeabschnitt (302, 304, 306, 308, 344) zu aktualisieren.
  18. System von Anspruch 17, wobei der Kompaktierer (342) ferner konfiguriert ist, den Betrieb der drahtlosen Kommunikationsvorrichtung (104) vor dem Relozieren eines aktuellen Codeabschnitts (302, 304, 306, 308, 344) auszusetzen und die drahtlose Kommunikationsvorrichtung (104) nach dem Aktualisieren der Codeabschnitt-Adresstabelle (326) neu zu starten.
  19. System von Anspruch 11, wobei der erste Block (340, 346, 400, 402, 404, 406, 460) des nichtflüchtigen Speichers (108) einen ersten aktuellen Codeabschnitt (302, 304, 306, 308, 344) aufweist und der Kompaktierer (342) ferner konfiguriert ist, den ersten aktuellen Codeabschnitt (302, 304, 306, 308, 344) durch den neuen Codeabschnitt (450, 452, 474) zu ersetzen.
DE60224281T 2001-07-26 2002-07-23 System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes Expired - Lifetime DE60224281T2 (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
US09/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
US09/916,900 US7027806B2 (en) 2001-07-26 2001-07-26 System and method for field downloading a wireless communications device software code section
US916460 2001-07-26
US917026 2001-07-26
US916900 2001-07-26
US927131 2001-08-10
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
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
US969305 2001-10-02
PCT/IB2002/002889 WO2003012639A2 (en) 2001-07-26 2002-07-23 System and method for compacting field upgradeable wireless communication device software code sections

Publications (2)

Publication Number Publication Date
DE60224281D1 DE60224281D1 (de) 2008-02-07
DE60224281T2 true DE60224281T2 (de) 2008-12-18

Family

ID=33163011

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60225293T Expired - Lifetime DE60225293T2 (de) 2001-07-26 2002-07-22 System und verfahren zum organisieren der software eines im feld aktualisierbaren drahtlosen kommunikationsgerätes
DE60239363T Expired - Lifetime DE60239363D1 (de) 2001-07-26 2002-07-23 System und Verfahren zum Aktualisieren von persistenten Daten in einem drahtlosen Kommunikationsgerät
DE60224281T Expired - Lifetime DE60224281T2 (de) 2001-07-26 2002-07-23 System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE60225293T Expired - Lifetime DE60225293T2 (de) 2001-07-26 2002-07-22 System und verfahren zum organisieren der software eines im feld aktualisierbaren drahtlosen kommunikationsgerätes
DE60239363T Expired - Lifetime DE60239363D1 (de) 2001-07-26 2002-07-23 System und Verfahren zum Aktualisieren von persistenten Daten in einem drahtlosen Kommunikationsgerät

Country Status (5)

Country Link
US (3) US7143407B2 (de)
EP (1) EP1973035B1 (de)
JP (3) JP4728359B2 (de)
AU (1) AU2001297781A1 (de)
DE (3) DE60225293T2 (de)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409685B2 (en) * 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US7082549B2 (en) * 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
US7401320B2 (en) * 2000-11-17 2008-07-15 Hewlett-Packard Development Company, L.P. Operator network that routes customer care calls based on subscriber/device profile and CSR skill set
US7725889B2 (en) 2003-01-13 2010-05-25 Hewlett-Packard Development Company, L.P. Mobile handset capable of updating its update agent
US8479189B2 (en) * 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
US20030182414A1 (en) 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
JP2002259869A (ja) * 2001-03-01 2002-09-13 Fujitsu Ltd 携帯機器制御方法、icカード不正使用防止方法、携帯機器の設定を変更するプログラム及びicカード不正使用防止のためのプログラム
US7734285B2 (en) * 2001-04-03 2010-06-08 Qualcomm Incorporated Method and apparatus for network initiated uninstallation of application program over wireless network
US7194503B2 (en) * 2001-06-29 2007-03-20 Microsoft Corporation System and method to query settings on a mobile device
US7386846B2 (en) * 2001-07-26 2008-06-10 Kyocera Wireless Corp. System and method for the management of wireless communications device system software downloads in the field
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
US7536181B2 (en) * 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) Platform system for mobile terminals
US7363033B2 (en) * 2002-02-15 2008-04-22 Telefonaktiebolaget Lm Ericsson (Publ) Method of and system for testing equipment during manufacturing
US7415270B2 (en) * 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
SE520932C2 (sv) * 2002-03-18 2003-09-16 Optillion Ab Kommunikationsmodul
US20040194081A1 (en) * 2002-03-23 2004-09-30 Iyad Qumei Update system for facilitating firmware/software update in a mobile handset
US7369851B2 (en) * 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
US7367027B1 (en) 2002-08-22 2008-04-29 Hewlett-Packard Development Company, L.P. System for generating efficient and compact update packages
US7340736B2 (en) * 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US7472380B1 (en) 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US7461372B2 (en) * 2002-10-11 2008-12-02 Hewlett-Packard Development Company, L.P. System for optimizing distribution of information employing a universal dictionary
AU2003284292A1 (en) * 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
CA2502917A1 (en) * 2002-10-22 2004-05-06 Siemens Aktiengesellschaft Method for checking the quality of data transmission between a read/write device (slg) and at least one mobile data memory (mds) and read/write device (slg) and mobile data memory(mds) for using the method
US20040093592A1 (en) 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US7844734B2 (en) * 2002-11-18 2010-11-30 Innopath Software, Inc. Dynamic addressing (DA) using a centralized DA manager
US7096463B2 (en) * 2002-11-20 2006-08-22 Hewlett-Packard Development Company, Lp. System and apparatus for dynamically upgrading concentrated executable computer software code
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
US7434216B1 (en) 2002-11-25 2008-10-07 Hewlett-Packard Development Company, L.P. Update package generator that employs genetic evolution to determine bank order
WO2004061615A2 (en) * 2002-12-31 2004-07-22 Bitfone Corporation Management of service components installed in an electronic device in a mobile services network
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7890427B1 (en) 2003-01-09 2011-02-15 Hewlett-Packard Development Company, L.P. Authentication of notifications received in an electronic device in a mobile services network
WO2004066091A2 (en) * 2003-01-21 2004-08-05 Bitfone Corporation Update system capable of updating software across multiple flash chips
US6941453B2 (en) * 2003-02-11 2005-09-06 Bitfone Corporation System and method for determining if a device needs to be updated and locating and invoking an update agent to update the firmware or software in the device
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7689981B1 (en) 2003-02-28 2010-03-30 Hewlett-Packard Development Company, L.P. Mobile handset with efficient interruption point detection during a multiple-pass update process
US7881745B1 (en) 2003-03-10 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device network employing provisioning techniques to update firmware and/or software in electronic devices
US7356727B1 (en) 2003-03-10 2008-04-08 Hewlett-Packard Development Company, L.P. Electronic device employing efficient fault tolerance
US7548986B1 (en) 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
WO2004086196A2 (en) * 2003-03-24 2004-10-07 Bitfone Corporation Electronic device supporting multiple update agents
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7747994B1 (en) 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
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
US7584466B1 (en) 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
US8572597B2 (en) * 2003-06-20 2013-10-29 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
WO2005001665A2 (en) * 2003-06-27 2005-01-06 Bitfone Corporation System and method for downloading update packages into a mobile handset in a carrier network
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
EP1652100A4 (de) * 2003-07-09 2009-12-16 Hewlett Packard Development Co Trägernetzwerk mit der fähigkeit zur durchführung einer ferndiagnose in einem mobilen handapparat
US7366125B1 (en) 2003-07-24 2008-04-29 Bbn Technologies Corp. Extensible satellite communication system
EP1652075B1 (de) * 2003-07-29 2018-10-31 Qualcomm Incorporated Mobiler handapparat mit in hardware implementiertem aktualisierungs-agent
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
CN1275480C (zh) * 2003-07-31 2006-09-13 上海贝尔阿尔卡特股份有限公司 一种多标准软件无线电(sdr)基带处理方法
KR101003888B1 (ko) * 2003-09-03 2010-12-30 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 전자 장치에서의 3-단계 부팅 프로세스
US8694620B2 (en) * 2003-09-08 2014-04-08 Microsoft Corporation System and method for an OMA DM extension to manage mobile device configuration settings
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7668612B1 (en) 2003-09-18 2010-02-23 Hewlett-Packard Development Company, L.P. System and method for efficient manufacture and update of electronic devices
WO2005031570A1 (en) 2003-09-26 2005-04-07 Bitfone Corporation Update package catalog for update package transfer between generator and content server in a network
KR101085987B1 (ko) * 2003-10-03 2011-11-22 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 모바일 장치들의 등록 및 모바일 장치들의 관리를 위한네트워크 및 방법
US7716276B1 (en) 2003-11-17 2010-05-11 Hewlett-Packard Development Company, L.P. Network that supports user-initiated device management
US20050125412A1 (en) * 2003-12-09 2005-06-09 Nec Laboratories America, Inc. Web crawling
US7797693B1 (en) 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US9323515B1 (en) 2004-01-16 2016-04-26 Qualcomm Incorporated Network with broker for device management
US8838754B1 (en) 2004-01-26 2014-09-16 Qualcomm Incorporated Mobile device with a management forest in a device management network
US7984485B1 (en) 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
US7551912B2 (en) * 2004-02-12 2009-06-23 Hewlett-Packard Development Company, L.P. Device management network that facilitates selective billing
US20050289214A1 (en) * 2004-03-04 2005-12-29 Interdigital Technology Corporation Mobility enabled system architecture software architecture and application programing interface
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7689982B1 (en) 2004-05-07 2010-03-30 Hewlett-Packard Development Company, L.P. Transparent linker profiler tool with profile database
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
GB2414138B (en) * 2004-05-12 2006-11-22 Nec Technologies Software update apparatus and method
US7657886B1 (en) 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US7609650B2 (en) * 2004-07-08 2009-10-27 Carrier Iq, Inc. Collection of data at target wireless devices using data collection profiles
US7551922B2 (en) * 2004-07-08 2009-06-23 Carrier Iq, Inc. Rule based data collection and management in a wireless communications network
US20060023642A1 (en) * 2004-07-08 2006-02-02 Steve Roskowski Data collection associated with components and services of a wireless communication network
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US20060175271A1 (en) * 2005-01-31 2006-08-10 Emrey David A Apparatus and method of holding a golf score card and writing instrument, and golf bag and system incorporating the same
US8010100B2 (en) * 2005-03-15 2011-08-30 Mformation Technologies, Inc. System and method for monitoring and measuring end-to-end performance using wireless devices
US8074208B2 (en) * 2005-04-18 2011-12-06 Research In Motion Limited System and method for generating safe and efficient component relationships in wireless applications
US7861225B2 (en) * 2005-05-31 2010-12-28 Qualcomm Incorporated System and method to combine debugging messages from diverse applications or operating systems executed within a mobile device
US7729326B2 (en) * 2005-05-31 2010-06-01 Symbol Technologies, Inc. Wireless network system with wireless access ports
CA2578602C (en) * 2005-07-05 2012-04-10 Carrier Iq, Inc. Rule based data collection and management in a wireless communications network
US8009605B1 (en) * 2005-08-08 2011-08-30 Rockwell Collins, Inc. Low power, programmable modem for software defined radio applications
US20070132774A1 (en) * 2005-12-01 2007-06-14 Samsung Electronics Co., Ltd. System and method for a patch minimization tool
US8948012B2 (en) * 2005-12-29 2015-02-03 Nokia Corporation System and method for interactive session provision
EP2025095A2 (de) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Geräteverwaltung in einem netzwerk
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US20080079539A1 (en) * 2006-08-15 2008-04-03 Daley Robert C Friends Finder Service for a Mobile Device in a Network
US8170540B2 (en) * 2006-09-07 2012-05-01 Qualcomm Incorporated System and methods for remotely upgrading software applications
US8209669B2 (en) * 2007-04-20 2012-06-26 Sap Ag System and method for supporting software
US8161474B2 (en) * 2007-12-14 2012-04-17 Sharp Laboratories Of America, Inc. Diagnostic information preservation during installations of over the air update of wireless handset software
US8234633B2 (en) * 2008-01-09 2012-07-31 Sap Ag Incident simulation support environment and business objects associated with the incident
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8476686B2 (en) 2008-07-09 2013-07-02 Infineon Technologies Ag Memory device and method for making same
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
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
JP2012133690A (ja) 2010-12-24 2012-07-12 Yokogawa Electric Corp 無線フィールド機器、機器管理システム、及び機器管理方法
CN102508657B (zh) * 2011-10-18 2014-10-08 北京空间飞行器总体设计部 一种航天器嵌入式软件模块维护方法
CN102520977B (zh) * 2011-11-22 2014-11-19 北京空间飞行器总体设计部 一种航天器嵌入式运行程序加快上行方法
US20140274181A1 (en) * 2013-03-15 2014-09-18 Rosemount Inc. Resource optimization in a field device
US9395970B2 (en) * 2014-09-30 2016-07-19 Sony Interactive Entertainment America Llc Method and apparatus for providing a time period for starting an application
EP3024260A1 (de) * 2014-11-21 2016-05-25 Gemalto M2M GmbH Verfahren zum Betrieb einer Drahtlos-Kommunikationseinheit
US10567302B2 (en) * 2016-06-01 2020-02-18 At&T Intellectual Property I, L.P. Enterprise business mobile dashboard
US10831641B2 (en) 2016-09-08 2020-11-10 At&T Intellectual Property I, L.P. Method and apparatus for determining a performance impact by a software upgrade of a mobile user endpoint device
US11206527B2 (en) * 2016-12-13 2021-12-21 Deutsche Telekom Ag Method for provisioning enhanced communication capabilities to user equipment
US10795659B1 (en) * 2017-11-02 2020-10-06 Virtuozzo International Gmbh System and method for live patching processes in user space
CN111542037B (zh) * 2020-05-11 2023-07-21 深圳康盈半导体科技有限公司 指令传输方法、装置及存储介质
CN111641610B (zh) * 2020-05-19 2023-04-07 深信服科技股份有限公司 远程响应和远程控制方法、装置、设备及存储介质
TWI786543B (zh) * 2021-02-17 2022-12-11 韋僑科技股份有限公司 無線通訊模組及其應用裝置控制系統與應用裝置控制方法

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852047A (en) * 1987-04-14 1989-07-25 Universal Automation Inc. Continuous flow chart, improved data format and debugging system for programming and operation of machines
GB8901932D0 (en) 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
US5046082A (en) * 1990-05-02 1991-09-03 Gte Mobile Communications Service Corporation Remote accessing system for cellular telephones
FR2662891A1 (fr) 1990-05-30 1991-12-06 Cit Alcatel Dispositif de telechargement de logiciel pour un terminal de telecommunication.
EP0532643B1 (de) * 1990-06-04 1998-12-23 3Com Corporation Verfahren zur software-optimierung für irgendeine einer vielfältigkeit von ändernden architekturen
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
US5337255A (en) * 1991-10-30 1994-08-09 Xilinx, Inc. Method for implementing set/reset synchronously or asynchronously in a programmable logic device
JPH05327582A (ja) * 1992-05-19 1993-12-10 Fujitsu Ltd 携帯電話機のプログラムメモリ書き替え方式
CA2101716A1 (en) * 1992-10-29 1994-04-30 Philip S. Kasten Debugging/modifying of software systems
JPH07182178A (ja) * 1993-02-19 1995-07-21 Nec Corp プリロードモジュール修正システム
US5867712A (en) * 1993-04-05 1999-02-02 Shaw; Venson M. Single chip integrated circuit system architecture for document instruction set computing
US5507009A (en) * 1993-08-13 1996-04-09 Motorola, Inc. Method for reprogramming a communication unit's access to a wireless communication system
US5481706A (en) * 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
BR9506894B1 (pt) * 1994-02-24 2010-08-10 método de operação de um sistema de telecomunicações celular, método de ativação de uma estação móvel celular e estação móvel em um sistema de telecomunicações rádio-celular.
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修正可能なマイクロコンピュータ
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
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
JP3242278B2 (ja) * 1995-03-24 2001-12-25 東芝テック株式会社 画像処理装置
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
US5835749A (en) * 1995-05-05 1998-11-10 Apple Computer, Inc. Method and apparatus for providing dynamically linked libraries
US5790856A (en) * 1995-05-08 1998-08-04 Apple Computer, Inc. Methods, apparatus, and data structures for data driven computer patches and static analysis of same
GB2301747A (en) * 1995-06-02 1996-12-11 Dsc Communications Remotely programmable subscriber terminal in a wireless telecommunications system
GB2301987B (en) * 1995-06-05 2000-01-12 Nokia Mobile Phones Ltd Radio telephone text transmission system
US5832086A (en) 1995-09-27 1998-11-03 Motorola, Inc. Method for updating a communication unit parameter in a wireless communication system
DE19543843C2 (de) 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
US5826005A (en) * 1996-03-22 1998-10-20 Sun Microsystems, Inc. System and method for diagnosing computer program faults through the provision of program probe points and referenceable diagnostic program probes
US5875242A (en) * 1996-07-26 1999-02-23 Glaser; Lawrence F. Telecommunications installation and management system and method
US6643506B1 (en) * 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US6308061B1 (en) * 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
JP2002515999A (ja) 1996-08-28 2002-05-28 ウィンド リヴァー システムズ インコーポレイテッド 複数プロセッサーで分割されるソフトウエア診断のためのツール
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5960356A (en) * 1996-12-06 1999-09-28 Ericsson, Inc. Paging a mobile station within a public land mobile network (PLMN)
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process
US6026400A (en) * 1997-02-19 2000-02-15 Casio Computer Co., Ltd. Information processors which provide advice information, and recording mediums
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
WO1998041044A2 (en) * 1997-03-14 1998-09-17 Northern Telecom Inc. Method and apparatus for network initiated parameter updating
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
US6047071A (en) * 1997-04-15 2000-04-04 Nokia Mobile Phones Network-initiated change of mobile phone parameters
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6018543A (en) * 1997-05-21 2000-01-25 Itt Manufacturing Enterprises, Inc. Noisy channel avoidance method in a digital communication system
JP4062749B2 (ja) * 1997-06-13 2008-03-19 セイコーエプソン株式会社 生体同調度検出装置
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
US6351636B2 (en) * 1997-10-29 2002-02-26 Siemens Information And Communications Networks, Inc. System and method for automatic area code updating
US5950006A (en) * 1997-11-05 1999-09-07 Control Technology Corporation Object-oriented programmable controller
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 日本電気株式会社 無線データ転送方法及びそのシステム
JP3492177B2 (ja) * 1997-12-15 2004-02-03 松下電器産業株式会社 Cdma方式移動体通信機
US6275694B1 (en) * 1997-12-19 2001-08-14 Vlsi Technology, Inc. Method for remotely updating software code for personal handy phone system equipment
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
US6343375B1 (en) * 1998-04-24 2002-01-29 International Business Machines Corporation Method for optimizing array bounds checks in programs
US6237114B1 (en) * 1998-05-13 2001-05-22 Sun Microsystems, Inc. System and method for evaluating monitored computer systems
JP4194172B2 (ja) * 1998-05-18 2008-12-10 キヤノン株式会社 画像表示装置及び機器間通信方法
US6219694B1 (en) * 1998-05-29 2001-04-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device having a shared electronic address
JPH11346186A (ja) * 1998-06-01 1999-12-14 Toyo Commun Equip Co Ltd 移動無線端末
US6460070B1 (en) * 1998-06-03 2002-10-01 International Business Machines Corporation Mobile agents for fault diagnosis and correction in a distributed computer environment
US6272333B1 (en) * 1998-06-12 2001-08-07 Motorola, Inc. Method and apparatus in a wireless communication system for controlling a delivery of data
US6438711B2 (en) * 1998-07-15 2002-08-20 Intel Corporation Method and apparatus for performing field diagnostics on a computer system
US6212632B1 (en) * 1998-07-31 2001-04-03 Flashpoint Technology, Inc. Method and system for efficiently reducing the RAM footprint of software executing on an embedded computer system
JP3837244B2 (ja) * 1998-10-23 2006-10-25 松下電器産業株式会社 プログラムリンク装置及び方法
GB2348987A (en) * 1998-12-11 2000-10-18 Hewlett Packard Co Upgrading firmware from a web site using an applet
US20020073398A1 (en) 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
US7017116B2 (en) * 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
US6449476B1 (en) * 1999-03-12 2002-09-10 Qualcomm Incorporated System and method for independently downloading features into a set of storage locations in a wireless communication device
US6546492B1 (en) * 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
GB2348568A (en) * 1999-03-31 2000-10-04 Ibm Enabling conformance to legislative requirements for mobile devices
US6421683B1 (en) * 1999-03-31 2002-07-16 Verizon Laboratories Inc. Method and product for performing data transfer in a computer system
GB2349485B (en) 1999-04-23 2003-12-10 Ibm Application management
JP2000311143A (ja) * 1999-04-27 2000-11-07 Toshiba Tec Corp 携帯用端末システム及び携帯用端末装置並びにホスト装置
JP2000315154A (ja) * 1999-04-30 2000-11-14 Pentel Corp ハンディターミナル用開発システムの不正利用防止方法
US6611822B1 (en) * 1999-05-05 2003-08-26 Ac Properties B.V. System method and article of manufacture for creating collaborative application sharing
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
KR100316884B1 (ko) * 1999-05-26 2001-12-22 이계안 차체 공장의 동적 부품 투입 지시 시스템
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
US6578142B1 (en) * 1999-06-18 2003-06-10 Phoenix Technologies, Ltd. Method and apparatus for automatically installing and configuring software on a computer
JP2001043087A (ja) * 1999-08-02 2001-02-16 Nippon Telegr & Teleph Corp <Ntt> 無線通信端末のソフトウェア変更方法及び無線通信端末
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
JP2001103568A (ja) * 1999-09-30 2001-04-13 Toshiba Corp 通信システム、この通信システムに用いられる移動体通信装置、携帯型情報処理装置及びデータ通信方法
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
US6754894B1 (en) * 1999-12-03 2004-06-22 Command Audio Corporation Wireless software and configuration parameter modification for mobile electronic devices
DE10003534A1 (de) * 2000-01-27 2001-08-16 Ebbecke Reinhard Einwegbehälter zur Erwärmung und Kühlung von Flüssigkeiten
US7239868B2 (en) * 2000-02-01 2007-07-03 Brother Kogyo Kabushiki Kaisha Electric device capable of being controlled based on data transmitted from cellular phone
WO2001059569A2 (en) * 2000-02-09 2001-08-16 Apriva, Inc. Communication systems, components, and methods with programmable wireless devices
US6493549B1 (en) 2000-02-10 2002-12-10 Lucent Technologies Inc. Over the air parameter administration for mobile telecommunications stations
US6714992B1 (en) * 2000-02-25 2004-03-30 Navic Systems, Inc. Method and system for embedded network device installation
US6622017B1 (en) * 2000-02-25 2003-09-16 Cellco Parntership Over-the-air programming of wireless terminal features
JP4553279B2 (ja) * 2000-03-09 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
AU2001253201A1 (en) * 2000-04-05 2001-10-23 Pavilion Technologies Inc. System and method for enterprise modeling, optimization and control
KR100385925B1 (ko) 2000-05-09 2003-06-02 주식회사 인포핸드 멀티미디어 데이터 처리를 위한 디지털 휴대 전화 단말기 및 멀티미디어 데이터 콘텐츠의 실행 방법과 멀티미디어 데이터 콘텐츠 제공 방법
US6549770B1 (en) * 2000-05-26 2003-04-15 Cellco Partnership Over the air programming and/or service activation
JP2001356925A (ja) * 2000-06-12 2001-12-26 Nec Corp 携帯電話機
JP2002024029A (ja) * 2000-07-11 2002-01-25 Toshiba Corp コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6370455B1 (en) * 2000-09-05 2002-04-09 Hunter Engineering Company Method and apparatus for networked wheel alignment communications and service
AU8879601A (en) * 2000-09-07 2002-03-22 A2Q Inc Method and system for high speed wireless data transmission and reception
AU2001294677A1 (en) * 2000-09-22 2002-04-02 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US7096416B1 (en) * 2000-10-30 2006-08-22 Autovod Methods and apparatuses for synchronizing mixed-media data files
US6804813B1 (en) * 2000-11-03 2004-10-12 Hewlett-Packard Development Company, L.P. System and method for remote and local diagnosis using automatically identified symbol libraries to create record based requests with tag lists of data to be collected from an operating system
US6959192B1 (en) 2000-11-06 2005-10-25 Agere Systems Inc. System and method for updating stored information portable electronic devices based on geographic location
US6731946B1 (en) * 2000-11-22 2004-05-04 Ensemble Communications System and method for timing detector measurements in a wireless communication system
US7039391B2 (en) * 2000-11-28 2006-05-02 Xanboo, Inc. Method and system for communicating with a wireless device
US7092671B2 (en) * 2000-11-30 2006-08-15 3Com Corporation Method and system for wirelessly autodialing a telephone number from a record stored on a personal information device
US7024187B2 (en) * 2000-12-08 2006-04-04 Samsung Electronics Co., Ltd. System and method for performing diagnostics on a mobile station using over-the-air transfer of interpreted byte-code program
US20040229644A1 (en) 2000-12-11 2004-11-18 Anders Heie Method and apparatus for changing phone number information in an electronic phonebook
US20020083143A1 (en) * 2000-12-13 2002-06-27 Philips Electronics North America Corporation UPnP architecture for heterogeneous networks of slave devices
US6807561B2 (en) * 2000-12-21 2004-10-19 Gemplus Generic communication filters for distributed applications
US20020170039A1 (en) 2001-02-22 2002-11-14 Kovacevic Branko D. System for operating system and platform independent digital stream handling and method thereof
US7584241B2 (en) * 2001-03-19 2009-09-01 Microsoft Corporation System and method for communications management and data exchange
US6442660B1 (en) * 2001-03-21 2002-08-27 Sharp Laboratories Of America, Inc. Dynamic system relocation based on availability of system memory
CN1320480C (zh) * 2001-03-23 2007-06-06 艾瑞赞公司 通过无线通信媒体向便携式计算装置传送内容的系统与方法
WO2002079981A1 (en) * 2001-03-30 2002-10-10 Nokia Corporation Downloading application software to a mobile terminal
US6968546B2 (en) * 2001-03-30 2005-11-22 Intel Corporation Debugging support using dynamic re-compilation
US7734285B2 (en) * 2001-04-03 2010-06-08 Qualcomm Incorporated Method and apparatus for network initiated uninstallation of application program over wireless network
US6754895B1 (en) * 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US6587685B2 (en) * 2001-04-27 2003-07-01 Nokia Corporation Apparatus, and an associated method, by which to provide operation parameters to a mobile station
US20040177072A1 (en) * 2001-05-17 2004-09-09 Ilkka Salminen Smart environment
US7065347B1 (en) * 2001-06-27 2006-06-20 Peoplenet Communications Corporation System and method for over the air programming
US7421411B2 (en) 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US6950847B2 (en) * 2001-07-12 2005-09-27 Sun Microsystems, Inc. Service provider system for delivering services in a distributed computing environment
US8214849B2 (en) * 2001-07-13 2012-07-03 Advanced Micro Devices, Inc. System for loading device-specific code and method thereof
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
US7184793B2 (en) * 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
EP1410191A2 (de) * 2001-07-26 2004-04-21 Kyocera Wireless Corporation System und verfahren zur verwaltung der herunterladung im feld von systemsoftware eines drahtlosen kommunikationsgerätes
CN1975751B (zh) * 2001-08-15 2010-05-19 高通股份有限公司 测试启用应用的执行
US7237234B2 (en) * 2001-12-13 2007-06-26 Texas Instruments Incorporated Method for selective solicitation of user assistance in the performance tuning process
US7140007B2 (en) * 2002-01-16 2006-11-21 Xerox Corporation Aspect-oriented programming with multiple semantic levels
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US7221939B2 (en) 2002-08-16 2007-05-22 Nokia Corporation System, method, and apparatus for automatically selecting mobile device profiles
CA2408457A1 (en) * 2002-10-17 2004-04-17 Ibm Canada Limited-Ibm Canada Limitee Collection and detection of differences of values of expressions/variables when debugging a computer process
US20040249657A1 (en) 2003-03-14 2004-12-09 Nir Kol Synergy realization
US7401323B2 (en) * 2003-04-21 2008-07-15 Microsoft Corporation Just-My-Code debugging
US20040240657A1 (en) 2003-05-28 2004-12-02 Camarillo David W. Technique for selecting switched connections for distributing calls through an information assistance provider
US7305666B2 (en) * 2003-07-23 2007-12-04 Microsoft Corporation Description language for an extensible compiler and tools infrastructure
US20040266422A1 (en) 2003-06-30 2004-12-30 Hotze Karen Ann Method for providing call completion following a call to an improper called number in a wireless communications system
US7565141B2 (en) * 2003-10-08 2009-07-21 Macaluso Anthony G Over the air provisioning of mobile device settings
US7287243B2 (en) * 2004-01-06 2007-10-23 Hewlett-Packard Development Company, L.P. Code verification system and method
US7359831B2 (en) * 2004-05-21 2008-04-15 Bea Systems, Inc. Diagnostic context
US7647586B2 (en) * 2004-08-13 2010-01-12 Sun Microsystems, Inc. System and method for providing exceptional flow control in protected code through watchpoints
US7730453B2 (en) * 2005-12-13 2010-06-01 Microsoft Corporation Runtime detection for invalid use of zero-length memory allocations
US7694282B2 (en) * 2006-12-12 2010-04-06 Arkhipov Mikhail E Mapping breakpoints between web based documents

Also Published As

Publication number Publication date
US8032865B2 (en) 2011-10-04
JP2010044775A (ja) 2010-02-25
US7143407B2 (en) 2006-11-28
DE60225293T2 (de) 2009-03-05
DE60239363D1 (de) 2011-04-14
DE60224281D1 (de) 2008-02-07
US20030066064A1 (en) 2003-04-03
DE60225293D1 (de) 2008-04-10
JP4953465B2 (ja) 2012-06-13
US20050010917A9 (en) 2005-01-13
JP4728359B2 (ja) 2011-07-20
AU2001297781A1 (en) 2003-02-17
US20030033599A1 (en) 2003-02-13
EP1973035A1 (de) 2008-09-24
JP2008192158A (ja) 2008-08-21
JP2009054160A (ja) 2009-03-12
US6918108B2 (en) 2005-07-12
EP1973035B1 (de) 2016-04-27
US20050245248A1 (en) 2005-11-03
US20040205746A9 (en) 2004-10-14
JP4953475B2 (ja) 2012-06-13

Similar Documents

Publication Publication Date Title
DE60224281T2 (de) System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes
DE60205755T2 (de) System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen
DE69637195T2 (de) Software aktualisierung in einem mobiltelefon
DE69637182T2 (de) Vorrichtung und verfahren zur vorverarbeitung von computerprogrammen vor netzwerkübertragung
DE60122241T2 (de) Kommunikationssystem und Server zum Verarbeiten und Darbieten von Information
DE69926834T2 (de) Verfahren und Vorrichtung zum Aufrüsten von Software-Teilsystemen auf einem Netzwerksystem
DE19681256C2 (de) Ausführung von Anwendungen am Platz vom Speicher
DE60003457T2 (de) Verfahren und system zur konfiguration von komponenten, ausgebbar in einem netzwerk
DE10315490B4 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE60314748T2 (de) Kommunikationssystem, Mobileinrichtung und Verfahren zur Speicherung von Seiten in einer Mobileinrichtung
DE102009059939A1 (de) Verfahren zum Komprimieren von Bezeichnern
EP1721248B1 (de) Verfahren und datenverarbeitungsgerät zur aktualisierung von rechnerprogrammen per datenübertragung
DE60114470T2 (de) Verfahren und vorrichtung zur reduzierung einer ram-grösse unter beibehaltung eines schnellen datenzugriffs
EP3452946B1 (de) Verfahren zur erstmaligen inbetriebnahme eines nicht vollständig personalisierten sicheren elements
DE69911660T2 (de) Laden von objektorientierten rechnerprogrammen
DE60117600T2 (de) Anordnung und verfahren zum vorprogrammieren des speichers eines elektronischen geräts
EP0918425A2 (de) Softwaregesteuertes Teilnehmerendgerät, Server zum Bereitstellen eines Steuerprogrammes und Verfahren zum Betrieb des Softwaregesteuerten Teilnehmerendgerätes
WO2002037203A2 (de) Verfahren und anordnung zum updaten von software auf einem mobilen prozessorgesteuerten gerät
CN108259575A (zh) 广告播放方法、系统、自助设备及广告服务器
EP1999731B1 (de) Speicherverwaltung von chipkarten
DE102004035498A1 (de) Telekommunikationsdienstprogramm
EP3668132B1 (de) Inkrementelles aktualisieren einer firmware
CN115514806B (zh) 一种离散服务集群的感知发现方法及系统
EP1923790B1 (de) Kompatibilitätsprüfung in einem portablen Datenträger
DE60303710T2 (de) Konfiguration eines Computers in einem Netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1410192

Country of ref document: EP

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

R081 Change of applicant/patentee

Ref document number: 1410192

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: 1410192

Country of ref document: EP

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Effective date: 20120817