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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/24—Arrangements for testing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W8/20—Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2203/00—Aspects of automatic or semi-automatic exchanges
- H04M2203/05—Aspects of automatic or semi-automatic exchanges related to OAM&P
- H04M2203/052—Aspects of automatic or semi-automatic exchanges related to OAM&P software update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42136—Administration or customisation of services
- H04M3/42178—Administration or customisation of services by downloading data to substation equipment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
- Transceivers (AREA)
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 WO 93/00633 - 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 von3 darstellt. -
6 ist eine ausführliche Darstellung der Symbolbibliothek eins von3 mit Symbolen. -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle von3 darstellt. -
8 ist ein schematisches Blockdiagramm, das die Ergebnisse eines beispielhaften Kompaktierungsvorgangs darstellt. - Die
9a bis9e stellen die Funktion einer beispielhaften Kompaktierungsliste dar. - Die
10a bis10b 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 der10a bis10b 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 Softwarewartungssystems100 der drahtlosen Vorrichtung. Die Systemsoftware-Organisation der vorliegenden Erfindung ist im Folgenden im Anschluss an einen allgemeinen Überblick über das Softwarewartungssystem100 ausführlich dargestellt. Das allgemeine System100 beschreibt einen 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-Update102 als ein oder mehrere Codeabschnitte transportiert. Das Software-Update wird zu den auf dem Markt befindlichen drahtlosen Vorrichtungen gesendet, von denen die drahtlose Kommunikationsvorrichtung104 repräsentativ ist, oder wird in separater Kommunikation von einer Basisstation106 unter Verwendung 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 Speichers108 . - Der nichtflüchtige Speicher
108 weist einen Dateisystemabschnitt (FSS)110 und einen Codespeicherabschnitt112 auf. Der Codeabschnitt wird vor dem Transport typischerweise komprimiert, um die Belegung in dem FSS110 zu minimieren. Oft wird der aktualisierte Codeabschnitt von seinen RW-Daten begleitet sein, die eine andere Art von Symbolbibliothek sind, die alle RW-Daten für jede Symbolbibliothek enthält. Obwohl die RW-Daten beim Ausführen der Systemsoftware in einen flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 geladen werden, müssen sie immer in dem nichtflüchtigen Speicher108 gespeichert werden, so dass sie jedes Mal in den flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 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-Speicher114 ausgeführt. Eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle sind virtuelle Tabellen. - Die aktualisierten Codeabschnitte werden durch die drahtlose Vorrichtung
104 empfangen und in dem FSS110 gespeichert. Eine Benutzerschnittstelle (UI) der drahtlosen Vorrichtung gibt dem Benutzer typischerweise bekannt, dass neue Software verfügbar ist. In Antwort auf UI-Eingabeaufforderungen bestätigt der Benutzer die Bekanntgabe und signalisiert den Patch- oder Aktualisierungsvorgang. Alternativ wird der Aktualisierungsvorgang automatisch ausgeführt. Es kann sein, dass die drahtlose Vorrichtung normale Kommunikationsaufgaben nicht ausführen kann, während der Aktualisierungsvorgang ausgeführt wird. Der Patchmanager-Codeabschnitt weist eine nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek auf, die auch in den flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 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 Codespeicherabschnitt112 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-Speicher114 geladen werden. -
2 ist ein schematisches Blockdiagramm des Softwarewartungssystems100 , welches die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt. Zusätzlich zum Aktualisieren von Systemsoftware-Codeabschnitten kann dass Wartungssystem100 Befehlssätze, Programme oder Patchmanager-Befehlssätze (PMIS), die hier als Patchmanager-Laufzeitbefehle (PMRTI) bezeichnet werden, herunterladen und installieren. Der PMRTI-Codeabschnitt200 wird zu der drahtlosen Vorrichtung104 in der gleichen Weise wie die oben beschriebenen Systemsoftware-Codeabschnitte transportiert. PMRTI-Codeabschnitte werden anfangs in dem FSS110 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 Codespeicherabschnitt112 transportiert. Alternativ kann der PMRTI von dem FSS110 aufbewahrt und verarbeitet werden. Nachdem das Mobilteil104 all die Befehle in dem PMRTI-Abschnitt ausgeführt hat, kann der PMRTI-Abschnitt aus dem FSS110 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 Speichers108 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 System100 analysiert den Codespeicherabschnitt, während er gepatcht (aktualisiert) wird. Das System100 versucht, aktualisierte Codeabschnitte in den Speicherplatz einzupassen, der durch den Codeabschnitt belegt wird, der gerade ersetzt wird. Wenn der aktualisierte Codeabschnitt größer ist als der Codeabschnitt, der gerade ersetzt wird, kompaktiert das System100 die Codeabschnitte im Speicher112 . Alternativ kann die Kompaktierung durch den Hersteller oder Dienstanbieter berechnet werden und Kompaktierungsanweisungen können zu der drahtlosen Vorrichtung104 transportiert werden. - Die Kompaktierung kann infolge der Komplexität des Algorithmus und auch des enormen Volumens der Datenbewegung ein zeitaufwendiger Vorgang sein. Der Kompaktierungsalgorithmus sagt die Machbarkeit voraus, bevor er irgendeine Verarbeitung beginnt. UI-Eingabeaufforderungen können verwendet werden, um um Erlaubnis von dem Benutzer nachzusuchen, bevor die Kompaktierung versucht wird.
- In einigen Aspekten der Erfindung können alle Systemsoftware-Codeabschnitte gleichzeitig aktualisiert werden. Ein vollständiges Systemsoftware-Upgrade würde jedoch einen größeren FSS
110 erfordern. -
3 ist ein schematisches Blockdiagramm, das das System der vorliegenden Erfindung zum Reorganisieren von Softwarebefehlen in einer drahtlosen Kommunikationsvorrichtung darstellt. Das System300 weist einen Codespeicherabschnitt112 im Speicher108 einschließlich ausführbarer Systemsoftware der drahtlosen Vorrichtung auf, die in eine Mehrzahl von aktuellen Codeabschnitten aufgeteilt ist. Es sind Codeabschnitt eins (302 ), Codeabschnitt zwei (304 ), Codeabschnitt n (306 ) und ein Patchmanager-Codeabschnitt308 gezeigt. Jedoch ist die Erfindung nicht auf irgendeine bestimmte Anzahl von Codeabschnitten beschränkt. Ferner weist das System300 eine erste Mehrzahl von Symbolbibliotheken auf, die in der zweiten Mehrzahl von Codeabschnitten angeordnet sind. Gezeigt sind die in Codeabschnitt eins (302 ) angeordnete Symbolbibliothek eins (310 ), die in Codeabschnitt zwei (304 ) angeordneten Symbolbibliotheken zwei (312 ) und drei (314 ) und die in Codeabschnitt n (306 ) angeordnete Symbolbibliothek m (316 ). Jede Bibliothek weist Symbole auf, die eine zugehörige Funktionalität haben. Zum Beispiel kann die Symbolbibliothek eins (310 ) den Betrieb des Flüssigkristalldisplays (LCD) der drahtlosen Vorrichtung umfassen. Dann würden die Symbole mit Displayfunktionen in Verbindung stehen. Wie im Folgenden ausführlich erörtert, sind zusätzliche Symbolbibliotheken in dem Patchmanager-Codeabschnitt308 angeordnet. -
4 ist ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung. Wie gezeigt, ist der Speicher der Codespeicherabschnitt112 von1 . Der Speicher ist ein beschreibbarer, nichtflüchtiger Speicher, wie zum Beispiel ein Flash-Speicher. Es versteht sich, dass die Codeabschnitte nicht notwendigerweise in dem gleichen Speicher wie der FSS110 gespeichert sein müssen. Es versteht sich auch, dass die Systemsoftware-Struktur der vorliegenden Erfindung mit Codeabschnitten ermöglicht werden könnte, die in einer Mehrzahl von kooperierenden Speichern gespeichert sind. Der Codespeicherabschnitt112 weist eine zweite Mehrzahl von angrenzend adressierten Speicherblöcken auf, wobei jeder Speicherblock einen zugehörigen Codeabschnitt von der zweiten Mehrzahl von Codeabschnitten speichert. So ist Codeabschnitt eins (302 ) in einem ersten Speicherblock400 , Codeabschnitt zwei (304 ) in dem zweiten Speicherblock402 , Codeabschnitt n (306 ) in dem n-ten Speicherblock404 und der Patchmanager-Codeabschnitt (308 ) in dem p-ten Speicherblock406 gespeichert. - Stellt man die
3 und4 gegenüber, ist der Anfang jedes Codeabschnitts an entsprechenden Startadressen im Speicher gespeichert, und die Symbolbibliotheken sind so angeordnet, dass sie an dem Anfang von Codeabschnitten beginnen. Das heißt, jede Symbolbibliothek beginnt an einer ersten Adresse und durchläuft sequentiell einen Bereich von Adressen von der ersten Adresse an. Zum Beispiel beginnt Codeabschnitt eins (302 ) an der ersten Startadresse408 (markiert mit "S") in dem Codespeicherabschnitt-Speicher112 . In3 beginnt Symbolbibliothek eins (310 ) am Anfang318 des ersten Codeabschnitts. Gleichermaßen beginnt Codeabschnitt zwei (304 ) an einer zweiten Startadresse410 (4 ), und die Symbolbibliothek zwei beginnt am Anfang320 von Codeabschnitt zwei (3 ). Codeabschnitt n (306 ) beginnt an einer dritten Startadresse412 in dem Codespeicherabschnitt-Speicher112 (4 ), und die Symbolbibliothek m (316 ) beginnt am Anfang des Codeabschnitts n322 (3 ). Der Patchmanager-Codeabschnitt beginnt an der p-ten Startadresse414 im Codespeicherabschnitt-Speicher112 , und die erste Symbolbibliothek in dem Patchmanager-Codeabschnitt308 beginnt an dem Anfang324 des Patchmanager-Codeabschnitts. Somit ist die Symbolbibliothek eins (310 ) ultimativ in dem ersten Speicherblock400 gespeichert. Wenn ein Codeabschnitt eine Mehrzahl von Symbolbibliotheken aufweist, wie zum Beispiel Codeabschnitt zwei (304 ), werden die Mehrzahl von Symbolbibliotheken in dem zugehörigen Speicherblock gespeichert, in diesem Fall dem zweiten Speicherblock402 . - In
3 weist die Systemsoftware-Struktur300 ferner eine Codeabschnitt-Adresstabelle326 als einen Symboltyp auf, der in einer Symbolbibliothek enthalten ist, die in dem Patchmanager-Codeabschnitt308 angeordnet ist. Die Codeabschnitt-Adresstabelle stellt Querverweise von Codeabschnitt-Bezeichnern mit den zugehörigen Codeabschnitt-Startadressen im Speicher her. -
5 ist eine Tabelle, die die Codeabschnitt-Adresstabelle326 von3 darstellt. Die Codeabschnitt-Adresstabelle326 wird konsultiert, um die Codeabschnitt-Startadresse für eine Symbolbibliothek zu finden. Zum Beispiel sucht das System300 den Codeabschnitt eins, wenn ein Symbol in der Symbolbibliothek eins zur Ausführung erforderlich ist. Um die Startadresse von Codeabschnitt eins zu finden und folglich das Symbol in der Symbolbibliothek eins zu lokalisieren, wird die Codeabschnitt-Adresstabelle326 konsultiert. Die Anordnung von Symbolbibliotheken in Codeabschnitten und das Aufspüren von Codeabschnitten mit einer Tabelle erlaubt es, dass die Codeabschnitte verschoben oder ausgedehnt werden. Die Ausdehnungs- oder Verschiebungsvorgänge können erforderlich sein, um aktualisierte Codeabschnitte (mit aktualisierten Symbolbibliotheken) zu installieren. - Zurückkehrend zu
3 sollte beachtet werden, dass nicht jede Symbolbibliothek notwendigerweise an dem Anfang eines Codeabschnitts beginnt. Wie gezeigt, ist die Symbolbibliothek drei (314 ) im Codeabschnitt zwei (304 ) angeordnet, aber beginnt nicht an der Codeabschnitt-Startadresse320 . Daher konsultiert das System300 , wenn ein Symbol in der Symbolbibliothek drei (314 ) für die Ausführung erforderlich ist, die Codeabschnitt-Adresstabelle326 für die Startadresse von Codeabschnitt zwei (304 ). Wie im Folgenden erläutert, erlaubt es eine Symboloffset-Adresstabelle, dass die Symbole in der Symbolbibliothek drei (314 ) lokalisiert werden. Es macht nichts, dass die Symbole über mehrere Bibliotheken verteilt sind, solange sie in dem 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 ) von3 mit Symbolen. Die Symbole sind angeordnet, dass sie von den entsprechenden Codeabschnitt-Startadressen versetzt sind. In vielen Fällen ist der Anfang der Symbolbibliothek der Anfang eines Codeabschnitts, aber das stimmt nicht, wenn ein Codeabschnitt mehr als eine Symbolbibliothek enthält. Symbolbibliothek eins (310 ) beginnt am Anfang des Codeabschnitts eins (siehe3 ). Wie in6 gezeigt, ist das "X"-Symbol bei einem Adressabstand von (03) von dem Anfang der Symbolbibliothek lokalisiert, und das "Y"-Symbol ist bei einem Adressabstand von (15) lokalisiert. Die Symboloffset-Adressen sind in einer Symboloffset-Adresstabelle328 in dem Patchmanager-Codeabschnitt gespeichert (siehe3 ). -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle328 von3 darstellt. Die Symboloffset-Adresstabelle328 stellt Querverweise von Symbol-Bezeichnern mit zugehörigen Offset-Adressen und mit zugehörigen Codeabschnitt-Bezeichnern im Speicher her. So wird, wenn das System das "X"-Symbol in der Symbolbibliothek eins ausführen möchte, die Symboloffset-Adresstabelle328 konsultiert, um die exakte Adresse des Symbols in Bezug auf den Codeabschnitt zu lokalisieren, in 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-Daten330 in dem Patchmanager-Codeabschnitt308 angeordnet. Alternativ (nicht gezeigt) können die Lese-Schreib-Daten in einem anderen Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), angeordnet sein. - Die erste Mehrzahl von Symbolbibliotheken weist auch einen Symbol-Zugriffscode auf, der in einem Codeabschnitt angeordnet ist, um die Adresse eines gesuchten Symbols zu berechnen. Der Symbol-Zugriffscode kann an einer Adresse in einem separaten Codeabschnitt, zum Beispiel Codeabschnitt zwei (
304 ), angeordnet und gespeichert sein. Jedoch ist, wie gezeigt, der Symbol-Zugriffscode332 an einer Adresse in dem Patchmanager-Codeabschnitt308 angeordnet und gespeichert. Die Systemsoftware-Struktur300 weist ferner eine erste Speicherstelle zur Speicherung der Symbol-Zugriffscodeadresse auf. Die erste Speicherstelle kann ein Codeabschnitt in dem Codespeicherabschnitt112 oder in einem separaten Speicherabschnitt der drahtlosen Vorrichtung (nicht gezeigt) sein. Die erste Speicherstelle kann auch in dem selben Codeabschnitt wie die Lese-Schreib-Daten angeordnet sein. Wie gezeigt, ist die erste Speicherstelle334 in dem Patchmanager-Codeabschnitt308 mit den Lese-Schreib-Daten330 , der Symboloffset-Adresstabelle328 , der Codeabschnitt-Adresstabelle326 und dem Symbol-Zugriffscode332 und der Patch-Bibliothek (Patch-Symbolbibliothek)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 (siehe6 ). Der Symbol-Zugriffscode wird aufgerufen, um den Codeabschnitt-Bezeichner CS_1 entsprechend dem Codeabschnitt eins zu suchen. Der Symbol-Zugriffscode konsultiert die Codeabschnitt-Adresstabelle, um die Startadresse zu bestimmen, die dem Codeabschnitt-Bezeichner (Codeabschnitt-ID) CS_1 zugeordnet ist. Auf diese Weise bestimmt der Symbol-Zugriffscode, dass der Symbol-Bezeichner X_1 einen Adressabstand von (03) von der Adresse (00100) hat, oder dass er sich an der Adresse (00103) befindet. - Das Symbol "X" ist ein reservierter Name, da er ein Teil des eigentlichen Codes ist. Mit anderen Worten, er hat absolute Daten, die mit ihm verknüpft sind. Die Daten können eine Adresse oder ein Wert sein. Der Symbol-Bezeichner ist ein Alias, der erzeugt wurde, um das Symbol aufzuspüren. Sowohl die Symboloffset-Adresstabelle als auch die Codeabschnitt-Adresstabelle arbeiten mit Bezeichnern, um eine Verwechslung mit reservierten Symbol- und Codeabschnittsnamen zu vermeiden. Es ist auch möglich, 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-Struktur300 ferner einen flüchtigen Lese-Schreib-Speicher114 auf, typischerweise einen Direktzugriffsspeicher (RAM). Die Lese-Schreib-Daten330 , die Codeabschnitt-Adresstabelle326 , die Symboloffset-Adresstabelle328 , der Symbol-Zugriffscode332 und die Symbol-Zugriffscodeadresse334 werden von dem Patchmanager-Codeabschnitt in den flüchtigen Lese-Schreib-Speicher114 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 in3 gezeigt, hat der Codeabschnitt eins (302 ) einen ungenutzten Abschnitt340 , da die Symbolbibliothek eins (310 ) kleiner als 100 Byte ist. Somit kann jeder der zweiten Mehrzahl von Codeabschnitten eine Größe haben, die größer ist als die Größe, die benötigt wird, um die angeordneten Symbolbibliotheken aufzunehmen. Durch "Überdimensionieren" der Codeabschnitte können größere aktualisierte Symbolbibliotheken aufgenommen werden. - 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 System300 eine Patch-Symbolbibliothek auf, welche hier als Patchbibliothek336 bezeichnet wird, um neue Codeabschnitte in dem Codespeicherabschnitt mit den aktuellen Codeabschnitten anzuordnen. Die Anordnung von neuen Codeabschnitten mit aktuellen Codeabschnitten in dem Codespeicherabschnitt bildet eine aktualisierte, ausführbare Systemsoftware. Der Patchmanager336 ordnet nicht nur neue Codeabschnitte mit den aktuellen Codeabschnitten an, er ersetzt auch Codeabschnitte durch aktualisierte Codeabschnitte. - Zurückkehrend zu
4 empfängt der Dateisystemabschnitt110 des Speichers108 neue Codeabschnitte, wie zum Beispiel den neuen Codeabschnitt450 und einen aktualisierten Patchmanager-Codeabschnitt452 . Der Dateisystemabschnitt empfängt auch einen ersten Patchmanger-Laufzeitbefehl (PMRTI)454 einschließlich Anweisungen zum Anordnen der neuen Codeabschnitte mit den aktuellen Codeabschnitten. Wie in1 zu sehen, empfängt eine Luftverbindungsschnittstelle150 neue oder aktualisierte Codeabschnitte sowie den ersten PMRTI. Obwohl die Luftverbindungsschnittstelle150 durch eine Antenne dargestellt ist, versteht es sich, dass die Luftverbindungsschnittstelle auch einen RF-Transceiver, eine Basisband-Schaltung und eine Demodulationsschaltung (nicht gezeigt) umfassen würde. Der Dateisystemabschnitt110 speichert die neuen Codeabschnitte, die über die Luftverbindungsschnittstelle150 empfangen wurden. Die Patchbibliothek336 , die von dem flüchtigen Lese-Schreib-Speicher114 ausgeführt wird, ersetzt einen ersten Codeabschnitt in dem Codespeicherabschnitt, zum Beispiel Codeabschnitt n (306 ), durch den neuen oder aktualisierten Codeabschnitt450 in Antwort auf den ersten PMRTI454 . Typischerweise wird der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt452 ersetzt. - Wenn Codeabschnitte ersetzt werden, überschreibt die Patchbibliothek
336 den ersten Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), in dem Codespeicherabschnitt112 mit dem aktualisierten Codeabschnitt, zum Beispiel Codeabschnitt450 , in dem Datensystemabschnitt110 . Im Extremfall werden alle Codeabschnitte in dem Codespeicherabschnitt112 durch aktualisierte Codeabschnitte ersetzt. Das heißt, der FSS110 empfängt eine zweite Mehrzahl von aktualisierten Codeabschnitten (nicht gezeigt), und die Patchbibliothek336 ersetzt die zweite Mehrzahl von Codeabschnitten in dem Codespeicherabschnitt112 durch die zweite Mehrzahl von aktualisierten Codeabschnitten. Natürlich muss der FSS110 groß genug sein, um die zweite Mehrzahl von aktualisierten Codeabschnitten aufzunehmen, die über die Luftverbindungsschnittstelle empfangen wurden. - Wie oben erwähnt, können die aktualisierten Codeabschnitte, die empfangen werden, Lese-Schreib-Daten-Codeabschnitte, Codeabschnitt-Adresstabelle-Codeabschnitte, Symbolbibliotheken, Symboloffset-Adresstabelle-Codeabschnitte, Symbol-Zugriffscode-Abschnitte oder einen Codeabschnitt mit einer neuen Patchbibliothek aufweisen. Alle diese Codeabschnitte mit ihren zugehörigen Symbolbibliotheken und Symbolen können als eindeutige und unabhängige Codeabschnitte gespeichert werden. Dann würde jeder dieser Codeabschnitte durch einen unikalen aktualisierten Codeabschnitt ersetzt werden. Das heißt, ein aktualisierter Lese-Schreib-Codeabschnitt würde empfangen werden und würde den Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Codeabschnitt-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Codeabschnitt-Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symboloffset-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Symboloffset-Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symbol-Zugriffscode-Abschnitt würde empfangen werden und würde den Symbol-Zugriffscode-Abschnitt in dem Codespeicherabschnitt ersetzen. Gleichermaßen würde ein aktualisierter Patchmanager-Codeabschnitt (mit einer Patchbibliothek) empfangen werden und würde den Patchmanager-Codeabschnitt in dem Codespeicherabschnitt ersetzen.
- Jedoch sind die oben erwähnten Codeabschnitte typischerweise zusammen in dem Patchmanager-Codeabschnitt gebündelt. Daher wird der Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt durch den aktualisierten Lese-Schreib-Codeabschnitt aus dem Dateisystemabschnitt
110 ersetzt, wenn der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt450 ersetzt wird. Gleichermaßen werden die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, die Symbol-Zugriffscode-Abschnitte sowie die Patchbibliothek ersetzt, wenn der aktualisierte Patchmanager-Codeabschnitt450 installiert wird. Die Anordnung der neuen Lese-Schreib-Daten, der neuen Codeabschnitt-Adresstabelle, der neuen Symboloffset-Adresstabelle, des neuen Symbol-Zugriffscodes und der neuen Patchbibliothek als der aktualisierte Patchmanager-Codeabschnitt450 zusammen mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt bildet eine aktualisierte, ausführbare Systemsoftware. - Wenn der Dateisystemabschnitt
110 eine aktualisierte Symbol-Zugriffscodeadresse empfängt, ersetzt der Patchmanager die Symbol-Zugriffscodeadresse an der ersten Stelle im Speicher durch eine aktualisierte Symbol-Zugriffscodeadresse. Wie oben erwähnt, ist die erste Stelle im Speicher334 typischerweise in dem Patchmanager-Codeabschnitt (siehe3 ). - Wie in
3 zu sehen, weist die Patchbibliothek308 auch einen Kompaktierer oder eine Kompaktierer-Symbolbibliothek342 auf. Der Kompaktierer342 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 Kompaktierer342 die Größe von Codeabschnitten ändert, so dass neue Abschnitte mit aktuellen Codeabschnitten in dem Codespeicherabschnitt112 angeordnet werden können. - Stellt man die
3 und4 gegenüber, empfängt der Dateisystemabschnitt110 einen Kompaktierungs-Befehlssatz mit Anweisungen zum Identifizieren eines aktuellen Codeabschnitts zum Aktualisieren über die Luftverbindungsschnittstelle150 (siehe1 ). Beispielsweise kann der Kompaktierungs-Befehlssatz der erste PMRTI454 sein, obwohl die Anweisungen für die Kompaktierung nicht notwendigerweise mit den anderen Aktualisierungsbefehlen gebündelt sein müssen. Der Kompaktierer342 ersetzt den identifizierten aktuellen Codeabschnitt in dem Codespeicherabschnitt durch den neuen Codeabschnitt. Es versteht sich, dass der Kompaktierer342 in Kooperation mit der oben erläuterten Patchbibliothek336 arbeitet. Anders gesagt, der Kompaktierer342 wird aufgefordert, die Patchbibliothek336 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 Dateisystemabschnitt110 einen neuen Codeabschnitt450 , 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-Codeabschnitt452 . Der Kompaktierungs-Befehlssatz454 identifiziert einen aktuellen Codeabschnitt, der eine zweite Größe kleiner als die erste Größe hat, sagen wir Codeabschnitt 2 (304 ). Da der aktualisierte Codeabschnitt450 größer als der Codeabschnitt ist, der ersetzt wird, muss ein Kompaktierungsvorgang ausgeführt werden. Der Kompaktierer342 erhöht die Größe des zweiten, mit dem identifizierten aktuellen Codeabschnitt304 verbundenen Speicherblocks402 auf wenigstens die erste Größe. Der Kompaktierer (in Kooperation mit der Patchbibliothek336 ) ersetzt den identifizierten aktuellen, in dem entsprechenden Speicherblock402 gespeicherten Codeabschnitt304 durch den neuen Codeabschnitt450 . - 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 Kompaktierer342 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 Speicherblock402 benachbarten Codeabschnitten ändern. Wie gezeigt, weisen der Codeabschnitt eins (302 ) und ein Codeabschnitt drei (344 ) ungenutzte Bereiche340 beziehungsweise346 auf. Der Kompaktierer kann wählen, den ersten Speicherblock302 und einen dritten Speicherblock460 in der Größe zu ändern, wobei er von beiden ungenutzte Bereiche340 und346 nimmt, um den zweiten Speicherblock402 groß genug für den neuen Codeabschnitt450 zu machen. -
8 ist ein schematisches Blockdiagramm, das die Ergebnisse des beispielhaften Kompaktierungsvorgangs darstellt. Codeabschnitt 2 wurde durch den größeren neuen (aktualisierten) Codeabschnitt450 ersetzt. Der ungenutzte Abschnitt340 von Codeabschnitt eins (302 ) wurde wie der ungenutzte Bereich346 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 Bereich346 würde verbraucht werden, um den aktualisierten Codeabschnitt450 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-Codeabschnitt308 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 Bereichs340 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 Codespeicherabschnitt112 Symbolbibliotheken mit Endsymbolen auf, um das Ende von Symbolbibliotheken zu kennzeichnen. Beispielsweise ist, vorübergehend zurückkehrend zu6 , das Symbol „Z" ein Ein-Byte-Endsymbol. Das heißt, die Adresse von Symbol „Z" kennzeichnet das Ende von Symbolbibliothek eins. Der Kompaktierer342 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 Kompaktierer342 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 Codeabschnitts450 in dem Dateisystemabschnitt110 und ermittelt zuerst, ob der neue Codeabschnitt mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt112 angeordnet werden kann. Der Kompaktierer342 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 Kompaktierer342 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 Kompaktierer342 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 Dateisystemabschnitt110 empfängt einen Kompaktierungs-Befehlssatz454 , der die Größe des neuen Codeabschnitts450 enthält. Der Kompaktierer342 greift auf den Kompaktierungs-Befehlssatz454 zu, um die Größe des neuen Codeabschnitts450 in dem Dateisystemabschnitt110 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 Codespeicherabschnitt112 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 Codeabschnitts450 (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 bis9e stellen die Wirkungsweise einer beispielhaften Kompaktierungsliste dar. Nachdem der Kompaktierer342 , der von dem flüchtigen Speicher114 aus arbeitet, die Wahrscheinlichkeit einer erfolgreichen Kompaktierung berechnet und die Codeabschnitts-Größen berechnet hat, erzeugt der Kompaktierer342 eine Kompaktierungsliste. Die Kompaktierungsliste enthält die Reihenfolge, in welcher Codeabschnitte verschoben werden, und ihre temporäre Platzierung in dem FSS110 . Der Dateisystemabschnitt110 speichert temporär Codeabschnitte aus dem Codespeicherabschnitt112 , und der Kompaktierer342 speichert in Antwort auf die Kompaktierungsliste die Codeabschnitte aus dem Dateisystemabschnitt110 in die Speicherblöcke des Codespeicherabschnitts112 , um eine zusammenhängende Adressierung aufrechtzuerhalten. - Das oben begonnene Beispiel fortsetzend konsultiert in
9a der Kompaktierer342 den Kompaktierungs-Befehlssatz (erster PMRTI)454 , um den Codeabschnitt, der aktualisiert werden muss, und die Größe des neuen Codeabschnitts450 zu ermitteln. In9b beginnt der Kompaktierer342 nach dem Berechnen der Erfolgswahrscheinlichkeit und der Größe der Codeabschnitte den Vorgang durch Verschieben von Codeabschnitt drei (344 ) von dem dritten Speicherblock460 in den FSS110 . - In
9c wird der neue Codeabschnitt450 von dem FSS110 in den zweiten Speicherblock402 verschoben. Wenn Codeabschnitt eins (302 ) in der Größe geändert wurde, bewirkt der Kompaktierer342 , dass die Startadresse des neuen Codeabschnitts in dem ungenutzten Bereich340 beginnt (siehe3 ). 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 FSS110 zurück in den dritten Speicherblock460 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 Bereich346 verwendet wird. - In
9e wird der Patchmanager (PM)-Codeabschnitt308 durch den neuen (aktualisierten) PM-Codeabschnitt452 ersetzt. Typischerweise weist der Patchmanager die Codeabschnitt-Adresstabelle-Code-Symbolbibliothek auf (siehe3 ). Jedoch ist die aktualisierte Codeabschnitt-Adresstabelle nicht notwendigerweise korrekt, da die Ergebnisse der Kompaktierung nicht notwendigerweise im Voraus bekannt sind. Dann erzeugt der Kompaktierer342 eine aktualisierte Codeabschnitt-Adresstabelle in Antwort auf die Veränderung der Startadressen der innerhalb der Speicherblöcke gespeicherten Codeabschnitte. Der Kompaktierer342 überschreibt die in dem Codespeicherabschnitt112 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-Codeabschnitt452 , mit einer aktualisierten Symboloffset-Adresstabelle, und die aktualisierte Systemsoftware greift auf die aktualisierte Symboloffset-Adresstabelle zu, nachdem der neue Codeabschnitt452 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 Dateisystemabschnitt110 einen Kompaktierungs-Befehlssatz454 , der Codeabschnitt-Größenänderungs-Anweisungen und eine Kompaktierungsliste aufweist. Dann ändert der Kompaktierer342 in Antwort auf die Codeabschnitt-Größenänderungs-Anweisungen Codeabschnitte in der Größe. Wie vorher speichert der Dateisystemabschnitt110 temporär Codeabschnitte aus dem Codespeicherabschnitt112 , und der Kompaktierer342 speichert in Antwort auf die Kompaktierungsliste die Codeabschnitte aus dem Dateisystemabschnitt110 in die Speicherblöcke des Codespeicherabschnitts112 , um eine zusammenhängende Adressierung aufrechtzuerhalten. - Der Dateisystemabschnitt
110 empfängt auch einen neuen Codeabschnitt, zum Beispiel den aktualisierten PM-Codeabschnitt452 , 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 Speicher114 die zum Ausführen der Systemsoftware aus dem Codespeicherabschnitt112 geladenen Codeabschnitte der ersten und der zweiten Tabelle (der Codeabschnitt- Adresstabelle und der Symboloffset-Adresstabelle). Andere kritische Bibliotheken aus dem Patchmanager-Codeabschnitt308 werden auch in den flüchtigen Speicher114 geladen. Nach einem Neustart der drahtlosen Kommunikationsvorrichtung104 werden die neuen Codeabschnitte mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt112 angeordnet, um eine aktualisierte Systemsoftware zu bilden. Beim Neustart werden die aktualisierte Codeabschnitt-Adresstabelle und die aktualisierte Symboloffset-Adresstabelle in den flüchtigen Speicher114 geladen, und die Systemsoftware kann dann mit den aktualisierten Tabellen ausgeführt werden. - Die
10a bis10b 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 Schritt1000 . Schritt1001a 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. Schritt1002 speichert die Systemsoftware der drahtlosen Vorrichtung in einer Mehrzahl von aktuellen Codeabschnitten. Schritt1004 empfängt einen neuen Codeabschnitt. Das Empfangen eines neuen Codeabschnitts in Schritt1004 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. Schritt1008 ordnet den neuen Codeabschnitt mit den aktuellen Codeabschnitten an, um eine aktualisierte Systemsoftware für die drahtlose Vorrichtung zu bilden. Schritt1010 führt die aktualisierte Systemsoftware aus. Typischerweise identifiziert Schritt1005a einen aktuellen Codeabschnitt zum Aktualisieren, und das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten zum Bilden einer aktualisierten Systemsoftware in Schritt1008 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 Schritt1002 weist das Speichern des Anfangs von Codeabschnitten an entsprechenden Startadressen auf. Dann weist das Verfahren einen weiteren Schritt auf. Schritt1003a 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 Schritt1003b 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. Schritt1002b 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 Schritt1002a 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 Schritt1005a weist das Identifizieren eines aktuellen Codeabschnitts mit einer zweiten Größe kleiner als die erste Größe auf. Dann weist in Schritt1006 das Ändern der Größe der Speicherblöcke, in welchen entsprechende, in der Größe geänderte Codeabschnitte gespeichert sind, Unterschritte auf. Schritt1006a (nicht gezeigt) erhöht die Größe eines Speicherblocks, der mit dem identifizierten aktuellen Speicherblock verbunden ist, auf zumindest die erste Größe, und Schritt1006b (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 Schritt1005c 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 Schritt1006 , 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. Schritt1005c 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 Schritt1005c 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 Schritt1001a 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 Schritt1005c das Zugreifen auf die Größensymbole auf, um die Größe der Symbolbibliotheken zu messen. - Schritt
1005d misst die Größe des neuen Codeabschnitts. Schritt1005e ermittelt in Antwort auf das Messen der Größe von innerhalb entsprechender Codeabschnitte angeordneten Symbolbibliotheken in Schritt1005c und das Messen der Größe des neuen Codeabschnitts in Schritt1005d , 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 Schritt1008 , 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. Schritt1007a erzeugt in Antwort auf das Berechnen der Codeabschnitts-Größen eine Kompaktierungsliste. Schritt1007b verschiebt temporär Codeabschnitte in einen Dateisystemabschnitt. Dann weist das Anordnen des neuen Codeabschnitts mit den aktuellen Codeabschnitten in Schritt1008 , 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 Schritt1009a die Codeabschnitts-Startadressen. Schritt1009b 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 Schritt1010 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 Schritt1010 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. Schritt1003d (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. Schritt1009d lädt in Antwort auf den Neustart die aktualisierte Codeabschnitt-Adresstabelle und die aktualisierte Symboloffset-Adresstabelle in den flüchtigen Speicher. Schritt1010 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 der10a bis10b darstellt.11 teilt einige Schritte mit den10a und10b , welche hier um der Kürze willen nicht wiederholt werden. Das Empfangen eines neuen Codeabschnitts in Schritt1104 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 Schritt1106 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 Schritt1008 , 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 Schritt1110 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)
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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 ). - 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. - 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 ). - 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. - System von Anspruch 11, wobei das Software-Update (
102 ) einen neuen Codeabschnitt (450 ,452 ,474 ) und einen Befehlssatz aufweist. - System von Anspruch 12, wobei der neue Codeabschnitt eine Symbolbibliothek (
310 ,312 ,314 ,316 ,326 ,328 ,330 ,332 ,334 ,336 ,342 ) aufweist. - 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. - 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. - 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. - 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. - 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. - 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.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US916460 | 2001-07-26 | ||
US09/917,026 US7328007B2 (en) | 2001-07-26 | 2001-07-26 | System and method for organizing wireless communication device system software |
US09/916,900 US7027806B2 (en) | 2001-07-26 | 2001-07-26 | System and method for field downloading a wireless communications device software code section |
US916900 | 2001-07-26 | ||
US917026 | 2001-07-26 | ||
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/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182414A1 (en) | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | 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 |
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 |
US8479189B2 (en) * | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
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 |
US6832373B2 (en) * | 2000-11-17 | 2004-12-14 | Bitfone Corporation | System and method for updating and distributing information |
US7082549B2 (en) * | 2000-11-17 | 2006-07-25 | Bitfone Corporation | Method for fault tolerant updating of an electronic device |
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 |
US7725889B2 (en) | 2003-01-13 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Mobile handset capable of updating its update agent |
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 |
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 |
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 |
US7367027B1 (en) | 2002-08-22 | 2008-04-29 | Hewlett-Packard Development Company, L.P. | System for generating efficient and compact update packages |
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 |
WO2004038546A2 (en) * | 2002-10-21 | 2004-05-06 | Bitfone Corporation | System with required enhancements to syncml dm environment to support firmware updates |
WO2004038591A2 (de) * | 2002-10-22 | 2004-05-06 | Siemens Aktiengesellschaft | Verfahren zur überprüfung der qualität der datenübertragung zwischen einem schreib-/lese-gerät (slg) und mindestens einem mobilen datenspeicher (mds) sowie schreib-/lese-gerät (slg) und mobiler datenspeicher (mds) zur anwendung des verfahrens |
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 |
US7644406B2 (en) * | 2003-01-21 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Update system capable of updating software across multiple FLASH chips |
WO2004070571A2 (en) * | 2003-02-03 | 2004-08-19 | Bitfone Corporation | Update system for facilitating firmware/software update in a mobile handset |
WO2004072773A2 (en) * | 2003-02-11 | 2004-08-26 | Bitfone Corporation | Electronic device supporting multiple update agents |
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 |
US7356727B1 (en) | 2003-03-10 | 2008-04-08 | Hewlett-Packard Development Company, L.P. | Electronic device employing efficient fault tolerance |
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 |
US7548986B1 (en) | 2003-03-17 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Electronic device network providing streaming updates |
US7657884B2 (en) * | 2003-03-24 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | 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 |
EP1654640B1 (de) | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Netzwerk mit konfiguriebaren generatoren von software-aktualisierungen und mit mobilen elektronischen geräten, die ein konfigurierbares programm zum aktualisieren von software besitzen |
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 |
EP1639435A4 (de) * | 2003-06-27 | 2009-12-30 | Hewlett Packard Development Co | System und verfahren zum herunterladen von aktualisierungspaketen in einen mobilen handapparat in einem trägernetzwerk |
US7343443B1 (en) | 2003-07-08 | 2008-03-11 | Hewlett-Packard Development Company, L.P. | Updated package generation based on analysis of bank dependency |
US20050114504A1 (en) * | 2003-07-09 | 2005-05-26 | Sunil Marolia | Carrier network capable of conducting remote diagnostics in a mobile handset |
US7366125B1 (en) | 2003-07-24 | 2008-04-29 | Bbn Technologies Corp. | Extensible satellite communication system |
US7861211B2 (en) * | 2003-07-29 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Mobile handset with update agent implemented in hardware |
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 |
KR20090035044A (ko) | 2003-09-26 | 2009-04-08 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 | 네트워크에서의 생성자와 콘텐츠 서버 간의 업데이트 패키지 전송을 위한 업데이트 패키지 카탈로그 |
EP1668951B1 (de) * | 2003-10-03 | 2011-12-28 | Hewlett-Packard Development Company, L.P. | Netzwerk und verfahren zur anmeldung mobiler geräte und zur verwaltung der mobilen geräte |
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 |
WO2005091926A2 (en) * | 2004-03-04 | 2005-10-06 | Interdigital Technology Corporation | Mobility enabled system architecture software architecture and application programming 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 |
US7543118B1 (en) | 2004-05-07 | 2009-06-02 | Hewlett-Packard Development Company, L.P. | Multiple variance platform for the management of mobile devices |
US7689982B1 (en) | 2004-05-07 | 2010-03-30 | Hewlett-Packard Development Company, L.P. | Transparent linker profiler tool with profile database |
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 |
US7551922B2 (en) * | 2004-07-08 | 2009-06-23 | Carrier Iq, Inc. | Rule based data collection and management in a wireless communications network |
US7609650B2 (en) * | 2004-07-08 | 2009-10-27 | Carrier Iq, Inc. | Collection of data at target wireless devices using data collection profiles |
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 |
JP2008537859A (ja) * | 2005-03-15 | 2008-09-25 | エムフォーメイション テクノロジーズ インコーポレイテッド | 無線デバイスを使用する端末間動作のモニタリング及び測定システム及び方法 |
CA2543989C (en) * | 2005-04-18 | 2015-02-17 | Research In Motion Limited | System and method for generating safe and efficient component relationships in wireless applications |
US7729326B2 (en) * | 2005-05-31 | 2010-06-01 | Symbol Technologies, Inc. | Wireless network system with wireless access ports |
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 |
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 |
EP2047420A4 (de) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | Benutzererfahrungs- und abhängigkeitsverwaltung bei einer mobilen vorrichtung |
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 |
WO2018108786A1 (en) * | 2016-12-13 | 2018-06-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)
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 |
WO1995023487A1 (en) | 1994-02-24 | 1995-08-31 | Gte Mobile Communications Service Corporation | Cellular radiotelephone system with remotely programmed mobile stations |
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 |
US6308061B1 (en) | 1996-08-07 | 2001-10-23 | Telxon Corporation | Wireless software upgrades with version control |
US6643506B1 (en) * | 1996-08-07 | 2003-11-04 | 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 |
US6195546B1 (en) | 1997-03-14 | 2001-02-27 | Nortel Networks Limited | 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 |
AU3689301A (en) | 2000-02-09 | 2001-08-20 | Apriva Inc | Communication systems, components, and methods operative with programmable wireless devices |
US6493549B1 (en) | 2000-02-10 | 2002-12-10 | Lucent Technologies Inc. | Over the air parameter administration for mobile telecommunications stations |
US6622017B1 (en) * | 2000-02-25 | 2003-09-16 | Cellco Parntership | Over-the-air programming of wireless terminal features |
US6714992B1 (en) | 2000-02-25 | 2004-03-30 | Navic Systems, Inc. | Method and system for embedded network device installation |
JP4553279B2 (ja) | 2000-03-09 | 2010-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法 |
EP1323059A2 (de) * | 2000-04-05 | 2003-07-02 | Pavilion Technologies, Inc. | Vorrichtung und verfahren zur enterprisemodellierung, optimierung und steuerung |
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 |
WO2002021705A2 (en) | 2000-09-07 | 2002-03-14 | A2Q, Inc. | Method and system for high speed wireless data transmission and reception |
WO2002025438A1 (en) | 2000-09-22 | 2002-03-28 | 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 |
EP1379963A4 (de) | 2001-03-19 | 2009-03-11 | Microsoft Corp | System und verfahren für kommunikationsverwaltung und datenaustausch |
US6442660B1 (en) * | 2001-03-21 | 2002-08-27 | Sharp Laboratories Of America, Inc. | Dynamic system relocation based on availability of system memory |
EP1381965B1 (de) | 2001-03-23 | 2018-05-09 | BlackBerry Limited | Systeme und verfahren zur inhaltsablieferung über ein drahtloses kommunikationsmedium an ein tragbares datenverarbeitungsgerät |
US6968546B2 (en) * | 2001-03-30 | 2005-11-22 | Intel Corporation | Debugging support using dynamic re-compilation |
US20040158829A1 (en) | 2001-03-30 | 2004-08-12 | Evgenij Beresin | Downloading application software to a mobile terminal |
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 |
US7184793B2 (en) * | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | System and method for over the air area code update |
ES2300454T3 (es) * | 2001-07-26 | 2008-06-16 | Kyocera Wireless Corp. | Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. |
US7143407B2 (en) * | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
CN101447011B (zh) * | 2001-08-15 | 2012-02-15 | 高通股份有限公司 | 测试启用应用的执行 |
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 |
-
2001
- 2001-08-10 US US09/927,131 patent/US7143407B2/en not_active Expired - Fee Related
- 2001-10-03 US US09/970,188 patent/US6918108B2/en not_active Expired - Lifetime
-
2002
- 2002-07-22 DE DE60225293T patent/DE60225293T2/de not_active Expired - Lifetime
- 2002-07-22 EP EP08157111.9A patent/EP1973035B1/de not_active Expired - Lifetime
- 2002-07-23 DE DE60239363T patent/DE60239363D1/de not_active Expired - Lifetime
- 2002-07-23 DE DE60224281T patent/DE60224281T2/de not_active Expired - Lifetime
- 2002-07-25 AU AU2001297781A patent/AU2001297781A1/en not_active Abandoned
-
2005
- 2005-06-29 US US11/174,090 patent/US8032865B2/en not_active Expired - Fee Related
-
2008
- 2008-02-14 JP JP2008033838A patent/JP4728359B2/ja not_active Expired - Fee Related
- 2008-08-28 JP JP2008220523A patent/JP4953465B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-01 JP JP2009230033A patent/JP4953475B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010044775A (ja) | 2010-02-25 |
US8032865B2 (en) | 2011-10-04 |
US6918108B2 (en) | 2005-07-12 |
DE60224281D1 (de) | 2008-02-07 |
US20050245248A1 (en) | 2005-11-03 |
JP4953465B2 (ja) | 2012-06-13 |
US20040205746A9 (en) | 2004-10-14 |
US20030066064A1 (en) | 2003-04-03 |
US7143407B2 (en) | 2006-11-28 |
EP1973035A1 (de) | 2008-09-24 |
JP4728359B2 (ja) | 2011-07-20 |
JP4953475B2 (ja) | 2012-06-13 |
US20030033599A1 (en) | 2003-02-13 |
US20050010917A9 (en) | 2005-01-13 |
DE60225293T2 (de) | 2009-03-05 |
JP2009054160A (ja) | 2009-03-12 |
JP2008192158A (ja) | 2008-08-21 |
DE60225293D1 (de) | 2008-04-10 |
DE60239363D1 (de) | 2011-04-14 |
AU2001297781A1 (en) | 2003-02-17 |
EP1973035B1 (de) | 2016-04-27 |
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 | |
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 | |
DE602004013269T2 (de) | Verfahren und Gerät zur Aktualisierung nichtflüchtiger Speicherinhalte auf einem schnurlosen Gerät durch Überprüfen und Vergleich eines spezifischen, in besagtem Speicher abgelegten Identifikations-Elements mit einer Software-Identifikation | |
EP3668132B1 (de) | Inkrementelles aktualisieren einer firmware | |
CN115514806B (zh) | 一种离散服务集群的感知发现方法及系统 | |
DE60303710T2 (de) | Konfiguration eines Computers in einem Netzwerk | |
DE602004001585T2 (de) | Anpassung an örtliche besonderheiten von betriebsmitteln von anwendungsprogrammen in tragbaren, elektronischen geräten und verfahren dazu |
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 |