[go: up one dir, main page]

JP4073399B2 - 無線通信デバイスのソフトウェアコードセクションを現場ダウンロードするシステムおよび方法 - Google Patents

無線通信デバイスのソフトウェアコードセクションを現場ダウンロードするシステムおよび方法 Download PDF

Info

Publication number
JP4073399B2
JP4073399B2 JP2003515970A JP2003515970A JP4073399B2 JP 4073399 B2 JP4073399 B2 JP 4073399B2 JP 2003515970 A JP2003515970 A JP 2003515970A JP 2003515970 A JP2003515970 A JP 2003515970A JP 4073399 B2 JP4073399 B2 JP 4073399B2
Authority
JP
Japan
Prior art keywords
code
code section
symbol
section
updated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003515970A
Other languages
English (en)
Other versions
JP2004537123A (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/917,026 external-priority patent/US7328007B2/en
Priority claimed from US09/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/927,131 external-priority patent/US7143407B2/en
Priority claimed from US09/969,305 external-priority patent/US7386846B2/en
Application filed by キョウセラ ワイヤレス コープ. filed Critical キョウセラ ワイヤレス コープ.
Publication of JP2004537123A publication Critical patent/JP2004537123A/ja
Application granted granted Critical
Publication of JP4073399B2 publication Critical patent/JP4073399B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Transceivers (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)
  • Sub-Exchange Stations And Push- Button Telephones (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Circuits Of Receivers In General (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Debugging And Monitoring (AREA)
  • Selective Calling Equipment (AREA)

Description

本発明は、一般的には、無線通信デバイスに関し、より詳細には、エアリンクインターフェースを介して、現場における無線通信デバイスのシステムソフトウェアにおいてコードセクションを更新するシステムおよび方法に関する。
(関連技術の説明)
現場に既に存在するフォンに対してソフトウェア更新をリリースすることは珍しくはない。これらの更新は、一度フォンが製造され公に流通されてからソフトウェアに見つけられた問題に関連し得る。ある更新には、サービスプロバイダかから供給されたフォンの新機能の用途またはサービスが含まれ得る。さらに他の更新は、地域的な問題、またはある通信事業者に関連する問題に関係し得る。例えば、ある地域では、通信事業者のネットワークレイアウトが、より不適切なチャンネル検索、より不適切なコールの終了、より不適切なオーディオまたはこれと同等の予期していない動作をハンドセットに示させる、ハンドセットにエアリンクインターフェース条件を課し得る。
このような更新に対する従来のアプローチは、最も近い通信事業者小売店/サービスアウトレットまたは製造業者に、本明細書中で無線デバイス、フォン、電話、またはハンドセットと呼ばれている無線通信デバイスを、その変更を処理するためにリコールすることであった。このような更新に含まれるコストは、広範囲に渡り、最終結果へ食い込む。さらに、顧客は、不便であり、いらいらさせられがちである。多くの場合、実際的なソリューションは、顧客に新しいフォンを提供することである。
顧客に不便さなく、無線通信デバイスソフトウェアが安価でアップグレードされ得れば、より有利である。
無線通信デバイスソフトウェアが、顧客が重要な期間のフォンの利用を失うことなく、アップグレードされ得れば、より有利である。
無線通信デバイスソフトウェアが、最小の専門家のサービス時間で、または、サービス設備へデバイスを送る必要なく更新され得れば、より有利である。
無線デバイスシステムソフトウェアが、コードセクションに区分され得、システムソフトウェアの特定のコードセクションのみがシステムソフトウェアを更新するために置き換えられる必要があれば、より有利である。これらのコードセクションが、エアリンクを介して無線デバイスに通信され得れば、より有利である。
(発明の要旨)
無線通信デバイスソフトウェア更新は、顧客にできる限り最良の製品およびユーザ経験を与える。本商業界の高価な部分とは、ソフトウェアを更新するためにハンドセットのリコールを含むことである。これらの更新は、フォンが製造された後に、ユーザに付加的なサービスを提供し、フォンの利用中に発見された問題を処理するために必要とし得る。本発明は、エアリンクインターフェースを介して、現場のハンドセットソフトウェアを実際に更新することを可能にする。
従って、無線通信デバイスのメモリに格納されるシステムソフトウェアを更新するための方法が提供された。本方法は、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、シンボルアクセサコード、パッチライブラリ、および複数のシンボルライブラリのリード−ライトデータを含む第1の複数のシンボルライブラリにシステムソフトウェアを形成するステップと、パッチマネージャコードセクションに、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、シンボルアクセサコード、パッチライブラリ、リード−ライトデータ、およびシンボルアクセサコードアドレスを配置するステップと、複数の現在のコードセクションに無線デバイスのためのシステムソフトウェアを格納するステップと、無線通信デバイスのエアインターフェースを介して新しいコードセクションを受信するステップと、メモリファイルシステムセクションに新しいコードセクションを格納するステップと、更新するために現在のコードセクションを識別するステップと、現在のコードセクションを新しいコードセクションに置き換えて、無線デバイスのための更新したシステムソフトウェアを形成するステップと、更新されたシステムソフトウェアを実行するステップとを包含する。
本発明のいくつかの局面において、新しいコードセクションを受信するステップは、新しいパッチマネージャコードセクションを受信するステップを包含し、現在のコードセクションを新しいコードセクションに置き換えて、無線デバイスの更新したシステムソフトウェアを形成するステップは、現在のパッチマネージャコードセクションを新しいパッチマネージャコードセクションに置き換えるステップを包含する。無線デバイスシステムソフトウェアを更新するための上述の方法およびシステムソフトウェアを更新するための無線デバイスシステムのさらなる詳細は、以下に詳細に提示される。
以下の詳細な説明のいくつかの部分は、無線デバイスマイクロプロセッサまたはメモリ内のデータビットにおける動作の手順、ステップ、ロジックブロック、コード、処理、および、他のシンボリックな表現ついて示される。これらの記述および表現は、データ処理技術の当業者によって利用される手段であって、これらは、当該の別の技術者に仕事の実質を最も効果的に提供するためのものである。手順、マイクロプロセッサに実行されるステップ、アプリケーション、ロジックブロック、プロセス等は、本明細書中において、および一般的に、所望の結果を導くステップまたは命令の一貫したシーケンスであると考えられる。本ステップは、物理量(quantity)の物理的操作を要求するステップである。通常、必須ではないが、これらの量は、マイクロプロセッサに基づく無線デバイスにおいて、格納、伝達、結合、比較、およびそうでなければ操作され得る電気または磁気信号の形式を取り得る。これらの信号をビット、値、エレメント、シンボル、文字、用語、または数字等として示すことは、原則的に共通の用法で、時には便利であることが証明されている。メモリ等の物理的デバイスについて言及される場合、それらは、バスまたは他の電気接続を介して他の物理的デバイスに接続される。これらの物理的デバイスは、論理的プロセスまたはアプリケーションと相互作用し、従って、論理的演算に「接続される」と考えられ得る。例えば、メモリはさらなる論理演算に対するコードを格納またはアクセスし得る。
しかし、尚、全てのこれらおよび同様の用語は、適切な物理量に関連すべきであり、単にこれらの量に適用される便利なラベルにすぎない。他に特別に述べられない限り、以下の説明から明らかなように、本発明を通して、「処理」「接続」「翻訳」「表示」「プロンプト」「判定」「表示」または「認識」等の用語を利用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電気的)量として示されるデータを無線デバイスメモリまたはレジスタまたは他のこのような情報格納デバイス、送信デバイスまたは表示デバイス内の物理量として同様に示される他のデータへ操作して変換する、無線デバイスマイクロプロセッサシステムのアクションおよびプロセスを示す。
図1は、無線デバイスソフトウェアメンテナンスシステム全体100の概略的なブロック図である。本発明のシステムソフトウェアの組織化は、以下に詳細に示され、ソフトウェアメンテナンスシステムの一般的概要100に従う。一般的なシステム100は、システムソフトウェア更新および命令セット(プログラム)を送達するステップ、および送達されたソフトウェアを無線デバイスにインストールするステップのプロセスについて記述する。システムソフトウェア更新またはパッチメーカ命令セット(PMIS)は、ハンドセットの製造業者によって作成される。システムソフトウェアは、シンボルライブラリに組織化される。シンボルライブラリは、コードセクション内に配置される。シンボルライブラリが更新される場合、ソフトウェア更新102は、1つ以上のコードセクションとしてトランスポートされる。ソフトウェア更新は、現場の無線デバイス(無線通信デバイス104はその代表である)にブロードキャストされるか、または、公知の従来の空中でかつ、データまたはメッセージトランスポートプロトコルを利用して基地局106から別々の通信で送信される。本発明は、無線通信デバイスが、システムソフトウェアおよびPMIS更新を受信する目的のために、任意の利用可能な空中を介した(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は、本明細書中でパッチーカ命令セット(PMIS)と呼ばれる、命令セットまたはプログラムをダウンロードおよびインストールし得る。PMISコードセクション、上述の更新されたコードセクションと同一の態様で無線デバイス104にトランスポートされる。PMISコードセクションは、最初にFSS110に格納される。PMISコードセクションは、通常ハンドセットへのコンパイルされた命令として思い描くことが可能なバイナリフィアルである。PMISコードセクションは、基本数学的演算の性能および条件付きで実行される演算の性能を提供するのに十分に包括的である。例えば、RF調整PMISは、以下の動作を実行し得る。
Figure 0004073399
PMISは、加算、減算、乗算、および除算等の基本数学的演算をサポートし得る。システムソフトウェアコードセクションと共に、PMISコードセクションは、UIプロンプトに応答してロードされ得、無線デバイスは、PMISがコード格納セクション112へロードされた後、リセットされなくてはならない。その後、PMISセクションは、実行され得る。PMISコードセクションが任意の仮想テーブルまたはリード−ライトデータと関連する場合、更新されたパッチマネージャコードセクションは、コード格納セクション112インストールされるようにPMISを用いてトランスポートされる。もしくは、PMISは、保持されて、FSS110から処理され得る。ハンドセット104は、PMISセクションにおける全ての命令を実行した後、PMISセクションは、FSS110から削除され得る。
本発明のある局面では、システムソフトウェアを複数のシンボルライブラリとして構成することは、実行のために要求される揮発性メモリ114および不揮発性メモリ108のサイズに影響をし得る。これは、コードセクションが、コードセクション内に配置されるシンボルライブラリよりも典型的には大きいという事実による。これらのより大きいコードセクションが存在するのは、更新されたコードセクションを収容するためである。システムソフトウェアのライブラリのコレクションとしての組織化は、不揮発性メモリサイズ要件に影響する。同一のコードサイズに対して、利用される不揮発性メモリの量は、コードセクションが、内部に配置されるシンボルライブラリよりも大きくなるようにサイズ合わせし得るという事実により、より大きくなる。
PMISは、非常に強力なランタイム命令エンジンである。ハンドセットは、PMIS環境を介してハンドセットに送達される任意の命令を実行し得る。このメカニズムは、RF調整およびPRI更新をサポートするために利用され得る。より一般的には、PMISが利用され、典型的にはユーザの不満の結果等のソフトウェア問題が製造業者またはサービスプロバイダによって認識される場合、無線デバイスソフトウェアをリモートデバックし得る。PMISはまた、ソフトウェアの問題を診断するために必要なデータを記録できる。PMISは、データ解析、デバック、および修正用の新しくダウンロードされたシステムアプリケーションを起動し得る。PMISは、更新されたシステムソフトウェアコードセクションの代わりに、ある問題に対する解析およびできる限り短い時間での修正のためのRWデータをベースにした更新を提供し得る。PMISは、無線デバイスによる利用のためにメモリ圧縮アルゴリズムを提供し得る。
一旦、ソフトウェア更新が、無線デバイスに送達されると、ソフトウェアメンテナンスシステム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のパッチメーカ命令セット(PMIS)454を受信する。図1に示されるように、エアリンクインターフェース150は、新しいか、または更新されたコードセクション、ならびに、第1のPMISを受信する。エアリンクインターフェース150はアンテナによって表されているが、エアリンクインターフェースはまた、RFトランシーバ、ベースバンド回路部、および復調回路部(図示せず)を含むことは理解されるべきである。ファイルシステムセクション110は、エアリンクインターフェース150を介して受信される新しいコードセクションを格納する。リード−ライト揮発性メモリ114から実行するパッチライブラリ336は、ファイルシステムセクション110における、例えば、コードセクション450のような更新されたコードセクションによって、コード格納セクション112における、例えば、コードセクションn(306)のような第1のコードセクションを上書きする。概して、パッチマネージャコードセクション308は、更新されたパッチマネージャコードセクション452で置き換えられる。コードセクションが置き換えられると、パッチライブラリ336は、例えば、更新されたコードセクションを用いてコード格納セクション112におけるコードセクションn(306)、例えば、ファイルシステムセクション110におけるコードセクション450といった第1のコードセクションを上書きする。極端な場合には、コード格納セクション112における全てのコードセクションは、更新されたコードセクションで置き換えられる。すなわち、FSS110は、第2の複数の更新されたコードセクション(図示せず)を受信して、パッチライブラリ336は、コード格納セクション112における第2の複数のコードセクションを第2の複数の更新されたコードセクションで置き換える。もちろん、FSS110は、エアリンクインターフェースを介して受信された第2の複数の更新されたコードセクションを収容するほど十分大きくなる必要がある。
上述されるように、受信される更新されたコードセクションは、リード−ライトデータコードセクション、コードセクションのアドレステーブルコードセクション、シンボルライブラリ、シンボルオフセットアドレステーブルコードセクション、シンボルアクセサコードセクション、または新しいパッチライブラリを有するコードセクションを含み得る。これらの関連付けられたシンボルライブラリおよびシンボルを有する全てのこれらのコードセクションは、別個の、かつ、独立したコードセクションとして格納され得る。次に、これらのコードセクションの各々は、固有の更新されたコードセクションで置き換えられる。すなわち、更新されたリード−ライトコードセクションが受信され、コード格納セクションにおけるリード−ライトコードセクションを置き換える。更新されたコードセクションのアドレステーブルコードセクションが受信され、コード格納セクションにおけるコードセクションアドレステーブルコードセクションを置き換える。更新されたシンボルオフセットアドレステーブルコードセクションが受信され、コード格納セクションにおけるシンボルオフセットアドレステーブルコードセクションを置き換える。更新されたシンボルアクセサコードセクションが受信され、コード格納セクションにおけるシンボルアクセサコードセクションを置き換える。同様に、(パッチライブラリを有する)更新されたパッチマネージャコードセクションが受信され、コード格納セクションにおけるパッチマネージャコードセクションを置き換える。
しかし、上述のコードセクションは、概して、パッチマネージャコードセクションにおいて共に束ねられる。従って、パッチマネージャコードセクション308が、更新されたパッチマネージャコードセクション452で置き換えられる場合、コード格納セクションにおけるリード−ライトコードセクションは、ファイルシステムセクション110からの更新されたリード−ライトコードセクションで置き換えられる。同様に、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、シンボルアクセサコードセクション、およびパッチライブラリは、更新されたパッチマネージャコードセクション452がインストールされた場合に置き換えられる。新しいリード−ライトデータ、新しいコードセクションアドレステーブル、新しいシンボルオフセットアドレステーブル、新しいシンボルアクセサコード、および更新されたパッチマネージャコードセクション452のような新しいパッチライブラリの配置は、コード格納セクションにおける現在のコードセクションと共に更新された実行可能なシステムソフトウェアを形成する。ファイルシステムセクション110が更新されたシンボルアクセサコードアドレスを受信する場合、パッチマネージャは、更新されたシンボルアクセサコードアドレスを用いてメモリの第1の位置におけるシンボルアクセサコードアドレスを置き換える。上述されるように、メモリ334の第1の位置は、概して、パッチマネージャコードセクションにある(図3を参照されたい)。
図8a〜8cは、無線通信デバイスメモリのシステムソフトウェアを更新するための本発明の方法を示すフローチャートである。本方法は、簡単のためにナンバリングされたステップのシーケンスとして示されるが、明確に記述されない限り、順序は、ナンバリングから推論されるべきではない。本方法は、ステップ800で開始する。ステップ802は、システムソフトウェアを第1の複数のシンボルライブラリへ形成し、各シンボルライブラリは、少なくとも1つのシンボルを含む。さらに、第1の複数のシンボルライブラリにシステムソフトウェアを形成するステップは、関連した機能を有するシンボルを含む各シンボルライブラリを含む。ステップ804は、第1の複数のシンボルライブラリを第2の複数のコードセクションへ配置する。ステップ806は、複数の現在のコードセクションに無線デバイスのシステムソフトウェアを格納する。ステップ808は、無線通信デバイスエアインターフェースを介して新しいコードセクションを受信する。ステップ810は、現在のコードセクションを用いて新しいコードセクションを配置し、無線デバイスの更新されたシステムソフトウェアを形成する。ステップ812は、更新されたシステムソフトウェアを実行する。本発明のいくつかの局面において、ステップ809は、更新するための第1のコードセクションを識別する。次に、ステップ810において、現在のコードセクションを用いて新しいコードセクションを配置するステップは、新しいコードセクションを用いて第1のコードセクションを置き換えるステップを包含する。ステップ812において更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に新しいコードセクションを用いるステップを包含する。ステップ806が、第2の複数の現在のコードセクションに無線デバイスのためのシステムソフトウェアを格納し、第2の複数の更新されたコードセクションがステップ808において受信される場合、次にステップ810は、第2の複数の更新されたコードセクションを用いて、第2の複数の現在のコードセクションを置き換えるステップを包含し、ステップ812は、更新されたシステムソフトウェアを実行する際に第2の複数の更新されたコードセクションを用いる。
いくつかの局面において、ステップ802において第1の複数のシンボルライブラリにシステムソフトウェアを形成するステップは、複数のシンボルライブラリのためのリード−ライトデータを形成するステップを包含する。次に、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、共有されたリード−ライトコードセクションにおいてリード−ライトデータを配置するステップを包含する。ステップ808において新しいコードセクションを受信するステップは、更新されたリード−ライトコードセクションを受信するステップを包含し、ステップ809において更新するための第1のコードセクションを識別するステップは、リード−ライトコードセクションを識別するステップを包含する。ステップ810において更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、更新されたリード−ライトコードセクションでリード−ライトコードセクションを置き換えるステップを包含する。ステップ812において更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に更新されたリード−ライトコードセクションを用いるステップを包含する。本発明のいくつかの局面において、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、コードセクションの開始点においてシンボルライブラリを開始するステップを包含する。ステップ806において複数の現在のコードセクションに無線デバイスのためのシステムソフトウェア格納するステップは、対応する開始アドレスにコードセクションの開始点を格納するステップを包含する。次に、さらなるステップであるステップ807aは、対応する開始アドレスを用いてコードセクション識別子を相互参照するコードセクションアドレステーブルを保持する。
本発明のいくつかの局面において、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、その各コードセクションの開始点アドレスからのオフセットになるようにそれぞれのシンボルを配置するステップを包含する。次に、さらなるステップ、ステップ807bは、対応するオフセットアドレスおよび対応するコードセクション識別子を用いてシンボル識別子を相互参照するシンボルオフセットアドレステーブルを保持する。
ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、サブステップを含む。ステップ804aは、第1のテーブルコードセクションにおいてコードセクションアドレステーブルを配置し、ステップ804bは、第2のテーブルコードセクションにおいてシンボルオフセットアドレステーブルを配置する。ステップ808において更新されたコードセクションを受信するステップは、更新された第1のテーブルコードセクションおよび更新された第2のテーブルコードセクションを受信するステップを包含する。ステップ810において更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、更新された第1のテーブルコードセクションで第1のテーブルコードセクションを置き換えて、更新された第2のテーブルコードセクションで第2のテーブルコードセクションを置き換えるステップとを包含する。ステップ812における更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に更新された第1のテーブルコードセクションと更新された第2のコードセクションを用いるステップを包含する。
本発明のいくつかの局面において、ステップ802で第1の複数のシンボルライブラリにシステムソフトウェアを形成するステップは、パッチライブラリまたはパッチシンボルライブラリを形成するステップを包含する。ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、パッチマネージャコードセクションにパッチライブラリを配置するステップを包含する。無線デバイスの更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、サブステップを含む。ステップ810aは、パッチマネージャコードセクションにアクセスする。ステップ810bは、新しいコードセクションを格納するためにパッチライブラリを呼び出す。ステップ810bにおいて新しいコードセクションを格納するためにパッチライブラリを呼び出すステップは、概して、新しいコードセクションを用いて第1のコードセクションを上書きするためにパッチライブラリを呼び出すステップを包含する。
いくつかの局面において、ステップ808において新しいコードセクションを受信するステップの後のステップ808aは、メモリファイルシステムセクションに新しいコードセクションを格納する。ステップ810において更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、メモリファイルシステムセクションに格納された新しいコードセクションを用いて第1のコードセクションを上書きするためにパッチライブラリを呼び出すステップを包含する。
本発明の他の局面において、ステップ808で新しいコードセクションを受信するステップは、更新されたパッチマネージャコードセクションを受信するステップを包含する。ステップ810において更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、更新されたパッチマネージャコードセクションでパッチマネージャコードセクションを置き換えるステップを包含する。ステップ812において更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に更新されたパッチマネージャコードを用いるステップを包含する。
一般に、ステップ804は、パッチマネージャコードセクションにおいてリード−ライトデータ、コードセクションアドレステーブル、およびシンボルオフセットアドレステーブルを配置するステップを包含する。次に、ステップ808において更新されたパッチマネージャコードセクションを受信するステップは、更新されたシンボルオフセットアドレステーブル、更新されたコードセクションアドレステーブル、および更新されたリード−ライトデータを受信するステップを包含する。本発明のいくつかの局面において、ステップ802において第1の複数のシンボルライブラリにシステムソフトウェアを形成するステップは、シンボルアクセサコードを形成するステップを包含し、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、パッチマネージャコードセクションにおいてシンボルアクセサコードを配置するステップを包含する。次に、さらなるステップ、ステップ806aは、メモリ内の第1の位置にシンボルアクセサコードアドレスを格納する。ステップ812において更新されたシステムソフトウェアを実行するステップは、サブステップを含む。ステップ812aは、リード−ライト揮発性メモリ(一般にRAM)に第3の複数のシンボルライブラリをロードする。パッチマネージャコードセクションにおけるシンボルライブラリが全て、リード−ライト揮発性メモリに必ずしもロードされるわけではないことが理解されるべきである。さらに、パッチマネージャコードセクションの後方の他のコードセクションにおけるシンボルライブラリは、リード−ライト揮発性メモリにロードされ得る。メモリ内の第1の位置の参照に応じて、ステップ812bは、シンボルアクセサコードにアクセスする。ステップ812cは、対応するシンボル識別子を用いて検索されるシンボルのアドレスを計算するためにシンボルアクセサを呼び出す。検索されたシンボルのアドレスを計算するためにシンボルアクセサコードを呼び出すステップは、検索されたシンボルのアドレスを計算するためにコードセクションアドレステーブルおよびシンボルオフセットアドレステーブルにアクセスするステップを包含する。ステップ812dは、RAMから第3の複数のシンボルライブラリにアクセスする。
概して、ステップ808において更新されたパッチマネージャコードセクションを受信するステップは、更新されたシンボルアクセサコードを受信するステップを包含する。ステップ810において更新されたパッチマネージャコードセクションでパッチマネージャコードセクションを置き換えるステップは、更新されたシンボルアクセサコードでシンボルアクセサコードを置き換えるステップを包含する。ステップ812において更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に更新されたシンボルアクセサコードを用いるステップを包含する。
本発明のいくつかの局面は、さらなるステップを含む。ステップ808bは、更新されたシンボルアクセサコードアドレスを受信する。ステップ808cは、ファイルシステムセクションに更新されたシンボルアクセサコードアドレスを格納する。ステップ810cは、ファイルシステムセクションからの更新されたシンボルアクセサコードアドレスでメモリ内の第1の位置におけるシンボルアクセサコードアドレスを置き換える。次に、ステップ812において更新されたシステムソフトウェアを実行するステップは、更新されたシステムソフトウェアを実行する際に更新されたシンボルアクセサコードアドレスを用いるステップを包含する。
概して、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、パッチマネージャコードセクションにおいてシンボルアクセサコードアドレスを配置するステップを包含する。次に、ステップ810cにおいてファイルシステムセクションからの更新されたシンボルアクセサコードアドレスでメモリ内の第1の位置におけるシンボルアクセサコードアドレスを置き換えるステップは、更新されたパッチマネージャコードセクションにおける更新されたシンボルアクセサコードアドレスでパッチマネージャコードセクションにおけるシンボルアクセサコードアドレスを置き換えるステップを包含する。いくつかの局面において、ステップ812aは、リード−ライトデータ、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、パッチライブラリ、シンボルアクセサコード、およびシンボルアクセサコードアドレスをパッチマネージャコードセクションからリード−ライト揮発性メモリにロードする。ステップ812dは、リード−ライト揮発性メモリから、リード−ライトデータ、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、パッチライブラリ、シンボルアクセサコード、およびシンボルアクセサコードアドレスにアクセスする。
ステップ806において対応する開始アドレスにコードセクションの開始点を格納するステップは、サブステップを含む。ステップ806bは、第2の複数の連続してアドレスされたメモリブロックを生成する。ステップ806cは、対応するコードセクションと各メモリブロックとを識別する。ステップ806dは、識別されたメモリブロックにコードセクションを格納する。
いくつかの局面において、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、第1のコードセクションにおいて第3の複数のシンボルライブラリを配置するステップを包含する。ステップ806cにおいて対応するコードセクションと各メモリブロックとを識別するステップは、第1のコードセクションと第1のメモリブロックとを識別するステップを包含する。ステップ806dにおいて識別されたメモリブロックにおいてコードセクションを格納するステップは、第1のメモリブロックに第3の複数のシンボルライブラリを格納するステップを包含する。ステップ808において新しいコードセクションを受信するステップは、内部に第3の複数のシンボルライブラリが配置される更新された第1のコードセクションを受信するステップを包含する。次に、ステップ810において無線デバイスのための更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、更新された第1のコードセクションを用いて第1のメモリブロックの第1のコードセクションを上書きするステップを包含する。
別の局面において、ステップ804において第2の複数のコードセクションに第1の複数のシンボルライブラリを配置するステップは、第1のコードセクションに第1のシンボルライブラリを配置するステップを包含する。ステップ806cにおいて対応するコードセクションと各メモリブロックとを識別するステップは、第1のコードセクションと第1のメモリブロックとを識別するステップを包含する。ステップ806dにおいて識別されたメモリブロックにコードセクションを格納するステップは、第1のメモリブロックに第1のシンボルライブラリを格納するステップを包含する。ステップ808において新しいコードセクションを受信するステップは、内部に第1のシンボルライブラリが配置される更新された第1のコードセクションを受信するステップを包含する。次に、ステップ810において無線デバイスの更新されたシステムソフトウェアを形成するために現在のコードセクションを用いて新しいコードセクションを配置するステップは、更新された第1のコードセクションを用いて第1のメモリブロックの第1のコードセクションを上書きするステップを包含する。
ステップ804の第1の複数のシンボルライブラリを第2の複数のコードセクションへ配置するステップは、配置されるシンボルライブラリを収容するようにコードセクションをサイズ合わせするステップを包含する。次いで、ステップ806bの第2の複数の連続してアドレスされるメモリブロックを生成するステップは、対応するコードセクションを収容するためにメモリブロックをサイズ合わせすることを含む。もしくは、ステップ804の第1の複数のシンボルライブラリを第2の複数のコードセクションへ配置するステップは、配置されるシンボルライブラリよりも大きいサイズを収容するようにコードセクションをサイズ合わせするステップを包含する。
無線通信デバイスにおいて利用するための更新可能なシステムソフトウェア構造のためのシステムおよび方法が、提供された。本システムは、メモリにおけるコードセクションの開始アドレスおよびシンボルライブラリのシンボルのオフセットアドレスとアクセスするためのテーブルにより、コードセクションにおけるシンボルライブラリの配置のために、容易に更新可能である。これらのライブラリ配置および相互参照テーブルのいくつかの例が、ディスプレイ機能のために与えられたが、本発明は、これらの例だけに制限されない。当業者には、本発明の他の改変および実施形態が思い至る。
図1は、無線デバイスソフトウェアメンテナンスシステム全体の概略的なブロック図である。 図2は、エアリンクインターフェースを介して命令セットのインストールをハイライトする、ソフトウェアメンテナンスシステムの概略的なブロック図である。 図3は、無線通信デバイスにおける利用のための、本発明の現場更新可能なシステムソフトウェア構造の概略的なブロック図である。 図4は、無線デバイスメモリの概略的ブロック図である。 図5は、図3のコードセクションアドレステーブルを示すテーブルである。 図6は、シンボルを有する、図3のシンボルライブラリの詳細な図である。 図7は、図3のシンボルオフセットアドレステーブルを示すテーブルである。 図8aは、無線通信デバイスにおいてシステムソフトウェアを更新する本発明の方法を示すフローチャートである。 図8bは、無線通信デバイスにおいてシステムソフトウェアを更新する本発明の方法を示すフローチャートである。 図8cは、無線通信デバイスにおいてシステムソフトウェアを更新する本発明の方法を示すフローチャートである。

Claims (33)

  1. 無線通信デバイス(104)のメモリに格納されているシステムソフトウェアを更新する方法であって、
    方法は、
    該無線通信デバイス(104)の不揮発性メモリ(108)のコード格納セクション(112)の複数の現在のコードセクション(302、304、306)に該無線デバイスシステムソフトウェアを格納することと、
    無線通信ネットワークを介してソフトウェア更新(102)を受信することであって、該ソフトウェア更新は、パッチメーカ命令セット(200、454)と新しいコードセクション(450)とを含む、ことと、
    該不揮発性メモリ(108)のファイル格納システム(110)に該ソフトウェア更新(102)を格納することと、
    該コード格納セクション(112)に格納されているパッチマネージャコードセクション(308)を用いて、該パッチメーカ命令セット(200、454)を実行することと
    を包含し、
    該パッチメーカ命令セット(200、454)は、該複数の現在のコードセクション(302、304、306)とともに該新しいコードセクション(450)を配置することにより、該無線通信デバイスの更新されたシステムソフトウェアを形成するための命令を含む、方法。
  2. 更新するために現在のコードセクションを識別することをさらに包含し、
    前記複数の現在のコードセクション(302、304、306)とともに前記新しいコードセクション(450)を配置することにより、更新されたシステムソフトウェアを形成することは、該識別された現在のコードセクションを該新しいコードセクション(450)と置き換えることを包含する、請求項1に記載の方法。
  3. 前記格納することは、
    前記システムソフトウェアを複数のシンボルライブラリ(310、312、314)に形成することであって、該複数のシンボルライブラリのそれぞれは、少なくとも1つのシンボルを含む、ことと、
    複数のシンボルライブラリを前記複数の現在のコードセクションに配置すること
    をさらに包含する、請求項1に記載の方法。
  4. シンボルライブラリ内の前記少なくとも1つのシンボルのそれぞれは、関連した機能を有する請求項に記載の方法。
  5. 前記形成することは、
    前記複数のシンボルライブラリリード−ライトデータを形成することと
    リード−ライトデータを、共有されているリード−ライトコードセクション(330)に配置することと
    をさらに包含する、請求項に記載の方法。
  6. 前記ソフトウェア更新は、更新されたリード−ライトコードセクションをさらに含む、請求項に記載の方法。
  7. 前記更新されたリード−ライトコードセクションに対応する前記リード−ライトコードセクションを識別することをさらに包含し、
    前記実行することは、該リード−ライトコードセクションを該更新されたリード−ライトコードセクション置き換えることをさらに包含する、請求項に記載の方法。
  8. 前記配置することは、前記複数のシンボルライブラリコードセクションの開始点に配置することを包含し、
    前記方法は、
    コードセクションの開始点を対応する開始アドレスに格納することと、
    コードセクション識別子と、対応する開始アドレスを相互参照するコードセクションアドレステーブル(326)を維持すること
    をさらに包含する、請求項に記載の方法。
  9. 前記配置することは、
    コードセクションの開始アドレスからオフセットされるように第2の複数のシンボルライブラリを配置することと
    該第2の複数のシンボルライブラリのシンボル識別子と、対応するオフセットアドレスおよび対応するコードセクション識別子とを相互参照するシンボルオフセットアドレステーブル(328)維持すること
    をさらに包含する、請求項に記載の方法。
  10. 前記コードセクションアドレステーブル(326)を前記パッチマネージャコードセクション(308)に格納することと、
    前記シンボルオフセットアドレステーブル(328)該パッチマネージャセクション(308)に格納すること
    さらに包含する、請求項に記載の方法。
  11. 前記ソフトウェア更新は、更新されたコードセクションアドレステーブルと更新されたシンボルオフセットアドレステーブルとをさらに含み
    前記複数の現在のコードセクションとともに前記新しいコードを配置することは、前記コードセクションアドレステーブル(326)を該更新されたコードセクションアドレステーブルと置き換え、前記シンボルオフセットアドレステーブル(328)を該更新されたシンボルオフセットアドレステーブルと置き換えることを包含する、請求項10に記載の方法。
  12. 前記コードセクションアドレステーブル(326)と前記シンボルオフセットアドレステーブル(328)とにアクセスして、シンボル識別子とコードセクション識別子とを含むシンボルアクセサコード(332)からシンボルのアドレスを計算することさらに包含する、請求項10に記載の方法。
  13. 前記ソフトウェア更新は、更新されたシンボルアクセサコードをさらに含み、
    前記方法は、
    前記シンボルアクセサコード(332)該更新されたシンボルアクセスコードと置き換えることをさらに包含する、請求項12に記載の方法。
  14. 前記複数のシンボルライブラリを前記対応するコードセクションの開始点格納することは、
    複数の連続してアドレス指定されているメモリブロックを作成することと、
    対応するコードセクションを用いて該複数の連続してアドレス指定されているメモリブロックのそれぞれを識別することと、
    該対応するコードセクションを該識別されたメモリブロック格納すること
    さらに包含する、請求項に記載の方法。
  15. 前記作成することは、
    対応するコードセクションを収容するように、前記メモリブロックをサイズ合わせすることをさらに包含する、請求項14に記載の方法。
  16. 前記サイズ合わせすることは、
    前記配置された複数のシンボルライブラリよりも大きいサイズを収容するように、前記コードセクションをサイズ合わせすることをさらに包含する、請求項15に記載の方法。
  17. 無線通信デバイス(104)のためのソフトウェア更新システムであって、
    システムは、
    不揮発性メモリ(108)のコード格納セクション(112)であって、複数の現在のコードセクション(302、304、306)配置された実行可能な無線デバイスシステムソフトウェアを含み、該複数の現在のコードセクションのそれぞれは、1つ以上のシンボルライブラリを含む、コード格納セクション(112)と、
    無線通信ネットワークを介してソフトウェア更新(102)を受信し、該ソフトウェア更新(102)を該不揮発性メモリのファイル格納システム(110)に格納するように 構成されている無線通信インターフェース(150)であって、該ソフトウェア更新は、パッチメーカ命令セット(200、454)と、新しいシンボルライブラリを有する新しいコードセクション(450)とを含む、無線通信インターフェース(150)と、
    該コード格納セクション(112)に格納されているマッチマネージャコードセクション(308)であって、該ソフトウェア更新を処理し、該パッチメーカ命令セットを実行することにより、該新しいシンボルライブラリを対応する新しいコードセクションに配置するように構成されている、マッチマネージャコードセクション(308)と
    を備えた、システム。
  18. 前記ソフトウェア更新を処理することは、現在のコードセクションを前記新しいコードセクション置き換える、請求項17に記載のシステム。
  19. 前記1つ以上のシンボルライブラリのそれぞれは、関連した機能を有するシンボルを含む、請求項17に記載のシステム。
  20. 前記複数の現在のコードセクションのそれぞれは、対応するシンボルライブラリにアクセス可能なリード−ライトデータを有する共有されているリード−ライトコードセクションを含む、請求項17に記載のシステム。
  21. 前記ソフトウェア更新は、更新されたリード−ライトコードセクションを含み、
    前記ソフトウェア更新を処理することは、該共有されているリード−ライトコードセクションを該更新されたリード−ライトコードセクション置き換えることを包含する、請求項17に記載のシステム。
  22. 前記1つ以上のシンボルライブラリは、前記複数の現在コードセクションのそれぞれの開始点において始まるように配置されており
    前記コード格納セクションは、コードセクションアドレステーブルをさらに含み、該コードセクションアドレステーブルは、該複数の現在のコードセクションの開始アドレスに関連付けられた複数のコードセクション識別子を含む、請求項17に記載のシステム。
  23. 前記1つ以上のシンボルライブラリは、それぞれのコードセクション開始アドレスからのオフセットされている各シンボルを含み
    前記パッチマネージャコードセクション(308)は、シンボルオフセットアドレステーブル(328)を含み、該シンボルオフセットアドレステーブル(328)は、対応するオフセットアドレス対応するコードセクション識別子とに関連付けられたシンボル識別子含む、請求項22に記載のシステム。
  24. 前記ソフトウェア更新は、更新されたコードセクションテーブルアドレス(326)と更新されたシンボルオフセットアドレステーブル(328)とを含む、請求項23に記載のシステム。
  25. 現在のコードセクションは、前記パッチマネージャコードセクション(308)を含む、請求項17に記載のシステム。
  26. 前記ソフトウェア更新は、更新されたパッチマネージャコードセクションを含み
    前記ソフトウェア更新を処理することは、前記コード格納セクション内の前記パッチマネージャコードセクションを前記ファイルシステムセクション内の該更新されたパッチマネージコードセクションと置き換えることを包含する、請求項17に記載のシステム。
  27. 前記パッチマネージャコードセクションは、リード−ライトデータと、コードセクションアドレステーブル(326)と、シンボルオフセットアドレステーブル(328)とを含み、
    前記更新されたパッチマネージャコードセクションを受信することは、更新されたシンボルオフセットアドレステーブル、更新されたコードセクションアドレステーブルと、更新されたリード−ライトデータを受信することを包含する、請求項26に記載のシステム。
  28. 前記パッチマネージャコードセクションは、シンボルアクセサコード(332)を含み、該シンボルアクセサコード(332)は、シンボル識別子と、対応するコードセクション識別子含む、請求項26に記載のシステム。
  29. 前記シンボルアクセサコードは、前記コードセクションアドレステーブル前記シンボルオフセットアドレステーブルにアクセスすることによってシンボルのアドレスを計算する、請求項28に記載のシステム。
  30. 前記ファイルシステムセクションは、更新されたシンボルアクセサコードを有する前記更新されたパッチマネージャコードセクションを受信し、
    前記パッチライブラリは、前記コード格納セクション内の前記パッチマネージコードセクションを該更新されたパッチマネージャコードセクション置き換え、
    該更新されたパッチマネージャコードセクション内の該更新されたシンボルアクセサコードを該コード格納セクション前記複数の現在のコードセクションとともに配置することは、更新された実行可能なシステムソフトウェアを形成する、請求項29に記載のシステム。
  31. 前記コード格納セクションは、対応する複数の現在のコードセクションを用いて識別される複数の連続してアドレス指定されているメモリブロックを含む、請求項17に記載のシステム。
  32. 現在のコードセクションは、該現在のコードセクション内に配置される対応する1つ以上のシンボルライブラリ収容するようにサイズ合わせされ、対応するメモリブロックは、該現在のコードセクションを収容するようにサイズ合わせされる、請求項31に記載のシステム。
  33. 現在のコードセクションは、該現在のコードセクションに配置される対応する1つ以上のシンボルライブラリよりも大きいようにサイズ合わせされる請求項32に記載のシステム。
JP2003515970A 2001-07-26 2002-07-23 無線通信デバイスのソフトウェアコードセクションを現場ダウンロードするシステムおよび方法 Expired - Fee Related JP4073399B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US09/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
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/916,900 US7027806B2 (en) 2001-07-26 2001-07-26 System and method for field downloading a wireless communications device software code section
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
US09/969,305 US7386846B2 (en) 2001-07-26 2001-10-02 System and method for the management of wireless communications device system software downloads in the field
PCT/IB2002/002869 WO2003010662A2 (en) 2001-07-26 2002-07-23 System and method for field downloading a wireless communication device software code section

Publications (2)

Publication Number Publication Date
JP2004537123A JP2004537123A (ja) 2004-12-09
JP4073399B2 true JP4073399B2 (ja) 2008-04-09

Family

ID=27542295

Family Applications (11)

Application Number Title Priority Date Filing Date
JP2003515966A Expired - Fee Related JP4104546B2 (ja) 2001-07-26 2002-07-22 現場更新可能な無線通信デバイスソフトウェアを組織化するシステムおよび方法
JP2003515964A Withdrawn JP2004537120A (ja) 2001-07-26 2002-07-22 無線通信デバイスに関する更新命令を実行するためのシステムおよび方法
JP2003515971A Withdrawn JP2005505813A (ja) 2001-07-26 2002-07-22 現場における無線通信デバイスシステムソフトウエアダウンロードの管理のためのシステムおよび方法
JP2003517749A Expired - Fee Related JP4310186B2 (ja) 2001-07-26 2002-07-23 現場の更新可能な無線通信デバイスのソフトウェアコードセクションを圧縮するシステムおよび方法
JP2003515970A Expired - Fee Related JP4073399B2 (ja) 2001-07-26 2002-07-23 無線通信デバイスのソフトウェアコードセクションを現場ダウンロードするシステムおよび方法
JP2003515972A Expired - Fee Related JP4278513B2 (ja) 2001-07-26 2002-07-23 無線通信デバイスにおける永続データを更新するためのシステムおよび方法
JP2003515976A Expired - Fee Related JP4176634B2 (ja) 2001-07-26 2002-07-23 無線通信デバイスシステムソフトウェアの現場診断のためのシステムおよび方法
JP2003516189A Expired - Fee Related JP4077408B2 (ja) 2001-07-26 2002-07-25 ピアツーピアハンドセット通信のシステムおよび方法
JP2003518153A Expired - Fee Related JP4101752B2 (ja) 2001-07-26 2002-07-25 双方向通信および動的命令セットを実行するシステムおよび方法
JP2003516197A Expired - Fee Related JP4106020B2 (ja) 2001-07-26 2002-07-25 ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法
JP2007303740A Pending JP2008108268A (ja) 2001-07-26 2007-11-22 現場更新可能な無線通信デバイスソフトウェアを組織化するシステムおよび方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP2003515966A Expired - Fee Related JP4104546B2 (ja) 2001-07-26 2002-07-22 現場更新可能な無線通信デバイスソフトウェアを組織化するシステムおよび方法
JP2003515964A Withdrawn JP2004537120A (ja) 2001-07-26 2002-07-22 無線通信デバイスに関する更新命令を実行するためのシステムおよび方法
JP2003515971A Withdrawn JP2005505813A (ja) 2001-07-26 2002-07-22 現場における無線通信デバイスシステムソフトウエアダウンロードの管理のためのシステムおよび方法
JP2003517749A Expired - Fee Related JP4310186B2 (ja) 2001-07-26 2002-07-23 現場の更新可能な無線通信デバイスのソフトウェアコードセクションを圧縮するシステムおよび方法

Family Applications After (6)

Application Number Title Priority Date Filing Date
JP2003515972A Expired - Fee Related JP4278513B2 (ja) 2001-07-26 2002-07-23 無線通信デバイスにおける永続データを更新するためのシステムおよび方法
JP2003515976A Expired - Fee Related JP4176634B2 (ja) 2001-07-26 2002-07-23 無線通信デバイスシステムソフトウェアの現場診断のためのシステムおよび方法
JP2003516189A Expired - Fee Related JP4077408B2 (ja) 2001-07-26 2002-07-25 ピアツーピアハンドセット通信のシステムおよび方法
JP2003518153A Expired - Fee Related JP4101752B2 (ja) 2001-07-26 2002-07-25 双方向通信および動的命令セットを実行するシステムおよび方法
JP2003516197A Expired - Fee Related JP4106020B2 (ja) 2001-07-26 2002-07-25 ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法
JP2007303740A Pending JP2008108268A (ja) 2001-07-26 2007-11-22 現場更新可能な無線通信デバイスソフトウェアを組織化するシステムおよび方法

Country Status (9)

Country Link
EP (12) EP1410191A2 (ja)
JP (11) JP4104546B2 (ja)
KR (10) KR100911604B1 (ja)
CN (10) CN1288553C (ja)
AT (9) ATE387658T1 (ja)
AU (9) AU2002319569A1 (ja)
DE (7) DE60206389T2 (ja)
ES (9) ES2300454T3 (ja)
WO (10) WO2003010656A2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
JP4417123B2 (ja) 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
WO2004109510A2 (en) * 2003-06-04 2004-12-16 Bitfone Corporation Network having customizable generators of software updates and mobile electronic devices having customizable updating software
US7873956B2 (en) 2003-09-25 2011-01-18 Pantech & Curitel Communications, Inc. Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US7257583B2 (en) 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
KR100620729B1 (ko) * 2004-03-31 2006-09-13 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
KR100841510B1 (ko) * 2004-05-18 2008-06-25 키오세라 와이어리스 코포레이션 무선 통신 장치를 위한 모듈식 데이터 구성요소
GB2416876B (en) * 2004-08-03 2007-01-10 Nec Technologies Export file processing within a mobile radio communications device
US7512939B2 (en) * 2004-10-05 2009-03-31 Neopost Technologies System and method of secure updating of remote device software
EP1659810B1 (en) * 2004-11-17 2013-04-10 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating configuration parameters in a mobile terminal
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US12149618B2 (en) 2005-01-27 2024-11-19 The Chamberlain Group Llc Method and apparatus to facilitate transmission of an encrypted rolling code
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
EP1803313A4 (en) * 2005-04-18 2007-10-31 Research In Motion Ltd METHOD AND SYSTEM FOR ORDERING SOFTWARE VERSION UPDATES
CN100442708C (zh) * 2005-06-17 2008-12-10 上海华为技术有限公司 一种主备备份的方法及系统
CN100476728C (zh) * 2005-08-19 2009-04-08 光宝科技股份有限公司 应用程序更新方法及使用上述方法的移动通讯装置
CN100410893C (zh) * 2005-09-28 2008-08-13 联想(北京)有限公司 自行修复嵌入式设备的主控应用程序的方法及设备
CN1980447B (zh) * 2005-12-06 2010-06-16 中兴通讯股份有限公司 一种通信系统软件版本的平滑升级方法
WO2007105274A1 (ja) * 2006-03-10 2007-09-20 Fujitsu Limited 適用パッチ選別装置及び適用パッチ選別方法
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
CN100403263C (zh) * 2006-08-16 2008-07-16 华为技术有限公司 按配置下载设备软件的方法
KR100924647B1 (ko) * 2008-08-07 2009-11-02 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
JP2012523479A (ja) 2009-04-07 2012-10-04 センシエント カラーズ エルエルシー 自己分散性粒子並びにその製造方法及び使用方法
CN101539885B (zh) * 2009-04-23 2011-06-08 大唐微电子技术有限公司 一种无线通信模块软件自主空中升级的方法、装置及系统
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
CN102253847A (zh) * 2010-05-19 2011-11-23 宏碁股份有限公司 制作系统软件的系统及系统软件的部署方法
US8756256B2 (en) * 2010-05-26 2014-06-17 Qualcomm Incorporated Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts
US9477585B2 (en) * 2012-11-09 2016-10-25 Coherent Logix, Incorporated Real time analysis and control for a multiprocessor system
US10064251B2 (en) * 2013-03-15 2018-08-28 Cree, Inc. Updatable lighting fixtures and related components
CN103345412B (zh) * 2013-07-10 2016-08-24 华为技术有限公司 打补丁的方法及装置
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
WO2019213672A1 (en) * 2018-05-04 2019-11-07 Herdx, Inc. Food supply tracking, verification, and feedback system
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
CA3107457A1 (en) 2018-08-01 2020-02-06 The Chamberlain Group, Inc. Movable barrier operator and transmitter pairing over a network
KR102176204B1 (ko) 2018-10-15 2020-11-09 김용대 유명인 사용물품 기부 중개 서비스 방법
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training
JP7461755B2 (ja) * 2020-02-21 2024-04-04 日立Astemo株式会社 情報処理装置、プログラム更新システム、及びプログラム更新方法
US11588924B2 (en) * 2020-10-29 2023-02-21 Hewlett Packard Enterprise Development Lp Storage interface command packets over fibre channel with transport and network headers as payloads

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8901932D0 (en) * 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
FR2662891A1 (fr) * 1990-05-30 1991-12-06 Cit Alcatel Dispositif de telechargement de logiciel pour un terminal de telecommunication.
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
JPH07182178A (ja) * 1993-02-19 1995-07-21 Nec Corp プリロードモジュール修正システム
US5488648A (en) * 1993-08-17 1996-01-30 Telefonaktiebolaget L M Ericsson Behavior monitoring and analyzing system for stored program controlled switching system
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
JP3140906B2 (ja) 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5734904A (en) * 1994-11-14 1998-03-31 Microsoft Corporation Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
US5673317A (en) * 1995-03-22 1997-09-30 Ora Electronics, Inc. System and method for preventing unauthorized programming of wireless network access devices
US5699275A (en) * 1995-04-12 1997-12-16 Highwaymaster Communications, Inc. System and method for remote patching of operating code located in a mobile unit
DE19527808C2 (de) * 1995-07-28 1999-04-01 Siemens Ag Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems
DE19543843C2 (de) * 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
EP0979449A4 (en) * 1996-08-28 2005-08-24 Wind River Systems Inc A TOOL FOR SOFTWARE DIAGNOSIS DISTRIBUTES FROM MULTIPLE PROCESSORS
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
SE512110C2 (sv) * 1997-06-17 2000-01-24 Ericsson Telefon Ab L M System och förfarande för att kundanpassa trådlösa kommunikationsenheter
JPH1115689A (ja) * 1997-06-19 1999-01-22 Nec Corp ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
US5974312A (en) * 1997-07-10 1999-10-26 Ericsson Inc. System and method for updating a memory in an electronic device via wireless data transfer
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
JPH11141394A (ja) * 1997-11-07 1999-05-25 Nissan Motor Co Ltd 車両制御用メモリ書き換え装置
JPH11146011A (ja) * 1997-11-11 1999-05-28 Nec Corp 電子メールシステム及び電子メールサーバ及び通信端末
JP3337062B2 (ja) * 1997-11-21 2002-10-21 日本電気株式会社 無線データ転送方法及びそのシステム
US6275694B1 (en) * 1997-12-19 2001-08-14 Vlsi Technology, Inc. Method for remotely updating software code for personal handy phone system equipment
US6438711B2 (en) * 1998-07-15 2002-08-20 Intel Corporation Method and apparatus for performing field diagnostics on a computer system
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
GB2349485B (en) * 1999-04-23 2003-12-10 Ibm Application management
SE516806C2 (sv) * 1999-05-26 2002-03-05 Ericsson Telefon Ab L M Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
FR2800963B1 (fr) * 1999-11-09 2001-12-07 Wavecom Sa Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant
US7264532B2 (en) * 2004-12-27 2007-09-04 Tsan-Yao Chen Cup structure

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4073399B2 (ja) 無線通信デバイスのソフトウェアコードセクションを現場ダウンロードするシステムおよび方法
US7027806B2 (en) System and method for field downloading a wireless communications device software code section
US7159214B2 (en) System and method for compacting field upgradeable wireless communication device software code sections
JP4953475B2 (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
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070810

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070919

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071003

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071017

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080122

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

Free format text: PAYMENT UNTIL: 20110201

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140201

Year of fee payment: 6

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees