JP2010079382A - ソフトウエア更新方法 - Google Patents

ソフトウエア更新方法 Download PDF

Info

Publication number
JP2010079382A
JP2010079382A JP2008244082A JP2008244082A JP2010079382A JP 2010079382 A JP2010079382 A JP 2010079382A JP 2008244082 A JP2008244082 A JP 2008244082A JP 2008244082 A JP2008244082 A JP 2008244082A JP 2010079382 A JP2010079382 A JP 2010079382A
Authority
JP
Japan
Prior art keywords
software
program
update
control software
ram
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.)
Pending
Application number
JP2008244082A
Other languages
English (en)
Inventor
Katsunori Ikeda
克則 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Kokusai Electric Inc
Original Assignee
Hitachi Kokusai Electric Inc
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
Application filed by Hitachi Kokusai Electric Inc filed Critical Hitachi Kokusai Electric Inc
Priority to JP2008244082A priority Critical patent/JP2010079382A/ja
Publication of JP2010079382A publication Critical patent/JP2010079382A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】現用の制御プログラムが破損した場合でも、速やかに更新された最新の制御プログラムでの動作が行えるソフトウエア更新方法を提供する。
【解決手段】更新有無を認識するステップ(S1)と、ソフトウエア更新プログラムをRAMへ転送し起動させるステップ(S2)と、ROMに記憶された現用の制御ソフトウエアおよび、RAMに記憶された差分ファイルをRAMのソフトウエア更新プログラムワークメモリに読み出しするステップ(S3,S4)と、これらを実行するステップ(S5)と、制御ソフトウエアに異常を検知するステップ(S6X)と、リカバリー用ソフトウエアに上書されるステップ(S10)と、新たな差分ファイルを取得するステップ(S11)と、S1からS5を再度進め、新制御ソフトウエアを生成し、新制御ソフトウエアに書き換えするステップ(S6)と、を順次行う。
【選択図】図5

Description

本発明は、電気的デジタルデータ処理に関し、特に無線端末に内蔵した動作プログラムの更新処理に供して好適なソフトウエア更新方法に関する。
近年、携帯電話機などの通信端末は、従来の音声による通話機能に加え、メール機能、インターネットアクセス機能、音楽再生機能、カメラ機能、デジタルTV(ワンセグ)機能など、多くの機能が搭載されており、それらの機能が互いに連携して動作するようになっている。また、携帯電話機の情報伝送機能をユニット化した通信端末が自動販売機などに組み込まれ、商品在庫の遠隔管理、認証データの伝送などにも応用されている。
機器は、通信端末の内部に保持された動作プログラムとなる制御ソフトウエアによって動作して機能を発揮しており、機器の動作に関連するソフトウエアは、書き換え可能なフラッシュROM(Flash ROM ;Read Only Memory)と呼ばれる不揮発性メモリに格納されていることが多い。
従来、通信端末などの機器に内蔵された制御ソフトウエアに不具合が発生し、制御ソフトウエアを交換する場合、当該通信端末にシリアルデータ伝送を行うケーブルを外部から接続して、ケーブルデータ伝送によってFlash ROMに格納されている制御ソフトウエアを新たなものに書き換えていた。
近年に至っては、FOTA(Firmware Over The Air)と呼ばれる無線回線を伝送媒体として、不具合を修正、あるいは、機能が増強されたバージョンアップの制御ソフトウエアを取得し、書き換える機能が提供されている。
このFOTAの方法によれば、書き換えの手間が省けるので大変便利であるが、一方で、多量の制御ソフトウエアが無線回線を占有して伝送されると、通信コストが嵩むのみならず、回線混雑の一因ともなる。
通信コストの軽減および、回線混雑回避のため、送信側において、変更前の制御ソフトウエアと変更後の制御ソフトウエアの差分データを生成して、短縮された差分ファイルとする差分データを伝送すれば、伝送データ量が少なくて済むので、この方法がプログラム更新の主流となってきた。
通信端末側では、変更前である現用のソフトウエアと受信した差分ファイルとから、演算処理によって、変更後の新ソフトウエアを生成する。
なお、伝送されてくる差分ファイルは、通信端末側で現用のソフトウエアを更新できるバージョンのものでなければならない。
通常、通信端末内の制御ソフトウエアは、書き換えることがなく用いられる。
サービス中に、発見された不具合を正すために、あるいは、新機能を追加するために、制御ソフトウエアの更新を行う場合がある。
更新処理を実行する際、更新前の制御ソフトウエアに一部の誤りが発生していた場合、あるいは、更新処理中の生成される制御ソフトウエアに誤りが発生した場合などにより、更新手続きが進められなくなるだけでなく、現用のソフトウエアに戻すこともできなくなるケースがある。
これによって、機器が正しく起動しない、又は、再更新が進められなくなるケースが生じる。
これらの問題を改善しようとする提案として、1つのメモリ内に2つの同じ制御プログラムを蓄積して、一方の制御プログラムを用いてのソフトウエア更新に失敗しても、他方に蓄積された制御プログラムを用いてソフトウエア更新を完了させる技術が提案されている。(例えば、特許文献1 参照)。
又は、制御プログラム内の特定のセクタの書き換えに失敗した場合、代替のセクタを割り当ててソフトウエア更新を完了させる技術が提案されている。(例えば、特許文献2 参照)。
特開2007−189332号公報 特開2007−219883号公報
前記特許文献1に示されるような従来技術では、1回目の更新失敗に対しては他方の制御プログラムが起動して更新動作が進められるものの、2回目以降の更新処理失敗に対しては、正常に起動できる制御プログラムが存在しなくなるので、無線回線のように、比較的、失敗を許容するようなシステムへの適応には不向きである。
また、2回目以降の更新動作のためには、制御プログラムのアドレス変更処理が伴い、これを行うためには、通常の通信端末では備えられていないメモリ管理ユニット(MMU:Memory Management Unit)の備えが必要となる。更に、その場合の制御プログラムは現用・予備のパララン方式が前提なのでROM、RAM(Random Access Memory)とも2倍のデータ蓄積容量が必要となる。
前記特許文献2に示されるような従来技術では、差分ファイルを用いて現用の制御プログラムから新しい制御プログラムを生成しようとしているものの、現用の制御プログラムが壊れていないことが前提なので、壊れてしまった場合には、更新処理を完結することができなくなる。
本発明の目的は、上記従来技術の問題点を解決し、制御プログラムの更新前または、更新中において、現用の制御プログラムが破損した場合でも、最新の制御プログラムに更新が可能であり、該更新された最新のプログラムにより機器の動作が行われるソフトウエア更新方法を提供することにある。
この目的を達成するために、本発明のソフトウエア更新方法は、更新前後の制御ソフトウエアを基にして生成された差分ファイルが無線回線を経て受信される無線端末において、該無線端末の記憶部に保持された前記制御ソフトウエアを更新する方法であって、
前記制御ソフトウエアの更新有無を認識するステップと、前記記憶部のROMに記憶されたソフトウエア更新プログラムをRAMへ転送し起動させるステップと、前記ソフトウエア更新プログラムの動作により、ROMに記憶された現用の制御ソフトウエアおよび、RAMに記憶された前記差分ファイルをRAMのソフトウエア更新プログラムワークメモリに読み出しするステップと、前記RAMに転送されたソフトウエア更新プログラムを前記ソフトウエア更新プログラムワークメモリ上で実行するステップと、前記実行の過程で、前記制御ソフトウエアに異常を検知するステップと、前記異常検知により前記ROMに記憶された前記制御ソフトウエアが前記ROMに記憶されたリカバリー用ソフトウエアに上書されるステップと、前記無線回線を経て、前記リカバリー用ソフトウエアに整合する新たな前記差分ファイルを前記RAM上に取得するステップと、前記更新有無を認識するステップから前記実行するステップまでを再度進め、前記新たな差分ファイルに基づく新制御ソフトウエアを生成し、前記制御ソフトウエアを前記新制御ソフトウエアに書き換えするステップと、を順次行うことを特徴とする。
差分ファイルを用いたソフトウエア更新処理において、通信端末(無線端末)のソフトウエア更新対象の制御ソフトウエアが一部破損していることがあり、そのような場合でも、本発明によれば、ソフトウエア更新を正しく行うことができる。
更新対象とする既存のソフトウエアの破損回数に制限がなく、また、ソフトウエア更新処理中に、エラーが検出されて、ソフトウエア更新対象のソフトウエアが一部消去や破損した場合にもリカバリー処理が自動で行われるので復旧が格段に早い。
更に、リカバリー処理で用いるソフトウエアは、実行可能形式によって、そのデータをメモリに記憶させておく必要がなく、データ圧縮状態で記憶させればよいので、少ないメモリ容量の備えで済まされる。
以上、本発明によれば、無線端末のダウンタイムを極力少なくし、速やかに最新の動作状態に更新することができる。
以下に、図面を参照して、本発明の一実施の形態を詳細に説明する。
図1は、本発明のソフトウエア更新方法を適用した無線通信端末(以下、無線端末)のブロック図であり、該無線端末の概略ハードウエア構成を示している。
無線端末100は、制御部101、Flash ROM103および,RAM104からなる記憶部102,通信部105,表示処理部106,操作処理部107,入力処理部108,マイク109,スピーカ110,アンテナ111,表示部112,キーボード113および、データ入出力端子114から構成されている。
前記制御部101は、CPU(Central Processor Unit)やDSP(Digital Signal Processor)などの信号処理の演算装置を有しており、本無線端末の各部の制御を担う。
前記Flash ROM103は,制御ソフトウエアとしての現用およびリカバリー本体プログラム、ソフトウエア更新プログラムおよび、起動時に必要なBootプログラムを格納している書き換え可能な不揮発性メモリであり、前記制御部101からアクセスされる。なお、前記Flash ROM103は,電気的な書き換え可能な不揮発性メモリであれば、他の半導体プロセスによるROMであってもよい。
前記RAM104は,ソフトウエア更新プログラムおよび、ソフトウエア更新プログラムのワークメモリおよび、差分ファイルなどの実行のための記憶用途として用いられる揮発性メモリであり、前記制御部101からアクセスされる。
なお、ソフトウエア更新プログラムが実行される際は、前記Flash ROM103上に有するソフトウエア更新プログラムがRAM104に転送(コピー)されて実行に移される。これは、Flash ROMの性質である消去/書き込み回数の制約によるためであり、この制約が無くなれば、必ずしもRAMによる実行としなくてもよい。
前記RAM104には、差分データが差分ファイルとして記憶されているが、必ずしもRAM104に記憶しておく必要はなく、Flash ROM103に記憶させて実行するようにしてもよい。なお、差分ファイルの詳細は、後述する。
前記通信部105は,前記アンテナ110を介して、図示していない基地局との無線通信を行う。
前記表示処理部106は,制御部101からの指示により表示データを作成し、前記表示部112に表示させる。
前記表示部112は、液晶表示器あるいは、発光ダイオード表示器などの表示装置を用いて、無線端末の使用者に対し、機器の状態や制御部101により処理された送受信の情報データなどを表示する。
なお、表示処理部106および、表示部112は、無線端末の種類によっては、構成として備えないこともある。
前記操作処理部107は,前記キーボード113によってキー入力された入力信号に対し符号処理などを行い、符号データを制御部101へ転送する。
なお、操作処理部107および、キーボード113は、無線端末の種類によっては、構成として備えないこともある。
前記入力処理部108は,制御部101にて信号処理されて再生された音声データを前記スピーカ110に出力し、前記マイク109で受けた音声を入力処理し、制御部101へ入力させ、更に、前記データ入出力端子114に対し、外部データの授受の制御を行い、制御部101とのデータ転送を機能とする。
なお、スピーカ110および、マイク109は、無線端末の種類によっては、構成として備えないこともある。
次に、本発明のソフトウエア更新方法の一実施形態について、メモリマップを用いた状態遷移図を順次引用して説明する。
図2は、本発明のソフトウエア更新方法の実施に使用される記憶部102における状態遷移図である。図示されているように、Flash ROM103のメモリ領域には、制御ソフトウエアとして現用とする本体プログラムが割付けされ、当初は、その下方の記録エリアは、空き領域となっている。この空き領域には、図3以降の説明で用いられるリカバリー用本体プログラムが割り付けられることとなるが、その詳細は後述する。
図2は、Flash ROM103のメモリ領域に、本体プログラムの現用制御ソフトウエアの更新管理(レビジョン管理番号;V1.0)とした状態のプログラムが予め格納され、RAM104のメモリ領域に、現用制御ソフトウエア(V1.0)と更新後の新制御ソフトウエア(レビジョン管理番号;V1.1)とより生成された差分データを基地局から予め取得し、これによる差分ファイル(V1.0→V1.1)のプログラムデータが格納されている状態を示している。
通常動作の開始として、無線端末の電源が入ると、最初に、Flash ROM103のメモリ領域に格納されているBootプログラムが起動する。
Bootプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出(S1.更新有無認識)時のみ、次に、ソフトウエア更新プログラムをRAM104へ転送し起動させる。(S2.転送・起動)。
なお、ソフトウエア更新要求の有無の検出は、無線端末から基地局を介してソフトウエアのバージョンを管理するサーバに最新バージョンの問い合わせを行い、サーバから取得した最新バージョンと現在の無線端末のソフトウエアのバージョンとを比較することでソフトウエア更新要求の有無を検出している。また、ソフトウエア管理サーバから基地局を介してソフトウエア更新対象の無線端末に対しソフトウエアの更新要求を行い、無線端末ではこのサーバからの指示を検出し、ソフトウエアの更新要求の有無を検出するようにしてもよい。後述する図面中で記載するソフトウエアの更新要求の有無の検出も上述した検出手段を用いて実現されるものである。
ソフトウエア更新要求の有無を検出し、更新「有」の検出が行われなければ、機器は、通常運用の動作として、本体プログラムが起動する。
Flash ROM103のメモリ領域に有する現用の制御ソフトウエアである本体プログラム(V1.0)は、ソフトウエア更新プログラムにより、RAM104のソフトウエア更新プログラムワークメモリに読み出される。(S3.読み出し)。
RAM104のメモリ領域に有する差分ファイル(V1.0→V1.1)は、以前の本体プログラム動作時に無線回線から取得し、予め記憶されている。この差分ファイル(V1.0→V1.1)がソフトウエア更新プログラムワークメモリに読み出されて、更新処理の実行へと進む。(S4.読み出し)。
RAM104に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、RAM104メモリ領域での更新処理プログラムの実行を開始する。(S5.実行)。
そこで、差分ファイル(V1.0→V1.1)と現用制御ソフトウエアである本体プログラム(V1.0)の間の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア(V1.1)が生成される。
次いで、Flash ROM103に有する現用の本体プログラムのメモリ領域に対して、RAM104に生成された新制御ソフトウエア(V1.1)への書き換えを実行する。(S6.プログラム書き換え)。
Flash ROM103のメモリ領域において、現用の本体プログラム領域に対して、全部の書き換えが成功すれば、新制御プログラム(V1.1)が現用の本体プログラムとなり、無線端末の動作制御を担うこととなる。(S7.更新完了)。
図3は、本発明のソフトウエア更新方法の一実施例のリカバリープログラムを備えた記憶部の状態遷移図である。これは、Flash ROM103のメモリ領域に、制御ソフトウエアとして現用とする本体プログラムの割付に加え、制御ソフトウエアとしてリカバリー用とする本体プログラムが割り付けられた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
Flash ROM103のメモリ領域には、本体プログラムの現用制御ソフトウエア(V1.0)および、本体プログラムのリカバリー用制御ソフトウエア(V1.0)とした各プログラムが格納され、RAM104のメモリ領域には、現用制御ソフトウエア(V1.0)と更新後の新制御ソフトウエア(V1.1)とより生成された差分データを基地局から取得し、これによる差分ファイル(V1.0→V1.1)のプログラムが格納されている状態を示している。
図3は、リカバリー用本体プログラムがリカバリー用として用いられることがなく、差分ファイルによる更新動作が、起動から完了まで通して1回で正常に行われて、成功した実施例であり、その動作は、図2の説明と同様である。
即ち、電源投入し、Bootプログラムにより、ステップS1で更新有無を「有」と認識し、ソフトウエア更新プログラムをステップS2で転送・起動し、本体プログラム(V1.0)がソフトウエア更新プログラムワークメモリにステップS3で読み出され、更に、差分ファイル(V1.0→V1.1)がソフトウエア更新プログラムワークメモリにステップS4で読み出され、差分ファイル(V1.0→V1.1)と現用制御ソフトウエアである本体プログラム(V1.0)の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア(V1.1)が生成され、Flash ROM103に有する現用の本体プログラムの領域に対して、新制御ソフトウエア(V1.1)への書き換えを実行するステップS6でプログラム書き換えが完了し、新制御プログラム(V1.1)が現用の本体プログラムとなり、ステップS7で更新完了となる。新制御プログラム(V1.1)が無線端末の動作制御を担う。
図4は、現用の本体プログラムに異常を検知した場合の本発明のソフトウエア更新方法の一実施例を示し、記憶部102の状態遷移図を示す。これは、Flash ROM103のメモリ領域の前記空き領域に、制御ソフトウエアとして現用とする本体プログラムの割付に対し、そのリカバリー用本体プログラムを割り付けた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
ここで、Flash ROM103のメモリ領域には、本体プログラムの現用制御ソフトウエア(V1.0)および、本体プログラムのリカバリー用制御ソフトウエア(V1.0)とした各プログラムが予め格納され、RAM104のメモリ領域には、現用制御ソフトウエア(V1.0)と更新後の新制御ソフトウエア(V1.1)とより生成された差分データを基地局から取得し、これによる差分ファイル(V1.0→V1.1)のプログラムが予め格納されている状態を示している。
通常動作の開始として、無線端末の電源が入ると、最初に、Flash ROM103のメモリ領域に有するBootプログラムが起動する。
Bootプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出(S1.更新有無認識)時のみ、次のソフトウエア更新プログラムをRAM104へ転送し起動させる。(S2.転送・起動)。
Flash ROM103のメモリ領域に有する現用の制御ソフトウエアである本体プログラム(V1.0)は、ソフトウエア更新プログラムにより、ソフトウエア更新プログラムワークメモリに読み出される。(S3.読み出し)。
RAM104のメモリ領域に有する差分ファイル(V1.0→V1.1)は、以前の現用本体プログラムの動作時に無線回線から取得し、予め記憶されている。この差分ファイル(V1.0→V1.1)がソフトウエア更新プログラムワークメモリに読み出されて、更新処理へと進む。(S4.読み出し)。
RAM104に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、RAM104メモリ領域上でのプログラム実行を開始する。(S5.実行)。
そこで、差分ファイル(V1.0→V1.1)と現用制御ソフトウエアである本体プログラム(V1.0)の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア(V1.1)が生成される。
Flash ROM103に有する現用の本体プログラムの領域に対して、新制御ソフトウエア(V1.1)への書き換えを実行するが、書き換え中にエラーが検出され、更新処理を継続できなくなる場合がある。(S6(X).本体プログラムに異常を検知)。
そこで、ソフトウエア更新プログラムは、更新処理の継続を一旦中止し、本体プログラムとするリカバリー用制御ソフトウエア(V1.0)を現用の本体プログラム領域に上書する動作に切替える。(S10.本体プログラム「リカバリー用」を本体プログラム「現用」に上書)。
なお、後述するが、その後において、再度のソフトウエア更新処理の動作を行うことで、現用の本体プログラム領域の新制御プログラムへの書き換えが成功し、新制御プログラム(V1.1)が現用の本体プログラムとなり、無線端末の動作制御を担う。
なお、前記成功が得られなければ、前記の動作は、成功するまで継続される。
図5は、異常検知から更新完了までの本発明の全貌を示すソフトウエア更新方法の一実施例を示し、記憶部102の状態遷移図を示す。これは、Flash ROM103のメモリ領域の前記空き領域に、制御ソフトウエアとして現用とする本体プログラムの割付に対し、そのリカバリー用本体プログラムを割り付けられた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
ここで、Flash ROM103のメモリ領域には、Bootプログラム、ソフトウエア更新プログラム、現用の本体プログラムとしての制御ソフトウエア(V1.1)および、リカバリー用の本体プログラムとしての制御ソフトウエア(V1.0)とした各プログラムが格納されている。
一方、RAM104のメモリ領域には、現用制御ソフトウエア(V1.1)と更新後の新制御ソフトウエア(V1.2)との対比により生成された差分データを基地局側より取得し、この差分データ即ち、差分ファイル(V1.1→V1.2)のプログラムが予め格納されている状態を示している。
無線端末の電源が入ると、最初に、Flash ROM103のメモリ領域に有するBootプログラムが起動する。
Bootプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出(S1.更新有無認識)時のみ、次に、ソフトウエア更新プログラムをRAM104へ転送し起動させる。(S2.転送・起動)。
なお、基地局からのソフトウエア更新要求の有無の検出動作において、更新「有」の検出が行われなければ、機器は、通常の動作として、現用である本体プログラム(V1.1)での機器動作が行われる。
更新動作の続きとして、Flash ROM103のメモリ領域に有する現用の制御ソフトウエアである本体プログラム(V1.1)が、RAM104に記憶されたソフトウエア更新プログラムの動作により、ソフトウエア更新プログラムワークメモリに読み出される。(S3.読み出し)。
更に、これ以前の本体プログラム動作時に無線回線から取得し、RAMのメモリ領域に記憶されている差分ファイル(V1.1→V1.2)がソフトウエア更新プログラムワークメモリに読み出されて、更新処理の実行へと進む。(S4.読み出し)。
RAM104に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、RAM104のメモリ領域上での更新プログラムの実行を開始する。(S5.実行)。
そこで、差分ファイル(V1.1→V1.2)と現用制御ソフトウエアである本体プログラム(V1.1)との間の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア(V1.2)が生成される。
ところが、現用の本体プログラムの領域に対して、新制御ソフトウエア(V1.2)への書き換えを実行している過程で、書き換え中にエラーが検出され、更新処理を継続できなくなる場合がある。(S6(X).本体プログラムに異常を検知)。(第1の更新処理→失敗)。
このとき、ソフトウエア更新プログラムは、更新処理の継続を一旦中止し、リカバリー処置として、本体プログラムとするリカバリー用制御ソフトウエア(V1.0)を現用の本体プログラム領域にFlash ROM103上で上書する動作に切替え、上書を完了させる。(S10.本体プログラム「リカバリー用」を本体プログラム「現用」に上書)。
従って、現用の本体プログラム領域には、基本的動作として運用に供し得る旧バージョン(V1.0)に一旦、戻されたプログラムが格納される。
このため、現在の差分ファイル(V1.1→V1.2)を用いた更新処理は継続できなくなるので、新たな差分ファイル(V1.0→V1.2)の取得を待つことになる。
この新たな差分ファイル(V1.0→V1.2)が基地局から取得されれば、RAM104上の差分ファイルは、(V1.0→V1.2)に書き換えられる。(S11.V1.0の本体プログラムで起動し、差分ファイル(V1.0→V1.2)を取得)。(図5上段図、参照)。
次に、図5中段図に示されるように、Flash ROM103のメモリ領域には、本体プログラムの現用制御ソフトウエアV1.0および、本体プログラムのリカバリー用制御ソフトウエアV1.0とした各プログラムが格納され、RAM104のメモリ領域には、現用制御ソフトウエアV1.0と更新後の新制御ソフトウエアV1.2)とより生成された差分データを取得し、これによる差分ファイル(V1.0→V1.2のプログラムが格納された状態となったことを示している。
この段階での機器動作は、リカバリー用本体プログラム(V1.0)が現用として用いられて、更新動作が再開されて、起動から完了まで通して2回目に成功した実施例となる。
2回目の一連の動作について、次に順次、説明する。
Bootプログラムにより、ステップS1(再)で更新有無を「有」と再認識し、ソフトウエア更新プログラムをステップS2(再)で再転送・再起動し、ソフトウエア更新プログラムがソフトウエア更新プログラムワークメモリにステップS3(再)で再読み出され、リカバリー用ソフトウエアに整合した差分ファイル(V1.0→V1.2)がソフトウエア更新プログラムワークメモリにステップS4(再)で再読み出され、差分ファイル(V1.0→V1.2)と現用制御ソフトウエアである本体プログラム(V1.0)の間の演算処理を再実行することによって、ソフトウエア更新プログラムワークメモリ内に、改めて、新制御ソフトウエア(V1.2)が生成され、現用の本体プログラムの領域に対して、新制御ソフトウエア(V1.2)への書き換えを実行するステップS6でプログラム再書き換えを行い、新制御プログラム(V1.2)が現用の本体プログラムとなり、ステップS7で更新完了となる。(図5下段図、参照)。(第2の更新処理→成功)。
以上によって、新制御プログラム(V1.2)による無線端末の機器動作が速やかに行われるようになる。
次に、本発明のソフトウエア更新方法の実施形態について、異常処理のフローチャート図を引用して説明する。
図6は、本発明のソフトウエア更新方法の一実施例である、更新処理開始時に発生した異常処理のフローチャート図である。これは、ソフトウエア更新の書き換え開始時に更新前の本体プログラムに破損が発生していた場合の処理フローチャート図である。
なお、図6は、図5に示されるステップS6(X)「本体プログラムに異常を検知」に関する第1の詳細な実施例となる。なお、第2の実施例は、後述する。
ステップS60において、ソフトウエア更新処理開始を実行したのち、現用の本体ソフトウエアにデータ破壊を起こしていないか、その正当性をチェック処理(符号列のサム値演算)するステップS61へ進む。
このチェック処理では、チェックサム方式、CRC(Cyclic Redundancy Check)方式または、MD5(Message Digest Algorithm 5)方式などの符号チェック方式を用いて、プログラムの正当性を確認するための符号列のサム値演算を実行する。このチェック処理は、ソフトウエア更新処理実行時に、無線回線を介して取得している差分ファイルに対しても実行されるようにしてもよい。
そこで、ステップS62に進み、前記演算結果のチェック値が、予め保持しておいた現用の本体プログラムの正当なチェック値と比較し、エラー検出により、現在、現用の本体ソフトウエアに破損「あり?」かの判定処理が行われる。
ステップS62の比較判定の結果、一致する場合(エラー検出なし)は、正当であるとし、現用の本体ソフトウエアに破損がないと判定しN側へと進み、次に、用いた差分ファイルが合致するかを確かめるステップS64へ進む。
一方、ステップS62の比較判定の結果、一致しない場合は、現用の本体ソフトウエアに破損がある(エラー検出あり)と判定しY側へ進み、リカバリー処理のステップS63へ進む。
ステップS63では、現用の本体ソフトウエアをリカバリー用の本体ソフトウエアで上書しておいて、機器動作に供し、次の更新処理の再開を待つことになる。
ステップS62N側又は、ステップS63の処理後は、次に、更新処理を続行させるために、又は、更新処理を再開させるために、差分ファイルの照合を行う処理として、現在の差分ファイルが現在の現用本体ソフトウエアに対応できるかを確かめる判定を行うステップS64へ進む。
その結果、合致、即ち、Yであれば、更新処理を継続してソフトウエア更新書き換えへのステップS65へ進む。
ステップS64の判定の結果、合致せず、即ち、Nであれば、更新処理を中断して、再度、差分ファイル取得処理のステップS66へ戻り、更新再開待ちとなる。
なお、リカバリー用の本体ソフトウエアは、メモリ容量を省力化させるため、データ圧縮して格納されることがある。この場合は、ステップS63の上書の実行に先立ち、圧縮データの伸張処理を行う。
図7は、本発明のソフトウエア更新方法の他の一実施例である、更新処理中に発生した異常処理のフローチャート図である。これは、現用の本体プログラム領域を生成された新本体プログラムにソフトウエア更新中(書き換え中)に異常が発生した場合の処理フローチャート図である。
なお、図7は、図5に示されるステップS6(X)「本体プログラムに異常を検知」に関する第2の詳細な実施例となる。
更新中(書き換え中)には、生成中の新本体プログラムデータのエラー監視を行っている。
ステップS70は、現用の本体プログラムを書き換え中であって、このとき、書き換え中のデータにエラーが検出されていないかの監視を行っている。この監視の結果、ステップS71では、発生したエラーが回復できないエラー(エラー訂正が行えない)であるか否かの判定処理を行っている。
回復できるエラーとして検出されれば、NとしてステップS74へ進み、図示はしていないが、エラー訂正などによる回復処理を行ったのち、ソフトウエア更新処理を継続させる。
一方、回復できないエラーとして検出されれば、YとしてステップS72へ進み、ソフトウエア更新処理を中断し、リカバリー処理に入る。ここでは、現用の本体ソフトウエア領域にリカバリーソフトウエアを上書する処理である。ここで一旦、ステップS73のソフトウエア更新処理を終了させておく。
無線端末の動作制御は、上書されたリカバリーソフトウエアによって行われる。このように、回復できないエラーが何度検出されても、所定のリカバリーソフトウエアで動かすようにできるので、その間に、所望の最新現用の本体プログラムに書き換えが自動で完了するようになる。
本発明は、移動通信に用いられる無線通信システムに適用されて、一例として、携帯電話方式を用いた無線端末に利用することができる。
本発明のソフトウエア更新方法を適用した無線端末のブロック図である。 本発明のソフトウエア更新方法とする記憶部の状態遷移図である。 本発明のソフトウエア更新方法とするリカバリープログラムを備えた記憶部の状態遷移図である。 本発明のソフトウエア更新方法とする本体プログラムに異常を検知した場合の記憶部の状態遷移図である。 本発明のソフトウエア更新方法とする、異常検知から更新完了までの記憶部の状態遷移図である。 本発明のソフトウエア更新方法とする更新処理開始時の異常処理のフローチャート図である。 本発明のソフトウエア更新方法とする更新処理中の異常処理のフローチャート図である。
符号の説明
100・・・無線端末
101・・・制御部
102・・・記憶部
103・・・Flash ROM(記憶部)
104・・・RAM(記憶部)
105・・・通信部
106・・・表示処理部
107・・・操作処理部
108・・・入力処理部
109・・・マイク
110・・・スピーカ
111・・・アンテナ
112・・・表示部
113・・・キーボード
114・・・データ入出力端子

Claims (1)

  1. 更新前後の制御ソフトウエアを基にして生成された差分ファイルが無線回線を経て受信される無線端末において、該無線端末の記憶部に保持された前記制御ソフトウエアを更新する方法であって、
    前記制御ソフトウエアの更新有無を認識するステップと、前記記憶部のROMに記憶されたソフトウエア更新プログラムをRAMへ転送し起動させるステップと、前記ソフトウエア更新プログラムの動作により、ROMに記憶された現用の制御ソフトウエアおよび、RAMに記憶された前記差分ファイルをRAMのソフトウエア更新プログラムワークメモリに読み出しするステップと、前記RAMに転送されたソフトウエア更新プログラムを前記ソフトウエア更新プログラムワークメモリ上で実行するステップと、前記実行の過程で、前記制御ソフトウエアに異常を検知するステップと、前記異常検知により前記ROMに記憶された前記制御ソフトウエアが前記ROMに記憶されたリカバリー用ソフトウエアに上書されるステップと、前記無線回線を経て、前記リカバリー用ソフトウエアに整合する新たな前記差分ファイルを前記RAM上に取得するステップと、前記更新有無を認識するステップから前記実行するステップまでを再度進め、前記新たな差分ファイルに基づく新制御ソフトウエアを生成し、前記制御ソフトウエアを前記新制御ソフトウエアに書き換えするステップと、を順次行うことを特徴とするソフトウエア更新方法。
JP2008244082A 2008-09-24 2008-09-24 ソフトウエア更新方法 Pending JP2010079382A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008244082A JP2010079382A (ja) 2008-09-24 2008-09-24 ソフトウエア更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008244082A JP2010079382A (ja) 2008-09-24 2008-09-24 ソフトウエア更新方法

Publications (1)

Publication Number Publication Date
JP2010079382A true JP2010079382A (ja) 2010-04-08

Family

ID=42209792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008244082A Pending JP2010079382A (ja) 2008-09-24 2008-09-24 ソフトウエア更新方法

Country Status (1)

Country Link
JP (1) JP2010079382A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236587A (zh) * 2010-04-28 2011-11-09 上海中标软件有限公司 firefox浏览器异常恢复方法
CN103634337A (zh) * 2012-08-22 2014-03-12 腾讯科技(深圳)有限公司 页面恢复方法、装置及移动终端
JP2018160208A (ja) * 2017-03-24 2018-10-11 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013536A (ja) * 2002-06-06 2004-01-15 Seiko Epson Corp フラッシュメモリ書き換え制御システム、フラッシュメモリ書き換え制御方法、フラッシュメモリ書き換え制御方法の各工程を実行させるプログラムおよび情報記録媒体
JP2004110610A (ja) * 2002-09-20 2004-04-08 Hitachi Kokusai Electric Inc リモートメンテナンス方式
JP2007189332A (ja) * 2006-01-11 2007-07-26 Sony Ericsson Mobilecommunications Japan Inc ソフトウェア更新方法および移動端末装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013536A (ja) * 2002-06-06 2004-01-15 Seiko Epson Corp フラッシュメモリ書き換え制御システム、フラッシュメモリ書き換え制御方法、フラッシュメモリ書き換え制御方法の各工程を実行させるプログラムおよび情報記録媒体
JP2004110610A (ja) * 2002-09-20 2004-04-08 Hitachi Kokusai Electric Inc リモートメンテナンス方式
JP2007189332A (ja) * 2006-01-11 2007-07-26 Sony Ericsson Mobilecommunications Japan Inc ソフトウェア更新方法および移動端末装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236587A (zh) * 2010-04-28 2011-11-09 上海中标软件有限公司 firefox浏览器异常恢复方法
CN103634337A (zh) * 2012-08-22 2014-03-12 腾讯科技(深圳)有限公司 页面恢复方法、装置及移动终端
CN103634337B (zh) * 2012-08-22 2018-09-18 腾讯科技(深圳)有限公司 页面恢复方法、装置及移动终端
US10198410B2 (en) 2012-08-22 2019-02-05 Tencent Technology (Shenzhen) Company Limited Method, device and mobile terminal for restoring page
JP2018160208A (ja) * 2017-03-24 2018-10-11 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア

Similar Documents

Publication Publication Date Title
JP4944686B2 (ja) ソフトウェア更新方法および携帯端末装置
US8539471B2 (en) Updating firmware of an electronic device
US10114655B2 (en) Rapid start up method for electronic equipment
US8726259B2 (en) System and method for preserving device parameters during a FOTA upgrade
US20110283274A1 (en) Firmware image update and management
JP2007219883A (ja) 移動端末装置およびソフトウェア更新方法
CN101904105A (zh) 在更新期间使用高效的块备份和块恢复的移动手持送受话器
US20050164694A1 (en) Error data recovery system and method in a mobile communication terminal
JP3864337B2 (ja) バージョンアップ方法
US7222342B2 (en) Execution on a machine, the start of an auxiliary downloader when storage of new software memory fails during execution of a first downloader
JPH11328040A (ja) メモリの読み出し制御方法およびプログラムの読み出し制御方法
JP5167936B2 (ja) 情報処理装置
CN112416411B (zh) 升级方法及装置、设备端、服务器、计算机可读介质
JP2001331327A (ja) 電子機器
CN109871334B (zh) 电缆调制解调器及操作方法
JP2010079382A (ja) ソフトウエア更新方法
JP2009009391A (ja) 更新処理ソフトウェア自己更新方法および携帯端末装置
EP2733612B1 (en) Information processing device, method, and program
JP5658200B2 (ja) 通信装置および起動プログラムコード選択方法
JP2012212415A (ja) 無線基地局装置
JP2011053984A (ja) ファームウェア保護装置、そのプログラム
JP2007299222A (ja) データ更新方法、データ更新プログラム、及びそれらを用いた情報端末装置
CN111813597A (zh) 一种空调器
JP5002900B2 (ja) 制御装置とそのプログラム、及び、プログラムダウンロード方法
JP2005128613A (ja) 画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130410