JP4953475B2 - 動的命令セットを実行する方法および無線通信デバイス - Google Patents

動的命令セットを実行する方法および無線通信デバイス Download PDF

Info

Publication number
JP4953475B2
JP4953475B2 JP2009230033A JP2009230033A JP4953475B2 JP 4953475 B2 JP4953475 B2 JP 4953475B2 JP 2009230033 A JP2009230033 A JP 2009230033A JP 2009230033 A JP2009230033 A JP 2009230033A JP 4953475 B2 JP4953475 B2 JP 4953475B2
Authority
JP
Japan
Prior art keywords
code
symbol
code section
data
section
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 - Fee Related
Application number
JP2009230033A
Other languages
English (en)
Other versions
JP2010044775A (ja
JP2010044775A5 (ja
Inventor
ラジャラム ゴウリ
セッケンドルフ ポール
カプラン ディエゴ
Original Assignee
キョウセラ ワイヤレス コープ.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/917,026 external-priority patent/US7328007B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/969,305 external-priority patent/US7386846B2/en
Application filed by キョウセラ ワイヤレス コープ. filed Critical キョウセラ ワイヤレス コープ.
Publication of JP2010044775A publication Critical patent/JP2010044775A/ja
Publication of JP2010044775A5 publication Critical patent/JP2010044775A5/ja
Application granted granted Critical
Publication of JP4953475B2 publication Critical patent/JP4953475B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/05Aspects of automatic or semi-automatic exchanges related to OAM&P
    • H04M2203/052Aspects of automatic or semi-automatic exchanges related to OAM&P software update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42178Administration or customisation of services by downloading data to substation equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)

Description

(発明の背景)
(1.発明の分野)
本発明は、無線通信デバイスに関し、より具体的には、無線通信のシステムソフトウェアを用いて現場で動的命令セットを実行するシステムおよび方法に関する。
(2.関連技術の記載)
現場に既に存在するフォンに対してソフトウェア更新をリリースすることは珍しくはない。これらの更新は、一度フォンが製造され公に流通されてからソフトウェアに見つけられた問題に関連し得る。ある更新には、サービスプロバイダかから供給されたフォンの新機能の用途またはサービスが含まれ得る。さらに他の更新は、地域的な問題、またはある通信事業者に関連する問題に関係し得る。例えば、ある地域では、通信事業者のネットワークレイアウトが、より不適切なチャンネル検索、より不適切なコールの終了、より不適切なオーディオまたはこれと同等の予期していない動作をハンドセットに示させる、ハンドセットにエアリンクインターフェイス条件を課し得る。
このような更新に対する従来のアプローチは、最も近い通信事業者小売店/サービスアウトレットまたは製造業者に、本明細書中で無線デバイス、フォン、電話、またはハンドセットと呼ばれているものを、無線通信デバイスおよびその変更を処理するためにリコールすることであった。このような更新に含まれるコストは、広範囲に渡り、最終結果へ食い込む。さらに、顧客は、不便であり、いらいらさせられがちである。多くの場合、実際的なソリューションは、顧客に新しいフォンを提供することである。
無線デバイスは、種々の環境において、異なった加入者サービスで、多数の異なった顧客アプリケーションに対して用いられる。従って、無線デバイスのソフトウェアは、サービスを改善するためにアップグレードされ得たとしても、アップグレードがすべてのユーザに対して一様な改善を提供する見込みはない。
顧客に不便さなく、無線通信デバイスソフトウェアが安価でアップグレードされ得れば、より有利である。
無線通信デバイスソフトウェアが、顧客が重要な期間のフォンの利用を失うことなく、アップグレードされ得れば、より有利である。
無線通信デバイスソフトウェアが、最小の専門家のサービス時間で、または、サービス設備へデバイスを送る必要なく更新され得れば、より有利である。
無線デバイスシステムソフトウェアがコードセクションに区分され得、これにより、システムソフトウェアの特定のコードセクションのみが置換される必要があるならば、より有利である。これらのコードセクションがエアリンクを介して無線デバイスと通信され得るならば、より有利である。
デバイスの状況に基づいて各無線通信デバイスについてコードセクション更新が一意的に行われ得るならば、より有利である。
無線デバイスは、無線デバイスシステムソフトウェアの性能をモニタリングし、性能データを収集し、かつデータを解析するためのシステム中央収集庫に送信し得るならば、より有利である。
(発明の要旨)
無線通信デバイスソフトウェア更新は、顧客にできる限り最良の製品およびユーザ経験を与える。本商業界の高価な部分とは、ソフトウェアを更新するためにハンドセットのリコールを含むことである。これらの更新は、フォンが製造された後に、ユーザに付加的なサービスを提供し、フォンの利用中に発見された問題を処理するために必要とし得る。本発明は、エアリンクインターフェイスを介して、現場のハンドセットソフトウェアを実際に更新することを可能にする。より具体的には、本発明は、無線通信デバイスが動的命令セットを実行することを可能にする。これらの動的命令セットは、無線デバイスが、システムソフトウェアおよびシステムデータを「インテリジェントに」、または条件的にアップグレードすることを可能にする。さらに、動的命令セットは、無線デバイスがシステムソフトウェア性能をモニタリングし、かつ解析するための性能データを送信することを可能にする。
従って、無線通信デバイスにおいて動的命令セットを実行するための方法が提供される。この方法は、システムソフトウェアをシンボルライブラリに形成するステップであって、各シンボルライブラリは、関連した機能性を有するシンボルを含む、ステップと、シンボルライブラリをコード格納セクション不揮発性メモリ内のコードセクションに配置するステップと、パッチマネージャランタイム命令(PMRTI)または動的命令セットを受信するステップであって、ファイルシステムセクション不揮発性メモリ内に条件付きオペレーションコードおよびデータアイテムを含む、ステップと、第1のコードセクションからランタイムライブラリを呼出すステップと、パッチマネージャランタイム命令オペレーションコードを処理するステップと、システムデータおよびシステムフソフトウェア上で演算するステップと、システムデータおよびシステムソフトウェア上での演算に応答して、システムソフトウェアの実行を制御するステップとを包含する。
動的命令セットを実行する上述の方法、および、動的命令セットを実行するシステムのさらなる詳細が以下に提供される。
図1は、無線デバイスソフトウェアメンテナンスシステム全体の模式的ブロック図である。 図2は、エアリンクインターフェイスを介して命令セットのインストレーションを強調表示する、ソフトウェアメンテナンスシステムの模式的ブロック図である。 図3は、無線通信デバイスにおける動的命令セットを実行する本発明のシステムを示す模式的ブロック図である。 図4は、無線デバイスメモリの模式的ブロック図である。 図5は、図3のコードセクションアドレステーブルを表すテーブルである。 図6は、図3のシンボルライブラリ1のシンボルを有する詳細図である。 図7は、図3のシンボルオフセットアドレステーブルを表すテーブルである。 図8は、ランタイムエンジンによってアクセスされるオペレーションコード(「オペコード」)の図である。 図9は、図8の第1のオペレーションコードのより詳細な図である。 図10aは、無線通信デバイスにおいて動的命令を実行する本発明の方法を示すフローチャートである。 図10bは、無線通信デバイスにおいて動的命令を実行する本発明の方法を示すフローチャートである。 図11は、例示的動的命令セットのオペレーションを示すフローチャートである。 図12は、別の例示的動的命令セットのオペレーションを示すフローチャートである。 図13は、第3の例示的動的命令セットのオペレーションを示すフローチャートである。 図14は、第4の例示的動的命令セットのオペレーションを示すフローチャートである。 図15は、第5の例示的動的命令セットのオペレーションを示すフローチャートである。
(好適な実施形態の詳細な説明)
以下の詳細な説明のいくつかの部分は、無線デバイスマイクロプロセッサまたはメモリ内のデータビットにおける動作の手順、ステップ、ロジックブロック、コード、処理、および、他のシンボリックな表現ついて示される。これらの記述および表現は、データ処理技術の当業者によって利用される手段であって、これらは、当該の別の技術者に仕事の実質を最も効果的に提供するためのものである。手順、マイクロプロセッサに実行されるステップ、アプリケーション、ロジックブロック、プロセス等は、本明細書中において、および一般的に、所望の結果を導くステップまたは命令の一貫したシーケンスであると考えられる。本ステップは、物理量(quantity)の物理的操作を要求するステップである。通常、必須ではないが、これらの量は、マイクロプロセッサに基づく無線デバイスにおいて、格納、伝達、結合、比較、およびそうでなければ操作され得る電気または磁気信号の形式を取り得る。これらの信号をビット、値、エレメント、シンボル、文字、用語、または数字等として示すことは、原則的に共通の用法で、時には便利であることが証明されている。メモリ等の物理的デバイスについて言及される場合、それらは、バスまたは他の電気接続を介して他の物理的デバイスに接続される。これらの物理的デバイスは、論理的プロセスまたはアプリケーションと相互作用し、従って、論理的演算に「接続される」と考えられ得る。例えば、メモリはさらなる論理演算に対するコードを格納またはアクセスし得るか、または、アプリケーションは、実行するためにメモリからコードセクションを呼び出し得る。
しかし、尚、全てのこれらおよび同様の用語は、適切な物理量に関連すべきであり、単にこれらの量に適用される便利なラベルにすぎない。他に特別に述べられない限り、以下の説明から明らかなように、本発明を通して、「処理」「接続」「翻訳」「表示」「プロンプト」「判定」「表示」または「認識」等の用語を利用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電気的)量として示されるデータを無線デバイスメモリまたはレジスタまたは他のこのような情報格納デバイス、送信デバイスまたは表示デバイス内の物理量として同様に示される他のデータへ操作して変換する、無線デバイスマイクロプロセッサシステムのアクションおよびプロセスを示す。
図1は、無線デバイスソフトウェアメンテナンスシステム全体100の概略的なブロック図である。本発明のシステムソフトウェアの組織化は、以下に詳細に示され、ソフトウェアメンテナンスシステムの一般的概要100に従う。一般的なシステム100は、システムソフトウェア更新および命令セット(プログラム)を送達するステップ、および送達されたソフトウェアを無線デバイスにインストールするステップのプロセスについて記述する。より一般的には命令セットまたは動的命令セットとして知られるシステムソフトウェア更新およびパッチマネージャランタイム命令(PMRTI)は、ハンドセットの製造業者によって作成される。システムソフトウェアは、シンボルライブラリに組織化される。シンボルライブラリは、コードセクション内に配置される。シンボルライブラリが更新される場合、ソフトウェア更新102は、1つ以上のコードセクションとしてトランスポートされる。ソフトウェア更新は、現場の無線デバイス(無線通信デバイス104はその代表である)にブロードキャストされるか、または、公知の従来の空中でかつ、データまたはメッセージトランスポートプロトコルを利用して基地局106から別々の通信で送信される。本発明は、無線通信デバイスが、システムソフトウェアおよびPMRTI更新を受信する目的のために、任意の利用可能な空中を介した(over−the−air)トランスポートプロトコルを処理するように容易に修正され得るので、任意の特定のトランスポーテーションフォーマットに制限されない。
システムソフトウェアは、異なるサブシステムのコレクションとみなされ得る。コードオブジェクトは、これらの抽象的なサブシステムの1つにしっかりと接続され得、結果のコレクションは、シンボルライブラリとしてラベル付けされ得る。これは、コードベースの論理的ブレークダウンを提供し、ソフトウェアパッチおよび修正は、これらのシンボルライブラリに関連し得る。多くの場合、単一の更新は、1つまたは多くとも2つのシンボルライブラリと関連する。残りのコードベース、すなわち他のシンボルライブラリは、変化しないままである。
シンボルライブラリの概念は、コードおよび定数を扱うためのメカニズムを提供する。一方、リードライト(RW)データは、全てのライブラリのためのRAMベースのデータを含む固有の個別RWライブラリへ適合する。
無線デバイス104によって受信されると、トランスポートされたコードセクションは、処理されなければならない。この無線デバイスは、不揮発性メモリ108の固有のコードセクションを上書きする。不揮発性メモリ108は、ファイルシステムセクション(FSS)110およびコード格納セクション112を含む。コードセクションは、通常、FSS110の占有率を最小化するためにトランスポートの前に圧縮される。多くの場合、更新されたコードセクションは、RWデータを伴う。システムソフトウェアは実行時にランダムアクセス揮発性リード−ライトメモリ114にロードされるが、RWデータは、常に不揮発性メモリ108に格納される必要があり、そのため、RWデータは、無線デバイスがリセットされる度に、ランダムアクセス揮発性リード−ライトメモリ114にロードされ得る。これは、初回のRWデータのランダムアクセス揮発性リード−ライトメモリへのロードを含む。以下により詳細に説明されるように、RWデータは、通常、パッチマネージャコードセクションに配置される。
システム100は、仮想テーブルの概念を含む。このようなテーブルを用いて、あるコードセクションのシンボルライブラリは、システムソフトウェアの他の部分(他のコードセクション)を壊す(置き換える)ことなく、パッチされる(置き換えられる)。仮想テーブルは、効率性のために、ランダムアクセス揮発性リード−ライトメモリ114から実行する。コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルは、仮想テーブルである。
更新されたコードセクションは、無線デバイス104によって受信され、FSS110に格納される。無線デバイスユーザインターフェース(UI)は、通常、新しいソフトウェアが利用可能であることをユーザに通知する。UIプロンプトに応答して、ユーザは、通知を確認し、かつ、パッチまたは更新動作を許可する。もしくは、更新動作が自動的に実行される。無線デバイスは、更新プロセスが実行される時、標準的な通信タスクを実行不可能であり得る。パッチマネージャコードセクションは、さらにランダムアクセス揮発性リード−ライトメモリ114へロードされる不揮発性リード−ライトドライバシンボルライブラリを含み得る。不揮発性リード−ライトドライバシンボルライブラリは、コードセクションを更新されるべきコードセクションで上書きさせる。図に示されるように、コードセクションnおよびパッチマネージャコードセクションは、更新されるコードセクションで上書きされる。パッチマネージャコードセクションは、リード−ライトデータ、コードセクションアドレステーブル、およびシンボルオフセットアドレステーブル、ならびに、シンボルアクセサコードおよびシンボルアクセサコードアドレス(以下に説明される)を含む。このデータの一部分は、更新されたコードセクションが導入される時に無効であり、更新されたパッチマネージャコードセクションは、更新されたコードセクションに対して有効なリード−ライトデータ、コードセクションアドレステーブル、およびシンボルオフセットアドレステーブルを含む。一旦、更新されたコードセクションが、コード格納セクション112内にロードされると、無線デバイスはリセットされる。リセット動作に続いて、無線デバイスは、更新されたシステムソフトウェアを実行し得る。尚、パッチマネージャコードセクションは、上述されていない他のシンボルライブラリを含み得る。これらの他のシンボルライブラリは、リード−ライト揮発性メモリ114へロードされる必要がない。
図2は、エアリンクインターフェイスを介する命令セットのインストールをハイライトする、ソフトウェアメンテナンスシステム100の概略的なブロック図である。更新されたコードセクションに加えて、メンテナンスシステム100は、本明細書中でパッチマネージャランタイム命令(PMRTI)と呼ばれる、動的命令セット、プログラム、またはパッチマネージャ命令セット(PMIS)をダウンロードおよびインストールし得る。PMRTIコードセクション200は、上述の更新されたコードセクションと同一の態様で無線デバイス104にトランスポートされる。PMRTIコードセクションは、最初にFSS110に格納される。PMRTIコードセクションは、通常ハンドセットへのコンパイルされた命令として思い描くことが可能なバイナリフィアルである。PMRTIコードセクションは、基本数学的演算の性能および条件付きで実行される演算の性能を提供するのに十分に包括的である
PMRTIは、加算、減算、乗算、および除算等の基本数学的演算をサポートし得る。更新されたコードセクションと共に、PMRTIコードセクションは、UIプロンプトに応答してロードされ得、無線デバイスは、PMRTIがコード格納セクション112へロードされた後、リセットされなくてはならない。その後、PMRTIセクションは、実行され得る。PMRTIコードセクションが任意の仮想テーブルまたはリード−ライトデータと関連する場合、更新されたパッチマネージャコードセクションは、コード格納セクション112インストールされるようにPMRTIを用いてトランスポートされる。もしくは、PMRTIは、保持されて、FSS110から処理され得る。ハンドセット104は、PMRTIセクションにおける全ての命令を実行した後、PMRTIセクションは、FSS110から削除され得る。あるいは、PMRTIは、さらなる動作のために維持される。例えば、PMRTIは、無線デバイスが電力供給(energized)されるたびに実行され得る。
PMRTIは、非常に強力なランタイム命令エンジンである。ハンドセットは、PMRTI環境を介してハンドセットに送達される任意の命令を実行し得る。このメカニズムは、RF調整およびPRI更新をサポートするために利用され得る。より一般的には、PMRTIが利用され、典型的にはユーザの不満の結果等のソフトウェア問題が製造業者またはサービスプロバイダによって認識される場合、無線デバイスソフトウェアをリモートデバックし得る。PMRTIはまた、ソフトウェアの問題を診断するために必要なデータを記録できる。PMRTIは、データ解析、デバック、および修正用の新しくダウンロードされたシステムアプリケーションを起動し得る。PMRTIは、更新されたシステムソフトウェアコードセクションの代わりに、ある問題に対する解析およびできる限り短い時間での修正のためのRWデータをベースにした更新を提供し得る。PMRTIは、無線デバイスによる利用のためにメモリ圧縮アルゴリズムを提供し得る。
本発明のいくつかの局面において、システムソフトウェアを複数のシンボルライブラリとして構成することが、実行のために必要とされる揮発性メモリ114および不揮発性メモリ108のサイズに影響を及ぼし得る。これは、コードセクションが、通常、コードセクション内に配置される、シンボルライブラリよりも大きいという事実による。これらのより大きいコードセクションは、更新コードセクションを収容するために存在する。システムソフトウェアをライブラリのコレクションとして組織化することにより、不揮発性メモリのサイズ要件に影響が及ぼされる。コードセクションは、中に配置されるシンボルライブラリよりも大きいサイズであり得るという事実により、同じコードサイズに対して用いられる不揮発性メモリの量が多くなる。
一旦、ソフトウェア更新が、無線デバイスに送達されると、ソフトウェアメンテナンスシステム100は、メモリ圧縮をサポートする。メモリ圧縮は、デスクトップコンピュータのディスクデフラグアプリケーションと同様である。圧縮メカニズムは、メモリが最適に利用され、将来のコードセクション更新のために良好にバランスされることを保証し、ここで、更新されるコードセクションのサイズは、予測できない。システム100は、パッチがあてられる(更新される)コード格納セクションを解析する。システム100は、更新されたコードセクションを、置換されるコードセクションにより占有されるメモリスペースへ適応させることを試みる。更新されたコードセクションが置換されるコードセクションよりも大きい場合、システム100は、メモリ112のコードセクションを圧縮する。もしくは、圧縮は、製造業者またはサービスプロバイダによって計算され得、圧縮命令は、無線デバイス104へトランポートされ得る。
圧縮は、アルゴリズムの複雑性および膨大な量のデータ移動により、時間消費プロセスになり得る。圧縮アルゴリズムは、任意の処理が開始する前に、実行可能性を予測する。UIプロンプトは、圧縮が試みられる前に、ユーザからの許可を適用するために利用され得る。
本発明のある局面では、全システムソフトウェアコードセクションは、同時に更新され得る。しかしながら、完全なシステムソフトウェア更新は、より大きなFSS110を要求する。
図3は、無線通信デバイスにおける本発明の動的命令セットの実行を示す模式的ブロック図である。システム300は、複数の現在のコードセクションに区分された実行可能な無線デバイスシステムソフトウェアを含むメモリ108内にコード格納セクション112を備える。コードセクション1(302)、2(304)、およびn(306)、ならびにパッチマネージャコードセクション308が示される。しかしながら、本発明は、コードセクションの任意の特定の数に制限されない。システム300はさらに、第2の複数のコードセクション内に配置される第1の複数のシンボルライブラリを含む。示されるのは、コードセクション1(302)に配置されるシンボルライブラリ1(310)、コードセクション2(304)に配置されるシンボルライブラリ2(312)および3(314)、ならびにコードセクションn(306)に配置されるシンボルライブラリm(316)である。各ライブラリは、関連する機能性を有するシンボルを含む。例えば、シンボルライブラリ1(310)は、無線デバイス液晶ディスプレイ(LCD)の動作に関与し得る。そして、シンボルは、ディスプレイ機能に関連する。以下に詳細に示されるように、さらなるシンボルライブラリは、パッチマネージャコードセクション308に配置される。
図4は、無線デバイスメモリの概略的なブロック図である。示されるように、メモリは、図1のコード格納セクション112である。メモリは、フラッシュメモリのような書き込み可能な不揮発性メモリである。尚、コードセクションは、必ずしもFSS110と同一のメモリに格納される必要はないことが理解される。尚、本発明のシステムソフトウェア構造は、複数の協働するメモリに格納されるコードセクションにより有効にされることも理解される。コード格納セクション112は連続してアドレスされる複数のメモリブロックを含み、ここで、各メモリブロックは複数のコードセクションのうち、対応するコードセクションを格納する。従って、コードセクション1(302)は、第1のメモリブロック400に格納され、コードセクション2(304)は、第2のメモリブロック402に格納され、コードセクションn(306)は、第nのメモリブロック404に格納され、そしてパッチマネージャコードセクション(308)は、第pのメモリブロック406に格納される。
図3および4を参照して、各コードセクションの開始点は対応する開始アドレスによって指定されるメモリ内の位置に格納され、シンボルライブラリは、コードセクションの開始点で開始するように配置される。すなわち、各シンボルライブラリは、第1のアドレスで開始し、第1のアドレスから連続してある範囲のアドレスを通って走行する。例えば、コードセクション1(302)は、コード格納セクション112の第1の開始アドレス408(「S」でマークされる)で開始する。図3では、シンボルライブラリ1(310)は、コードセクション1(302)の開始点318で開始する。コードセクション2(304)が第2の開始アドレス410(図4)で開始するのと同様に、シンボルライブラリ2は、コードセクション2(図3)の開始点320で開始する。コードセクションn(306)は、コード格納セクション112の第3の開始アドレス412(図4)で開始し、シンボルライブラリm(316)は、コードセクションn322(図3)の開始点で開始する。パッチマネージャコードセクションは、コード格納セクション112の第pの開始アドレス414で開始し、そしてパッチマネージャコードセクション308の第1のシンボルライブラリは、パッチマネージャコードセクションの開始点324で開始する。従って、シンボルライブラリ1(310)は、最終的に、第1のメモリブロック400に格納される。コードセクションが、コードセクション2(304)のような複数のシンボルライブラリを含む場合、複数のシンボルライブラリは、対応するメモリブロック(この場合、第2のメモリブロック402)に格納される。
図3では、システムソフトウェア構造300は、パッチマネージャコードセクション308に配置されるシンボルライブラリに含まれるシンボルのあるタイプとして、コードセクションアドレステーブル326をさらに含む。コードセクションアドレステーブルは、コードセクション識別子をメモリの対応するコードセクション開始アドレスと相互参照する。
図5は、図3のコードセクションアドレステーブル326を示すテーブルである。コードセクションアドレステーブル326は、シンボルライブラリに対するコードセクション開始アドレスを見つけ出すために参照される。例えば、システム300は、シンボルライブラリ1のシンボルが実行に必要とされる時、コードセクション1を検索する。コードセクション1の開始アドレスを見つけ出し、従って、シンボルをシンボルライブラリ1に位置付けるために、コードセクションアドレステーブル326は、参照される。コードセクションのシンボルライブラリの配置、およびテーブルによるコードセクションのトラッキングは、コードセクションが移動され、かつ拡張されることを可能にする。拡張または移動動作は、アップグレードされたコードセクション(アップグレードされたシンボルライブラリを含む)をインストールするために必要とされ得る。
尚、図3に戻って、全てのシンボルライブラリは、必ずしもコードセクションの開始点で開始するわけではない。示されるように、シンボルライブラリ3(314)は、コードセクション2(304)に配置されるが、コードセクション開始アドレス320で開始しない。従って、シンボルライブラリ3(314)のシンボルが実行のために必要とされる場合、システム300は、コードセクション2(304)の開始アドレスに対してコードセクションアドレステーブル326を参照する。図7を参照して以下に説明されるように、シンボルオフセットアドレステーブルは、シンボルライブラリ3(314)のシンボルがコードセクション1内に位置付けられることを可能にする
上述されたように、各シンボルライブラリは、機能的に関連したシンボルを含む。シンボルは、空中を介した通信本体、変数、またはデータ構造を位置付け、かつ利用するための、プログラマ定義の名前(例えば、”X”のようなアドレスまたは値)であるシンボルは、内部シンボルまたは外部シンボルであり得る。内部シンボルは、現在のコードセクションの範囲を超えて、可視ではない。より詳細には、内部シンボルは、他のコードセクションにおいて、他のシンボルライブラリによって検索されない。外部シンボルは、コードセクション間で利用および呼び出しされ、かつ、異なるコードセクションのライブラリによって検索される。シンボルオフセットアドレステーブルは、通常、全ての外部シンボルのリストを含む。
例えば、シンボルライブラリ1は、無線デバイスディスプレイ上に文字を生成する。このライブラリのシンボルは、電話番号、名前、時刻、または他のディスプレイ機能を生成する。各機能は、本明細書中でシンボルとして参照する、空中を介した通信によって生成される。例えば、シンボルライブラリ1(310)の1つのシンボルは、ディスプレイ上に電話番号を生成する。このシンボルは、「X」で表わされ、外部である。無線デバイスがフォンコールを受け、呼び出し側IDサービスが起動される場合、システムは、「X」シンボルを実行することにより、ディスプレイ上に番号を生成しなければならない。従って、システムは、「X」シンボルを位置付けなければならない。
図6は、シンボルを有する、図3のシンボルライブラリ1(310)の詳細な図である。シンボルは、各コードセクション開始アドレスからオフセットされるように配置される。多くの状況では、シンボルライブラリの開始点は、コードセクションの開始点であるが、これは、コードセクションが1つより多いシンボルライブラリを含む場合に当てはまらない。シンボルライブラリ1は、コードセクション1(図3を参照されたい)の開始点で開始する。図6に示されるように、「X」シンボルは、シンボルライブラリの開始点からの(03)のオフセットに位置付けられ、「Y」シンボルは、(15)のオフセットに位置付けられる。シンボルオフセットアドレスは、パッチマネージャコードセクションのシンボルオフセットアドレステーブル328に格納される(図3)。
図7は、図3のシンボルオフセットアドレステーブル328を示すテーブルである。シンボルオフセットアドレステーブル328は、対応するオフセットアドレス、およびメモリの対応するコードセクション識別子によってシンボル識別子を相互参照する。従って、システムは、シンボルライブラリ1において「X」シンボルを実行させるために検索し、シンボルオフセットアドレステーブル328は、それが配置されるコードセクションについて、シンボルの正確なアドレスを位置付けるために参照される。
図3に戻って、第1の複数のシンボルライブラリは全て、通常、これらのシンボルライブラリの実行時に参照される、または設定されなければならないリード−ライトデータを含む。例えば、シンボルライブラリは、条件付きステートメントに依存する動作を含み得る。リード−ライトデータセクションを参照して、条件付きステートメントを完了させるために必要なステータスを判定する。本発明は、全てのシンボルライブラリから共有されるリード−ライトセクションへリード−ライトデータをグループ化する。本発明のある局面では、リード−ライトデータ330は、パッチマネージャコードセクション308に配置される。もしくは(示されない)、リード−ライトデータは、異なるコードセクション、例えば、コードセクションn(306)に配置され得る。
第1の複数のシンボルライブラリはまた、検索されるシンボルのアドレスを計算するために、コードセクションに配置されシンボルアクセサコードを含む。シンボルアクセサコードは、別コードセクション例えば、コードセクション2(304)のアドレスに配置され、かつ格納され得る。しかし、示されるように、シンボルアクセサコード332は、パッチマネージャコードセクション308のアドレスに配置され、格納される。システム300、さらに、シンボルアクセサコードアドレスを格納するための第1の位置を含む。第1の位置は、コード格納セクション112内のコードセクション、または無線デバイス(示されない)の別メモリセクションにおけるコードセクションであり得る。第1の位置はまた、リード−ライトデータと同一のコードセクションにも配置され得る。示されるように、第1の位置334は、リード−ライトデータ330、シンボルオフセットアドレステーブル328、コードセクションアドレステーブル326、シンボルアクセサコード332、およびパッチライブラリ(パッチシンボルライブラリ)336を有するパッチマネージャコードセクション308に格納される。
シンボルアクセサコードは、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルを利用して、メモリにおいて検索されるべきシンボルの正確なアドレスを検索する。すなわち、シンボルアクセサコードは、対応するシンボル識別子および対応するコードセクション識別子を用いて検索されるシンボルのアドレスを計算する。例えば、シンボルライブラリ1の「X」シンボルが検索される場合、シンボルアクセサは、「X」シンボルに対応して(図7を参照されたい)、シンボル識別子(シンボルID)X_1を検索するために呼び出される。シンボルアクセサコードは、シンボルオフセットアドレスを参照して、X_1シンボル識別子がコードセクション1の開始点から(03)のオフセットを有することを判定する(図6を参照されたい)。シンボルアクセサコードは、コードセクション1に対応して、コードセクション識別子CS_1を検索するために呼び出される。シンボルアクセサコードは、コードセクションテーブルを参照して、コードセクション識別子(コードセクションID)CS_1と関連する開始アドレスを決定する。この方法では、シンボルアクセサコードは、シンボル識別子X_1が、(00100)のアドレスから(03)の分だけオフセットされている(すなわち、アドレス(00103)に位置する)ことを決定する。
シンボル「X」は、実際のコードの一部であり、予め定義された名前である。言い換えると、シンボル「X」は、それに関連する絶対値データを有する。データは、アドレスまたは値であり得る。シンボル識別子は、シンボルを識別するために生成されるシンボルオフセットアドレステーブルおよびコードセクションアドレステーブルの両方が識別子と共に作用して、予約されたシンボルおよびコードセクション名との混乱を避ける。また、同一のシンボル名を多くのシンボルライブラリにわたって利用することが可能である。識別子の利用は、これらのシンボル間の混乱を避ける。
図1に戻って、システムソフトウェア構造300はさらに、リード−ライト揮発性メモリ114、典型的にはランダムアクセスメモリ(RAM)を含む。リード−ライトデータ330、コードセクションアドレステーブル326、シンボルオフセットアドレステーブル328、シンボルアクセサコード332、およびシンボルアクセサコードアドレス334は、システムソフトウェアの実行中のアクセスのために、パッチメネージャセクションからリード−ライト揮発性メモリ114へロードされる。周知のように、RAMに格納されるコードのアクセス時間は、Flashのような不揮発性メモリへのアクセスよりもはるかに短い。
図3に戻って、尚、シンボルライブラリは、それらが配置されるコードセクションを必ずしも満杯にする必要はないが、メモリブロックが内部に格納される対応のコードセクションを正確に収容するようにサイズ合わせされる。代わりに述べられるのは、第2の複数のコードセクションの各々は、配置されるシンボルライブラリを収容するバイトサイズを有し、連続してアドレスされるメモリブロックの各々は、対応するコードセクションを収容するバイトサイズを有する。例えば、コードセクション1(302)は、100バイトの長さを有するシンボルライブラリを収容する100バイトのセクションであり得る。第1のメモリブロックは、コードセクション1のバイトサイズに一致する100バイトである。しかし、コードセクション1にロードされるシンボルライブラリは、100バイトよりも小さくなってもよい。図3に示されるように、コードセクション1(302)は、シンボルライブラリ1(310)が100バイトよりも小さい場合、未使用セクション340を有する。従って、第2の複数のコードセクションの各々は、配置されるシンボルライブラリを収容するのに必要となるサイズよりも大きいサイズを有する。「過剰なサイズ」のコードセクションにより、より大きな更新されたシンボルライブラリが収容され得る。
連続的にアドレスされるメモリブロックは、物理的メモリ空間を種々のサイズのロジックブロックに区切ることである。コードセクションおよびメモリブロックは、コードセクションがメモリに格納された場合に実質的に交換可能である用語である
図3に見出されるように、現在のコードセクションを有するコード格納セクションに新しいコードセクションを配置するために、システム300は、本明細書中でパッチライブラリ336と呼ばれるパッチシンボルライブラリを含む。コード格納セクションにおける現在のコードセクションと共に新しいコードセクションの配置は、更新される実行可能なシステムソフトウェアを形成する。パッチマネージャは、現在のコードセクションと共に新しいコードセクションを配置するだけでなく、コードセクションを更新されるコードセクションとも置換する。
図4に戻って、メモリ108のファイルシステムセクション110は、新しいコードセクション450および更新されるパッチマネージャコードセクション452等の新しいコードセクションを受信する。ファイルシステムセクションは、さらに、現在のコードセクションと共に新しいコードセクションを配置するための命令を含む第1のパッチマネージャランタイム命令(PMRTI)454を受信する。図1に見出されるように、エアリンクインターフェイス150は、新しいか、または更新されるコードセクション、ならびに第1のPMRTIを受信する。エアリンクインターフェイス150は、アンテナによって表されるが、エアリンクインターフェイス150は、さらに、RFトランシーバ、ベースバンド回路および復調回路(図示せず)を含むことに留意されたい。ファイルシステムセクション110は、エアリンクインターフェイス150を介して受信された新しいコードセクションを格納する。パッチライブラリ336は、リード−ライト揮発性メモリ114から実行し、コード格納セクションの第1のコードセクション、例えば、コードセクションn(306)を、第1のPMRTI454に応答して、新しいか、または更新されるコードセクション450と置換する。通常、パッチマネージャコードセクション308は、更新されるパッチマネージャコードセクション452と置換される。コードセクションが置換された場合、パッチライブラリ336は、コード格納セクション112における第1のコードセクション、例えば、コードセクションn(306)を、ファイルシステムセクション112における、更新されたコードセクション、例えば、コードセクション450に上書きする。極端な場合、コード格納セクション112におけるすべてのコードセクションは、更新されるコードセクションと置換される。すなわち、FSS110は、第2の複数の更新されたコードセクション(図示せず)を受信し、パッチライブラリ336は、コード格納セクション112における第2の複数のコードセクションを第2の複数の更新されるコードセクションと置換する。当然、FSS110は、エアリンクインターフェイスを介して受信された第2の複数の更新されるコードセクションを収容するように十分に大きくしなければならない。
上述のように、受信された更新されるコードは、リード−ライトデータコードセクション、コードセクションアドレステーブルコードセクション、シンボルライブラリ、シンボルオフセットアドレステーブルコードセクション、シンボルアクセサコードセクション、または新しいパッチライブラリを有するコードセクションを含み得る。これらのすべてのコードセクションは、関連するシンボルライブラリおよびシンボルと共に、別個かつ独立したコードセクションとして格納され得る。その後、これらのコードセクションの各々は、一意的に更新されるコードセクションと置換される。すなわち、更新されるリード−ライトコードセクションは、受信されて、コード格納セクションにおけるリード−ライトコードセクションを置換する。更新されたコードセクションアドレステーブルコードセクションは、受信されて、コード格納セクションにおけるコードセクションアドレステーブルコードセクションを置換する。更新されたシンボルオフセットアドレステーブルコードセクションは、受信されて、コード格納セクションにおけるシンボルオフセットアドレステーブルコードセクションを置換する。更新されるシンボルアクセサコードセクションは、受信されて、コード格納セクションにおけるシンボルアクセサコードセクションと置換する。同様に、更新されるパッチマネージャコードセクション(パッチライブラリを有する)は、受信されて、コード格納セクションにおけるパッチマネージャコードセクションと置換する。
しかしながら、上述のコードセクションは、通常、パッチマネージャコードセクションの中でバンドルされる。従って、コード格納セクションにおけるリード−ライトコードセクションは、パッチマネージャコードセクション308が、更新されるパッチマネージャコードセクション450と置換された場合、ファイルシステムセクション110からの更新されるリード−ライトコードセクションと置換される。同様に、更新されるパッチマネージャコードセクション450がインストールされた場合、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、シンボルアクセサコードセクション、およびパッチライブラリが置換される。新しいリード−ライトデータ、新しいコードセクションアドレステーブル、新しいシンボルオフセットアドレステーブル、新しいシンボルアクセサコード、および更新されるパッチマネージャコードセクションとしての新しいパッチライブラリの、コード格納セクションにおける現在のコードセクションと共に配置されることが更新される実行可能なシステムソフトウェアを形成する。
ファイルシステムセクション110が更新されたシンボルアクセサコードアドレスを受信した場合、パッチマネージャは、メモリ内の第1のロケーションにおけるシンボルアクセサコードアドレスを更新されるシンボルアクセサコードアドレスと置換する。上述のように、メモリ内334の第1のロケーションは、通常、パッチマネージャコードセクションにある(図3を参照)。
図3に見出されるように、パッチライブラリ336は、さらに、圧縮器、または圧縮器シンボルライブラリ342を含み得る。圧縮器342は、さらに、別個および独立したコードセクションとしてイネーブルされ得るが、上述のように、システムソフトウェアアップグレードと関連した機能を単一のパッチマネージャコードセクションにバンドルすることは有用かつ効率的である。通常、圧縮器342は、コードセクションのサイズを変更すると考えられることができ、これにより、新しいセクションは、コード格納セクション112における現在のコードセクションと共に配置され得る。
ここで確立された組織、ダウンロード、および圧縮の本発明の局面に関して、以下の説明は、無線通信デバイス動的命令セット実行システム300に集中させる。システム300は、詳細に上述されたように、実行可能なシステムソフトウェア、およびコードセクションと区分されたシステムデータを含む。さらに、システム300は、システムデータおよびシステムソフトウェア上で演算し、かつ、システムソフトウェアの実行を制御するための動的命令セットを含む。図4に示されるように、動的命令セット470は、第1のPMRTI454に組織化される。図3に見出されるように、システムは、さらに、ランタイムライブラリ370によってイネーブルされる動的命令セットを処理するためのランタイムエンジンを含む。圧縮器ライブラリ342およびパッチライブラリ336に関して述べられたように、ランタイムライブラリ370は、通常、パッチマネージャコードセクション308に配置される。しかしながら、ランタイムライブラリ370は、代替的に、別のコードセクション、例えば、第1のコードセクション304において配置され得る。
動的命令セットは、条件付きオペレーションコードを含み、かつ、通常、データアイテムを含む命令の1つまたは複数のセットである。ランタイムエンジンは、オペレーションコードを読み出し、かつ、どの演算が実行されることが必要かを決定する。オペレーションコードは、条件的、数学的、プロシージャ的または論理的であり得る。ランタイムエンジン、またはランタイムライブラリ370は、数学的または論理演算等の演算を実行するために動的命令セットを処理する。すなわち、ランタイムエンジンは、動的命令セット470を読み出し、かつ、このオペレーションコードに応答して、演算のシーケンスを実行する。動的命令セットは任意の特定の言語に限定されないが、オペレーションコードは、通常、マシンコードの形態であり、これは、無線デバイスメモリが限定され、実行速度が重要だからである。オペコードは、データアイテムを解析し、かつ、解析の結果として決定を下すという点で条件的であると考えられる。ランタイムエンジンは、さらに、解析される前に、データに関する演算が実行されることを決定し得る。
例えば、オペレーションコードは、無線デバイスメモリからのデータが所定の値と比較されるように規定し得る。データアイテムが所定の値よりも小さい場合、データアイテムは、そのままにされ、データアイテムが所定の値よりも大きい場合、これは所定の値と置換される。あるいは、オペレーションコードは、上述の比較演算が実行される前に、第2の所定の値を無線デバイスメモリからのデータアイテムに追加し得る。
上述のように、ファイルシステムセクション不揮発性メモリ110は、エアリンク150等のインターフェイスを通じて動的命令セットを受信する。図1に示されるように、インターフェイスは、さらに、無線周波数の(RF)ハードライン160であり得る。その後、PMRTIは、システムソフトウェアが工場での調整環境等のように動作状態ではなく、FSS110によって受信され得る。PMRTIは、さらに、論理ポートインターフェイス162、またはインストール可能メモリモジュール164を介して受信され得る。
メモリモジュール164は、初期調整で無線デバイス104にインストールされるか、または工場での再調整中にインストールされ得る。特に記載はないが、PMRTIは、赤外線またはBluetoothインターフェイスを介して受信され得る。
図8は、ランタイムエンジン370によってアクセスされる命令を示す。示されるのは、第1の命令800、第2の命令802、およびj番目の命令804であるが、動的命令セットは任意の特定の数の命令に限定されない。各命令におけるオペレーションコードの長さは固定される。ランタイムエンジン370は、バイトまたはビットの測定のように、命令の長さをキャプチャし、命令がデータアイテムを含むか否かを決定する。オペレーションコードが減算された後の命令の残りの長さは、データアイテムを含む。ランタイムエンジンは命令からデータアイテムを抽出する。示されるように、第1の命令800の長さ806が測定され、かつデータアイテム808が抽出される。すべての命令が抽出されるべきデータアイテムを必ずしも含まないことに留意されたい。ランタイムエンジン370は、命令800におけるオペレーションコード810に応答する演算のシーケンスを実行する際に、この抽出されたデータ808を用いる。
図9は、図8の第1の命令800のより詳細な図である。第1の命令800を例として用いて、命令は、オペレーションコード810およびデータ808を含む。命令、および、より具体的には、データアイテムセクション808は、シンボル識別子を含み、これは、無線デバイスコードセクションにおけるシンボルへのリンクとして機能する。すでに詳細に説明されたように、シンボル識別子は、シンボル識別子に対応するシンボルを配置するために、コードセクションアドレステーブル326(図5を参照)およびシンボルオフセットアドレステーブル328(図7を参照)と共に用いられる。示されるように、シンボル識別子「X_1」は、第1の命令800において示される。シンボルオフセットアドレステーブル328は、「CS_1」識別子および「3」のオフセットを有するコードセクションにおいて対応するシンボルを配置する。コードセクションアドレステーブル326は、コードセクション1の開始アドレス(302)を与える。このようにして、シンボル「X」が見出される(図6を参照)。
ランタイムエンジンが、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルを用いて、受信されたシンボル識別子に対応するシンボルを配置した後、これは、配置されたシンボルがデータアイテムである場合データを抽出する。例えば、シンボル「X」がシンボルライブラリ1(310)におけるデータアイテムである場合、ランタイムエンジンはこれを抽出する。あるいは、「X」シンボルは、オペレーションコードであり得、ランタイムエンジンは、これが配置されると、シンボル「X」を実行させる。
PMRTIがシステムデータまたはシステムデータアイテムを更新するために用いられ得る。本発明のいくつかの局面において、システムデータが、例えば、ファイルシステムセクション110コードセクション472格納される(図4を参照)。ランタイムエンジンはコードセクション472からのシステムデータにアクセスし、かつ、このシステムデータを解析する。ランタイムエンジンは、上述のように、データアイテムに関する数学的、または論理的演算を実行するために、動的命令のオペレーションコードを処理する。演算の後、ランタイムエンジンは、更新されるシステムデータを生成する命令を処理する。更新されるシステムデータは、いくつかの状況において、変更されないデータアイテムを含み得ることに留意されたい。第2のコードセクション472におけるシステムデータは、オペレーションコードに応答して、更新されるシステムデータと置換される。従って、ランタイムエンジンによる命令の処理によって、システムソフトウェアは、コードセクション472における更新されたシステムデータを用いて実行するように制御される。このようにして、システムソフトウェアにおける、特定のターゲットとされたシンボルが更新され得るが、コードセクション全体は置換されない。同じプロセスによって、システムデータは、コード格納セクション112におけるコードセクションにおいて置換され得る。例えば、システムデータは、第3のコードセクション344に格納され得、ランタイムエンジンは、第3のコードセクションにおけるシステムデータを、オペレーションコードに応答して、更新されるシステムデータと置換し得る。
PMRTIは、さらに、揮発性メモリ114内のデータを更新するために用いられ得る。1例として、揮発性メモリ114は、リード−ライトデータ330を受取る(図1を参照)。リード−ライトデータは、コード格納セクション112および/またはFSS110における1つまたは複数のコードセクションから出力され得る。ランタイムエンジンは、リード−ライトデータにアクセスし、リード−ライトデータ330を解析し、更新されるリード−ライトデータを生成し、かつ揮発性メモリ114におけるリード−ライトデータ330を、オペレーションコードに応答して、更新されるリード−ライトデータ330と置換する。その後、システムソフトウェアは、揮発性メモリ114内の更新されたリード−ライトデータを用いて実行するように制御される。
本発明のいくつかの局面において、ランタイムエンジンは、システムソフトウェアの実行をモニタリングする。性能モニタリングは、多数の無線デバイスアクティビティを含むように広く規定される。例えば、チャネルパラメータ、チャネル特性、システムスタック、エラー状態、または、特定の故障状態または性能低下状態に至る演算のシーケンスを通じてのRAMにおけるデータアイテムのレコード等のデータが収集され得る。収集された性能データを解析するために動的命令セットを用い、更新されるデータの変形を提供し、かつ問題に対する可能な解決策を検討するためにデータを再キャプチャすることも可能である。PMRTIプロセスを用いて一次的な修理も提供され得る。
より具体的には、ランタイムエンジンは性能データを収集し、かつ、オペレーションコードに応答して、性能データをファイルシステムセクションに格納する。その後、システムソフトウェアは、システムソフトウェアの評価のために性能データを収集することによって実行するように制御される。評価は、動的命令セットオペレーションコードによって実行される解析の形態として行われ得るか、または、評価は、無線デバイスの外部で実行され得る。本発明のいくつかの局面において、ランタイムエンジンは、ファイルシステムセクションから収集された性能データをアクセスし、かつ、オペレーションコードに応答して、エアリンクインターフェイスを介して性能データを送信する。現場の無線デバイスから性能データを収集することによって、製造業者が、デバイスをリコールすることなく、地域的または地球規模で問題を徹底的に解析することが可能になる。
本発明のいくつかの局面において、ファイルシステムセクション110は、新しいコードセクションを含むパッチマネージャランタイム命令を受信する。例えば、新しいコードセクション474は、図4に示される。あるいは、新しいコードセクションn(450)等の新しいコードセクションは、PMRTIに依存し得ない。例えば、新しいコードセクションn(450)は、以前のエアリンク通信で受信され得るか、または、工場調整中にインストールされ得る。ランタイムエンジンは、オペレーションコードに応答して、新しいコードセクション474(450)をコード格納セクションに追加する。本発明のいくつかの局面において、新しいコードセクションは、コード格納セクション112における未使用のブロックに追加される。あるいは、圧縮演算が必要とされる。その後、システムソフトウェアは、新しいコードセクション474(450)を用いて実行するように制御される。本発明の他の局面において、PMRTI454は、更新されたコードセクション474を含む。あるいは、新しいコードセクション450は、PMRTIに依存しない更新されたコードセクションである。ランタイムエンジンは、コード格納セクションにおけるコードセクション、例えば、コードセクション2(304)を、オペレーションコードに応答して、更新されるコードセクション474(450)と置換する。システムソフトウェアは、更新されたコードセクション474(450)を用いて実行するように制御される。本発明のいくつかの局面において、圧縮演算は、更新されるコードセクションを収容するために必要とされる。あるいは、更新されるコードセクションは、コード格納セクションの未使用または空のセクションに追加される。
上述のように、新しいコードセクションの追加、またはコードセクションの更新は、通常、新しいコードセクションアドレステーブルの生成を必要とし、これは、これらの演算は、新しいおよび/または変更されたコードセクション開始アドレステーブルを含むからである。さらに、圧縮演算はまた、新しいコードセクションアドレステーブルを必要とする。圧縮演算は、上述の圧縮器342の演算の結果か、または、圧縮方法関する詳細を供給するPMRTI命令の結果であり得る。PMRTIがダウンロードおよび圧縮命令を含む場合、PMRTIは、通常、ダウンロードおよび圧縮が完了された後に有効になる新しいコードセクションアドレステーブルをさらに含む。
図10aおよび図10bは、無線通信デバイスにおいて動的命令セットを実行する本発明の方法を示すフローチャートである。明瞭にするために、ナンバリングされたステップのシーケンスとして示されるが、特に明示なき場合、ナンバリング(および後述される方法におけるナンバリング)から順序が推論されるべきでない。方法は、ステップ1000で開始する。ステップ1001aは、システムソフトウェアをシンボルライブラリに配置し、各シンボルライブラリは、関連する機能を有するシンボルを含む。ステップ1001bは、シンボルライブラリをコードセクションに配置する。ステップ1002は、システムソフトウェアを実行する。ステップ1003は、動的命令セットを受信する。ステップ1003の動的命令セットを受信するステップは、エアリンク、無線周波数の(RF)ハードライン、インストール可能メモリモジュール、赤外線および論理ポートインターフェイスを含む群より選択されたインターフェイスを通じて動的命令セットを受信することを含む。本発明のいくつかの局面において、ステップ1003において動的命令セットを受信するステップは、ファイルシステムセクション不揮発性メモリにおけるパッチマネージャランタイム命令(PMRTI)を受信することを含む。
ステップ1004は、ランタイムエンジンを起動する。通常、ランタイムエンジンを起動するステップは、第1のコードセクションからランタイムライブラリを呼出すことを含む。ランタイムエンジンは、揮発性または不揮発性メモリから起動され得る。ステップ1006は、動的命令セットを処理する。動的命令を処理するステップは、数学的および論理的演算に応答して、命令を処理することを含む。本発明のいくつかの局面において、ステップ1007(図示せず)は、動的命令セットの処理に続いて、動的命令セットを削除する。ステップ1008は、システムデータおよびシステムソフトウェア上で演算する。ステップ1010は、システムデータおよびシステムソフトウェア上での演算に応答して、システムソフトウェアの実行を制御する。
通常、ステップ1003におけるパッチマネージャランタイム命令を受信するステップは、条件付きオペレーションコードおよびデータアイテムを受信することを含む。その後、ステップ1006における動的命令セットを処理するステップは、サブステップを包含する。ステップ1006a1は、パッチマネージャランタイム命令オペレーションコードを読み出すために、ランタイムエンジンを用いる。ステップ1006bは、オペレーションコードに応答して、演算のシーケンスを実行する。
いくつかの局面において、ステップ1001bにおいてシンボルライブラリをコードセクションに配置するステップは、コードセクションの開始点でシンボルライブラリを開始すること、およびシンボルをそれぞれのコードセクションスタートアドレスからオフセットされるように配置することを包含する。その後、この方法は、さらなるステップを包含する。ステップ1001cは、対応する開始アドレスにコードセクションの開始を格納する。ステップ1001dは、コードセクション識別子を対応する開始アドレスと相互参照するコードセクションアドレステーブル(CSAT)を維持する。ステップ1001eは、シンボル識別子を対応するオフセットアドレスおよび対応するコードセクション識別子と相互参照するシンボルオフセットアドレステーブル(SOAT)を維持する。
本発明のいくつかの局面において、ステップ1003においてパッチマネージャランタイム命令を受信するステップは、シンボル識別子を受信することを包含する。その後、この方法は、さらなるステップを包含する。ステップ1006a2は、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルを用いることによって受信されたシンボル識別子に対応するシンボルを配置する。ステップ1006bにおけるオペレーションコードに応答して、演算のシーケンスを実行するステップは、サブステップを包含する。ステップ1006b1は、配置されたシンボルがデータアイテムである場合、データを抽出する。ステップ1006b2は、配置されたシンボルが命令であると、このシンボルを実行する。
本発明のいくつかの局面において、ステップ1006b1において動的命令を処理するステップは、さらなるサブステップを包含する。ステップ1006b1a、パッチマネージャランタイム命令の長さをキャプチャするために、ランタイムエンジンを用いる。ステップ1006bは、オペレーションコードに応答して、パッチマネージャランタイム命令からデータアイテムを抽出する。ステップ1006b1cは、オペレーションコードを応答して、演算のシーケンスを実行する際に抽出されたデータを用いる。
図11は、例示的動的命令セット演算を示すフローチャートである。図11におけるステップのいくつかは、図10におけるものと同じであり、簡潔にするために、ここでは繰返されない。ステップ1106において動的命令セットを処理するステップは、サブステップを包含する。ステップ1106aは、ファイルシステムセクションにおける第2のコードセクションに格納されたシステムデータにアクセスする。ステップ1106bは、システムデータを解析する。ステップ1106cは、更新されるシステムデータを生成する。その後、ステップ1108のシステムデータおよびシステムソフトウェア上で演算するステップは、第2のセクションにおけるシステムデータを更新されるシステムデータと置換するステップを包含し、ステップ1010のシステムソフトウェアの実行を制御するステップは、システムソフトウェアの実行において更新されたシステムデータを用いるステップを包含する。
図12は、別の例示的動的命令セット演算を示すフローチャートである。図12におけるステップのいくつかは、図10におけるものと同じであり、簡潔にするために、ここでは繰返されない。ステップ1201cは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ1206の動的命令セットを処理するステップは、サブステップを包含する。ステップ1206aは、コード格納セクション(CSS)における第3のコードセクションに格納されたシステムデータにアクセスする。ステップ1206bは、システムデータを解析する。ステップ1206cは、更新されるシステムデータを生成する。ステップ1208のシステムデータおよびシステムソフトウェア上で演算するステップは、第3のコードセクションにおけるシステムデータを更新されるシステムデータと置換するステップを包含する。ステップ1210のシステムソフトウェアの実行を制御するステップは、システムソフトウェアの実行において更新されたシステムデータを用いるステップを包含する。
図13は、第3の例示的動的命令セット演算を示すフローチャートである。図13におけるステップのいくつかは、図10におけるものと同じであり、簡潔にするために、ここでは繰返されない。ステップ1301cは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ1301dは、リード−ライトデータを揮発性メモリにロードする。ステップ1306の動的命令セットを処理するステップは、サブステップを包含する。ステップ1306aは、揮発性メモリにおけるリード−ライトデータにアクセスする。ステップ1306bは、リード−ライトデータを解析する。ステップ1306cは、更新されるリード−ライトデータを生成する。ステップ1308のシステムデータおよびシステムソフトウェア上で演算するステップは、揮発性メモリ内のリード−ライトデータを更新されるリード−ライトデータと置換するステップを包含する。システムソフトウェアの実行を制御するステップは、システムソフトウェアの実行において更新されたリード−ライトデータを用いるステップを包含する。
図14は、第4の例示的動的命令セット演算を示すフローチャートである。図14におけるステップのいくつかは、図10におけるものと同じであり、簡潔にするために、ここでは繰返されない。動的命令セットを処理するステップは、サブステップを包含する。ステップ1406aは、オペレーションコードに応答して、システムソフトウェアの実行をモニタリングする。ステップ1406bは、性能データを収集する。ステップ1406cは、性能データを格納する。ステップ1406dは、エアリンクインターフェイスを介して、格納されたデータを送信する。ステップ1408のシステムデータおよびシステムソフトウェア上で演算するステップは、システムソフトウェアの評価において性能データを用いるステップを包含する。
図15は、第5の例示的動的命令セット演算を示すフローチャートである。図14におけるステップのいくつかは、図10におけるものと同じであり、簡潔にするために、ここでは繰返されない。ステップ1501cは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ1503のパッチマネージャランタイム命令を受信するステップは、新しいコードセクションを受信するステップを包含する。ステップ1508のシステムデータおよびシステムソフトウェア上で演算するステップは、コード格納セクションに新しいコードセクションを追加するステップを包含し、ステップ1510のシステムソフトウェアの実行を制御するステップは、システムソフトウェアの実行において新しいコードセクションを用いるステップを包含する。
あるいは、ステップ1503の新しいコードセクションを受信するステップは、更新されるコードセクションを受信するステップを包含する。その後、ステップ1508のシステムデータおよびシステムソフトウェア上で演算するステップは、コード格納セクションにおける第4のコードセクションを更新されるコードセクションと置換するステップを包含する。
無線通信デバイスにおける動的命令セットを実行するシステムおよび方法が提供され、これにより、ソフトウェアを更新する、およびソフトウェアの性能をモニタリングするプロセスを支援する。システムは、コードセクションにシンボルライブラリが配置されるために、容易に更新可能であり、テーブルを用いてメモリ内のコードセクションの開始アドレスおよびシンボルライブラリにおけるシンボルのオフセットアドレスにアクセスする。動的命令セットの使用は、カスタム変更が、そのデバイスの特定の特性に基づいて、各無線デバイスに実行されることを可能にする。動的命令セットの可能な使用を示すいくつかの一般的な例が与えられた。しかしながら、本発明は、これらの例だけに限定されない。本発明の他の変形および実施形態が当業者に思い浮かぶ。

Claims (23)

  1. 無線通信デバイス動的命令セットを実行する方法であって
    前記無線通信デバイスは、処理手段と、通信インターフェースと、不揮発性メモリ(108)と、揮発性メモリ(114)とを含み、
    前記不揮発性メモリは、
    無線通信ネットワークから前記通信インターフェースを介して受信された前記動的命令セットを格納するためのファイルシステムセクションと、
    システムソフトウェアを格納するための複数のコードセクションと、
    ランタイムエンジンと、
    RWデータおよびパッチライブラリを格納するためのパッチマネージャコードセクションと
    を含み、
    前記動的命令セットは、少なくとも1つの命令(800、802、204)を含み、前記命令の各々は、オペレーションコード(810)を含み、前記オペレーションコード(810)は、前記処理手段によって実行されるべき演算を特定し、前記少なくとも1つの命令のうちの少なくとも1つの命令は、データアイテム(808)を含み、前記データアイテムは、更新されるべき前記システムソフトウェアのシンボルまたはRWデータと更新されたデータとを特定し、
    前記方法は、
    前記処理手段が、前記システムソフトウェアの少なくとも1つのシンボルおよびRWデータと前記パッチマネージャコードセクションとを前記揮発性メモリにロードすることと、
    前記システムソフトウェアの実行中に、
    前記処理手段が
    前記通信インターフェースを介して、前記無線通信ネットワークから前記動的命令セット(470)を受信すること(1003、1103a、1203a、1304、1403a、1503a)と、
    前記動的命令セット(470)を前記ファイルシステムセクション(110)格納することと、
    前記動的命令セッを処理するランタイムエンジンを起動すること(1004、1104、1204、1304、1404、1504)
    行うことと、
    前記処理手段が前記ランタイムエンジンを実行することにより、前記動的命令セット(470)に含まれる各命令を構成する前記オペレーションコード(810)を用いて、実行されるべき演算を特定し、前記動的命令セット(470)に含まれる少なくとも1つの命令を構成する前記データアイテム(808)を用いて、更新されるべきシンボルまたはRWデータを特定することと、
    前記ランタイムエンジン上で前記パッチライブラリを呼び出すことにより、前記特定された演算を実行することであって、前記特定された演算を実行することは、更新されるべき前記特定されたシンボルまたはRWデータを前記更新されたデータに置換すること、または、前記更新されたデータを前記コードセクションまたは前記不揮発性メモリ上のRWデータに追加することにより、更新処理を実行することによって行われ、前記更新の間、更新されるべき前記シンボルを含むコードセクションは無効とされる、ことと、
    前記無線通信デバイをリセットすること
    を包含する、方法。
  2. 前記処理手段が前記ランタイムエンジンの実行に続いて、前記動的命令セット(470)を削除すること(1007)をさらに包含する、請求項1に記載の方法。
  3. 前記オペレーションコードは、条件付きコード、数学的コード、処理コード、論理的コードのうちの少なくとも1つである、請求項1に記載の方法。
  4. 前記通信インターフェーエアリンクインターフェース、無線周波数(RF)ハードライン(160)、インストール可能メモリモジュール(164)、赤外線、Bluetooth(登録商標)、論理ポートインターフェース(162)のうちのいずれか1つである、請求項3に記載の方法。
  5. 前記動的命令セットを受信することは、前記不揮発性メモリのファイルシステムセクションにおいパッチマネージャランタイム命令(PMRTI)(454)を受信することを包含する、請求項1に記載の方法。
  6. 前記処理手段が前記ランタイムエンジンを実行することにより、
    前記パッチマネージャランタイム命令の長さを測定すること(1006b1a)と、
    前記オペレーションコードに応答して、前記パッチマネージャランタイム命令から前記データアイテムを抽出すること(1006b1b)
    を行うことをさらに包含する、請求項5に記載の方法。
  7. 前記システムソフトウェアのシンボルおよびRWデータは、複数のシンボルライブラリを形成し、
    各シンボルライブラリ(310)は、前記複数のコードセクション(302、304、306、308)のうちのコードセクションの開始点において開始アドレスを有するように配置されており、前記シンボルは、それのコードセクション開始アドレスからオフセットされており、
    前記方法は、
    前記処理手段が前記ランタイムエンジンを実行することにより、
    揮発性メモリ(114)に格納されているコードセクションアドレステーブルであって、コードセクションを識別するためのコードセクション識別子と、前記コードセクションの開始アドレスとを照合および記録するためのコードセクションアドレステーブルを用いることと、
    揮発性メモリ(114)に格納されているシンボルオフセットアドレステーブルであって、シンボルを識別するためのシンボル識別子と、前記シンボルが配置されるコードセクションのコードセクション識別子と、前記コードセクションのオフセットアドレスとを照合および記録するためのシンボルオフセットアドレステーブルを用いることと
    を行うことをさらに包含する、請求項に記載の方法。
  8. 前記パッチマネージャランタイム命令を受信することは、シンボル識別子を受信することを包含し、
    前記方法は、
    前記処理手段が前記ランタイムエンジンを実行することにより、前記コードセクションアドレステーブルと前記シンボルオフセットアドレステーブルとを用いることによって、前記受信されたシンボル識別子に対応するシンボルを見つけ出すこと(1006a2)
    を包含し、
    前記見つけ出されたシンボルは、前記更新されたデータと前記実行されるべき演算とを特定する、請求項に記載の方法。
  9. 前記処理手段前記ランタイムエンジンを実行することにより、
    前記オペレーションコードに応答して、
    前記システムソフトウェアの実行をモニタリングすること(1406a)と、
    性能データを収集すること(1406b)と、
    前記性能データを格納すること(1406c)と
    を行うことをさらに包含し、
    前記処理手段が前記システムソフトウェアを実行することは、前記システムソフトウェアの評価の際に前記性能データを用いることを包含する、請求項1に記載の方法。
  10. 前記通信インターフェース(150、160、162、164)が、エアリンクインターフェースを介して前記格納されているデータをシステム中央収集庫に送信すること(1406d)をさらに包含する、請求項に記載の方法。
  11. 前記パッチマネージャランタイム命令を受信すること(1003、1503)は更新されたシステムソフトウェアを生成するために前記複数のコードセクションと共に用いられるべき新しいシンボルおよびRWデータを含む新しいコードセクションを受信することを包含し、
    前記ランタイムエンジン上で前記パッチライブラリを呼び出すことにより、前記特定された演算を実行することは、前記処理手段が前記ランタイムエンジンを実行することにより、前記新しいコードセクションを前記コード格納セクションに追加することを包含し、
    前記処理手段が前記更新されたシステムソフトウェアを実行すること(1010、1510)は、前記更新されたシステムソフトウェアの実行の際に前記新しいコードセクションを用いることを包含する、請求項5に記載の方法。
  12. 前記新しいコードセクションを受信すること(1003、1503)は更新されたシステムソフトウェアを生成するための更新されたシンボルおよびRWデータを含む更新されたコードセクションを受信することを包含し、
    前記ランタイムエンジン上で前記パッチライブラリを呼び出すことにより、前記特定された演算を実行することは、前記処理手段が前記ランタイムエンジンを実行することにより前記複数のコードセクションのうちの第4のコードセクションを前記更新されたコードセクションと置き換えることを包含する、請求項11に記載の方法。
  13. 的命令セットを実行する無線通信デバイス(104)であって
    前記無線通信デバイスは、
    処理手段と、
    通信インターフェースと、
    不揮発性メモリ(108)と、
    揮発性メモリ(114)と
    を含み、
    前記不揮発性メモリは、
    無線通信ネットワークから前記通信インターフェースを介して受信された前記動的命令セットを格納するためのファイルシステムセクションと、
    システムソフトウェアを格納するための複数のコードセクションと、
    ランタイムエンジンと、
    RWデータおよびパッチライブラリを格納するためのパッチマネージャコードセクションと
    を含み、
    前記動的命令セットは、少なくとも1つの命令(800、802、204)を含み、前記命令の各々は、オペレーションコード(810)を含み、前記オペレーションコード(810)は、前記処理手段によって実行されるべき演算を特定し、前記少なくとも1つの命令のうちの少なくとも1つの命令は、データアイテム(808)を含み、前記データアイテムは、更新されるべき前記システムソフトウェアのシンボルまたはRWデータと更新されたデータとを特定し、
    前記処理手段は、
    前記システムソフトウェアの少なくとも1つのシンボルおよびRWデータと前記パッチマネージャコードセクションとを前記揮発性メモリ(114)にロードすることと、
    前記システムソフトウェアの実行中に、
    前記無線通信ネットワークから前記動的命令セット(470)を受信することと、
    前記動的命令セット(470)を前記ファイルシステムセクション(110)格納することと、
    前記動的命令セッを処理するランタイムエンジンを起動すること
    を行い、
    前記ランタイムエンジンを実行することにより、前記動的命令セット(470)に含まれ各命令を構成する前記オペレーションコード(810)を用いて、実行されるべき演算を特定し、前記動的命令セット(470)に含まれる少なくとも1つの命令を構成するデータアイテム(808)を用いて、更新されるべきシンボルまたはRWデータを特定することと、
    前記ランタイムエンジン上で前記パッチライブラリを呼び出すことにより、前記特定された演算を実行することであって、前記特定された演算を実行することは、更新されるべき前記特定されたシンボルまたはRWデータを前記更新されたデータに置換すること、または、前記更新されたデータを前記コードセクションまたは前記不揮発性メモリ上の既存のRWデータに追加することにより、更新処理を実行することによって行われ、前記更新の間、更新されるべき前記シンボルを含むコードセクションは無効とされる、ことと、
    前記無線通信デバイをリセットすることと
    を行うように構成されている、無線通信デバイス(104)。
  14. 前記オペレーションコードは、条件付きコード、数学的コード、処理コード、論理的コードのうちの少なくとも1つである請求項13に記載の無線通信デバイス(104)。
  15. 前記通信インターフェース(150、160、162、164)はエアリンク(150)、無線周波数(RF)ハードライン(160)、インストール可能メモリモジュール(164)、赤外線、論理ポートインターフェース(160)のうちのいずれか1つである、請求項13に記載の無線通信デバイス(104)。
  16. 前記動的命令セット(470)はパッチマネージャランタイム命令(PMRTI)(454)に含まれている、請求項13に記載の無線通信デバイス(104)。
  17. 前記処理手段は、前記ランタイムエンジンを実行することにより、
    動的命令セット(800、802、804)の長さ(806)を測定することにより、前記データアイテム(808)が含まれているか否かを判定することと、
    前記動的命令セット(800、802、804)から前記データアイテムを(808)抽出することと
    を行うようにさらに構成されている、請求項15に記載の無線通信デバイス(104)。
  18. 前記システムソフトウェアのシンボルおよびRWデータは、複数のシンボルライブラリを形成し、前記複数のシンボルライブラリは、前記コードセクション(302、304、306、308)の開始点(318、320、322、324、408、410、412、414)において開始するように配置されており、前記シンボルは、それのそれぞれのコードセクション開始アドレス(318、320、322、324、408、410、412、414)からオフセットされており、
    前記パッチマネージャコードセクション(308は、
    コードセクションを識別するためのコードセクション識別子と、前記コードセクションの開始アドレスとを照合および記録するためのコードセクションアドレステーブルと、
    シンボルを識別するためのシンボル識別子と、前記シンボルが配置されるコードセクションのコードセクション識別子と、前記コードセクションのオフセットアドレスとを照合および記録するためのシンボルオフセットアドレステーブルと
    含む、請求項17に記載の無線通信デバイス(104)。
  19. 前記動的命令セット(470)は、シンボル識別子を含み、
    前記処理手段が前記ランタイムエンジンを実行することにより、前記コードセクションアドレステーブル(326)と前記シンボルオフセットアドレステーブル(328)とを用いて、前記シンボル識別子に対応するシンボルを見つけ出すことを行い、
    前記見つけ出されたシンボルは、前記更新されたデータと前記実行されるべき演算とを特定する、請求項18に記載の無線通信デバイス(104)。
  20. 前記処理手段が前記ランタイムエンジンを実行することにより、
    前記システムソフトウェアの実行をモニタリングすることと、
    性能データを収集することと、
    前記オペレーションコード(810)に応答して、前記ファイルシステムセクション(110)に前記性能データを格納することと
    を行い、
    前記処理手段は、前記システムソフトウェアの評価のために前記性能データを収集することによって前記システムソフトウェアを実行する、請求項15に記載の無線通信デバイス(104)。
  21. 前記処理手段が前記ランタイムエンジンを実行することにより、前記ファイルシステムセクション(110)から前記性能データにアクセスすることを行い、
    前記通信インターフェース(150、160、162、164)が、前記オペレーションコード(810)に応答して、エアリンクインターフェース(150)を介して前記性能データをシステム中央収集庫に送信する、請求項20に記載の無線通信デバイス(104)。
  22. 前記ファイルシステムセクション(110)は、前記システムソフトウェアを生成するために前記複数のコードセクションと共に用いられるべき新しいシンボルおよびRWデータを含む新しいコードセクション(450)を含むパッチマネージャランタイム命令(200、454)を前記通信インターフェース(150、160、162、164)を介して受信し、
    前記処理手段が前記ランタイムエンジンを実行することにより、前記オペレーションコード(810)に応答して、前記新しいコードセクション(450)を前記複数のコード格納セクショに追加することを行い、
    前記処理手段は、前記新しいコードセクション(450)を用いて前記システムソフトウェアを実行する、請求項15に記載の無線通信デバイス(104)。
  23. 前記ファイルシステムセクション(110)は、前記システムソフトウェアを生成するための更新されたシンボルおよびRWデータを含む更新されたコードセクション(450、452、474)を含むパッチマネージャランタイム命令(200、454)を前記通信インターフェース(150、160、162、164)を介して受信し、
    前記処理手段が前記ランタイムエンジンを実行することにより、前記オペレーションコード(810)に応答して前記複数のコードセクションのうちの第4のコードセクションを前記更新されたコードセクション(450、452、474)と置き換えることを行い、
    前記処理手段は、前記更新されたコードセクション(450、452、474)を用いて前記システムソフトウェアを実行する、請求項22に記載の無線通信デバイス(104)。
JP2009230033A 2001-07-26 2009-10-01 動的命令セットを実行する方法および無線通信デバイス Expired - Fee Related JP4953475B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US09/916,460 US7159214B2 (en) 2001-07-26 2001-07-26 System and method for compacting field upgradeable wireless communication device software code sections
US09/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
US09/916,460 2001-07-26
US09/916,900 2001-07-26
US09/916,900 US7027806B2 (en) 2001-07-26 2001-07-26 System and method for field downloading a wireless communications device software code section
US09/917,026 2001-07-26
US09/927,131 2001-08-10
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
US09/969,305 US7386846B2 (en) 2001-07-26 2001-10-02 System and method for the management of wireless communications device system software downloads in the field
US09/969,305 2001-10-02

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003515964A Division JP2004537120A (ja) 2001-07-26 2002-07-22 無線通信デバイスに関する更新命令を実行するためのシステムおよび方法

Publications (3)

Publication Number Publication Date
JP2010044775A JP2010044775A (ja) 2010-02-25
JP2010044775A5 JP2010044775A5 (ja) 2010-11-11
JP4953475B2 true JP4953475B2 (ja) 2012-06-13

Family

ID=33163011

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008033838A Expired - Fee Related JP4728359B2 (ja) 2001-07-26 2008-02-14 ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法
JP2008220523A Expired - Fee Related JP4953465B2 (ja) 2001-07-26 2008-08-28 無線通信デバイスシステムソフトウエアダウンロードの管理のための方法およびデバイス
JP2009230033A Expired - Fee Related JP4953475B2 (ja) 2001-07-26 2009-10-01 動的命令セットを実行する方法および無線通信デバイス

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2008033838A Expired - Fee Related JP4728359B2 (ja) 2001-07-26 2008-02-14 ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法
JP2008220523A Expired - Fee Related JP4953465B2 (ja) 2001-07-26 2008-08-28 無線通信デバイスシステムソフトウエアダウンロードの管理のための方法およびデバイス

Country Status (5)

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

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8479189B2 (en) * 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7725889B2 (en) 2003-01-13 2010-05-25 Hewlett-Packard Development Company, L.P. Mobile handset capable of updating its update agent
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
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US7082549B2 (en) * 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
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
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
US7536181B2 (en) * 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) 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
US7555750B1 (en) 2002-08-22 2009-06-30 Hewlett-Packard Development Company, L.P. Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
US7340736B2 (en) * 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US7472380B1 (en) 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US7461372B2 (en) * 2002-10-11 2008-12-02 Hewlett-Packard Development Company, L.P. System for optimizing distribution of information employing a universal dictionary
AU2003284292A1 (en) * 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
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
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
US20040093592A1 (en) 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
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
US7921182B2 (en) * 2002-12-31 2011-04-05 Hewlett-Packard Development Company, L.P. Management of service components installed in an electronic device in a mobile services network
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
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
WO2004066091A2 (en) * 2003-01-21 2004-08-05 Bitfone Corporation 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
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
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
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
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
WO2004086196A2 (en) * 2003-03-24 2004-10-07 Bitfone Corporation Electronic device supporting multiple update agents
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7747994B1 (en) 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
US7644404B2 (en) 2003-06-04 2010-01-05 Hewlett-Packard Development Company, L.P. Network having customizable generators and electronic device having customizable updating software
US7584466B1 (en) 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
US8572597B2 (en) * 2003-06-20 2013-10-29 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
EP1639435A4 (en) * 2003-06-27 2009-12-30 Hewlett Packard Development Co SYSTEM AND METHOD FOR DOWNLOADING UPDATE PACKAGES INTO A MOBILE HAND APPARATUS IN A CARRIER NETWORK
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
WO2005008940A2 (en) * 2003-07-09 2005-01-27 Bitfone Corporation 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
US7694293B2 (en) 2003-09-26 2010-04-06 Hewlett-Packard Development Company, L.P. Update package catalog for update package transfer between generator and content server in a network
US20050153741A1 (en) * 2003-10-03 2005-07-14 Shao-Chun Chen Network and method for registration of mobile devices and management of the mobile devices
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
US7689982B1 (en) 2004-05-07 2010-03-30 Hewlett-Packard Development Company, L.P. Transparent linker profiler tool with profile database
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
GB2414138B (en) * 2004-05-12 2006-11-22 Nec Technologies Software update apparatus and method
US7657886B1 (en) 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US7609650B2 (en) * 2004-07-08 2009-10-27 Carrier Iq, Inc. Collection of data at target wireless devices using data collection profiles
US7551922B2 (en) * 2004-07-08 2009-06-23 Carrier Iq, Inc. Rule based data collection and management in a wireless communications network
US20060023642A1 (en) * 2004-07-08 2006-02-02 Steve Roskowski Data collection associated with components and services of a wireless communication network
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US20060175271A1 (en) * 2005-01-31 2006-08-10 Emrey David A Apparatus and method of holding a golf score card and writing instrument, and golf bag and system incorporating the same
US8010100B2 (en) * 2005-03-15 2011-08-30 Mformation Technologies, Inc. System and method for monitoring and measuring end-to-end performance using wireless devices
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
US7861225B2 (en) * 2005-05-31 2010-12-28 Qualcomm Incorporated System and method to combine debugging messages from diverse applications or operating systems executed within a mobile device
US7729326B2 (en) * 2005-05-31 2010-06-01 Symbol Technologies, Inc. Wireless network system with wireless access ports
CN101248680B (zh) * 2005-07-05 2012-06-27 凯锐恩Iq公司 在无线通信网络中基于规则的数据收集和管理
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
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
WO2008022198A2 (en) * 2006-08-15 2008-02-21 Hewlett-Packard Development Company, L.P. 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 (en) * 2014-11-21 2016-05-25 Gemalto M2M GmbH Method to operate a wireless communication unit
US10567302B2 (en) * 2016-06-01 2020-02-18 At&T Intellectual Property I, L.P. Enterprise business mobile dashboard
US10831641B2 (en) 2016-09-08 2020-11-10 At&T Intellectual Property I, L.P. Method and apparatus for determining a performance impact by a software upgrade of a mobile user endpoint device
US11206527B2 (en) * 2016-12-13 2021-12-21 Deutsche Telekom Ag Method for provisioning enhanced communication capabilities to user equipment
US10795659B1 (en) * 2017-11-02 2020-10-06 Virtuozzo International Gmbh System and method for live patching processes in user space
CN111542037B (zh) * 2020-05-11 2023-07-21 深圳康盈半导体科技有限公司 指令传输方法、装置及存储介质
CN111641610B (zh) * 2020-05-19 2023-04-07 深信服科技股份有限公司 远程响应和远程控制方法、装置、设备及存储介质
TWI786543B (zh) * 2021-02-17 2022-12-11 韋僑科技股份有限公司 無線通訊模組及其應用裝置控制系統與應用裝置控制方法

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852047A (en) * 1987-04-14 1989-07-25 Universal Automation Inc. Continuous flow chart, improved data format and debugging system for programming and operation of machines
GB8901932D0 (en) 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
US5046082A (en) * 1990-05-02 1991-09-03 Gte Mobile Communications Service Corporation Remote accessing system for cellular telephones
FR2662891A1 (fr) 1990-05-30 1991-12-06 Cit Alcatel Dispositif de telechargement de logiciel pour un terminal de telecommunication.
EP0532643B1 (en) * 1990-06-04 1998-12-23 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
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
AU687996B2 (en) * 1994-02-24 1998-03-05 Gte Wireless 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
US6643506B1 (en) * 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US6308061B1 (en) * 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
WO1998009208A2 (en) 1996-08-28 1998-03-05 Wind River Systems, Inc. A tool for software diagnosis divided across multiple processors
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
US6934532B2 (en) * 2000-02-09 2005-08-23 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 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
AU2001253201A1 (en) * 2000-04-05 2001-10-23 Pavilion Technologies Inc. System and method for enterprise modeling, optimization and control
KR100385925B1 (ko) 2000-05-09 2003-06-02 주식회사 인포핸드 멀티미디어 데이터 처리를 위한 디지털 휴대 전화 단말기 및 멀티미디어 데이터 콘텐츠의 실행 방법과 멀티미디어 데이터 콘텐츠 제공 방법
US6549770B1 (en) * 2000-05-26 2003-04-15 Cellco Partnership Over the air programming and/or service activation
JP2001356925A (ja) * 2000-06-12 2001-12-26 Nec Corp 携帯電話機
JP2002024029A (ja) * 2000-07-11 2002-01-25 Toshiba Corp コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6370455B1 (en) * 2000-09-05 2002-04-09 Hunter Engineering Company Method and apparatus for networked wheel alignment communications and service
AU8879601A (en) * 2000-09-07 2002-03-22 A2Q Inc Method and system for high speed wireless data transmission and reception
EP1327191B1 (en) * 2000-09-22 2013-10-23 Lumension Security, Inc. 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
WO2002075573A1 (en) * 2001-03-19 2002-09-26 Microsoft Corporation System and method for communications management and data exchange
US6442660B1 (en) * 2001-03-21 2002-08-27 Sharp Laboratories Of America, Inc. Dynamic system relocation based on availability of system memory
WO2002077855A1 (en) * 2001-03-23 2002-10-03 Arizan Corporation Systems and methods for content delivery over a wireless communication medium to a portable computing device
US6968546B2 (en) * 2001-03-30 2005-11-22 Intel Corporation Debugging support using dynamic re-compilation
EP1374040A1 (en) * 2001-03-30 2004-01-02 Nokia Corporation 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
EP1410191A2 (en) * 2001-07-26 2004-04-21 Kyocera Wireless Corporation 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
US7184793B2 (en) * 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
NZ531132A (en) * 2001-08-15 2006-10-27 Qualcomm Inc Test enabled application for executing an application on a wireless device
US7237234B2 (en) * 2001-12-13 2007-06-26 Texas Instruments Incorporated Method for selective solicitation of user assistance in the performance tuning process
US7140007B2 (en) * 2002-01-16 2006-11-21 Xerox Corporation Aspect-oriented programming with multiple semantic levels
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US7221939B2 (en) 2002-08-16 2007-05-22 Nokia Corporation System, method, and apparatus for automatically selecting mobile device profiles
CA2408457A1 (en) * 2002-10-17 2004-04-17 Ibm Canada Limited-Ibm Canada Limitee Collection and detection of differences of values of expressions/variables when debugging a computer process
US20040249657A1 (en) 2003-03-14 2004-12-09 Nir Kol Synergy realization
US7401323B2 (en) * 2003-04-21 2008-07-15 Microsoft Corporation Just-My-Code debugging
US20040240657A1 (en) 2003-05-28 2004-12-02 Camarillo David W. Technique for selecting switched connections for distributing calls through an information assistance provider
US7305666B2 (en) * 2003-07-23 2007-12-04 Microsoft Corporation Description language for an extensible compiler and tools infrastructure
US20040266422A1 (en) 2003-06-30 2004-12-30 Hotze Karen Ann Method for providing call completion following a call to an improper called number in a wireless communications system
US7565141B2 (en) * 2003-10-08 2009-07-21 Macaluso Anthony G Over the air provisioning of mobile device settings
US7287243B2 (en) * 2004-01-06 2007-10-23 Hewlett-Packard Development Company, L.P. Code verification system and method
US7359831B2 (en) * 2004-05-21 2008-04-15 Bea Systems, Inc. Diagnostic context
US7647586B2 (en) * 2004-08-13 2010-01-12 Sun Microsystems, Inc. System and method for providing exceptional flow control in protected code through watchpoints
US7730453B2 (en) * 2005-12-13 2010-06-01 Microsoft Corporation Runtime detection for invalid use of zero-length memory allocations
US7694282B2 (en) * 2006-12-12 2010-04-06 Arkhipov Mikhail E Mapping breakpoints between web based documents

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4953475B2 (ja) 動的命令セットを実行する方法および無線通信デバイス
JP4176634B2 (ja) 無線通信デバイスシステムソフトウェアの現場診断のためのシステムおよび方法
US7386846B2 (en) System and method for the management of wireless communications device system software downloads in the field
US7328007B2 (en) System and method for organizing wireless communication device system software
US9554268B2 (en) System and method for updating persistent data in a wireless communications device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110818

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120312

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees