(57)【要約】【課題】生産工数、部品コスト及び版管理の煩雑さを増大させることなく、ファームウエアを更新する。【解決手段】マイクロコンピュータ１０の内部不揮発性メモリ１５は、実際に実行されるファームウエアを記憶している。不揮発性メモリ１１は、予備の記憶領域である。最初の起動時に、不揮発性メモリ１１にリカバリ用のファームウエア２０が記憶されていない場合、マイクロコンピュータ１０は、内部不揮発性メモリ１５に記憶されたファームウエア２０を、不揮発性メモリ１１に、リカバリ用のファームウエア２０として書き込む。【選択図】図１
2011175352.tif 000002
【特許請求の範囲】
【請求項１】
実行用のファームウエアを記憶する第１の記憶部と、
予備の記憶部である第２の記憶部と、
起動時に、前記第２の記憶部に前記ファームウエアが記憶されていない場合に、前記第１の記憶部に記憶された前記ファームウエアを読み出して、前記第２の記憶部にリカバリ用のファームウエアとして書き込む制御部と、
を備えるファームウエア更新装置。
【請求項２】
更新用の前記ファームウエアを入力する入力部をさらに備え、
前記第２の記憶部は、
少なくとも２つの前記ファームウエアを同時に記憶可能な容量を有し、
前記制御部は、
入力した更新用の前記ファームウエアを、リカバリ用の前記ファームウエアとは別に前記第２の記憶部に記憶し、
前記第１の記憶部に記憶された前記ファームウエアを、前記第２の記憶部に記憶された更新用の前記ファームウエアに更新する、
ことを特徴とする請求項１に記載のファームウエア更新装置。
【請求項３】
前記制御部は、
前記第１の記憶部に記憶された前記ファームウエアが正常に動作しない場合に、
前記第１の記憶部に記憶された前記ファームウエアを、前記第２の記憶部に記憶されたリカバリ用の前記ファームウエアに更新する、
ことを特徴とする請求項２に記載のファームウエア更新装置。
【請求項４】
前記制御部は、
前記第１の記憶部に記憶された前記ファームウエアが正常に動作している場合に、
前記第２の記憶部に記憶された更新用の前記ファームウエアを、前記第２の記憶部に記憶されたリカバリ用のファームウエアに変更する、
ことを特徴とする請求項２又は３に記載のファームウエア更新装置。
【請求項５】
前記制御部には、
前記第１の記憶部及び前記第２の記憶部が組み込まれている、
ことを特徴とする請求項１乃至４のいずれか一項に記載のファームウエア更新装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のファームウエア更新装置を備える通信装置。
【請求項７】
請求項１乃至５のいずれか一項に記載のファームウエア更新装置を備える電子機器。
【請求項８】
請求項１乃至５のいずれか一項に記載のファームウエア更新装置と、
通信回線網を介して、前記ファームウエア更新装置に更新用の前記ファームウエアを送信するサーバと、
を備えるファームウエア更新システム。
【請求項９】
ファームウエアを記憶する第１の記憶部と、
予備用の第２の記憶部と、
を備える電子機器のファームウエア更新方法において、
起動時に、前記第２の記憶部に前記ファームウエアが記憶されているか否かを判定する判定工程と、
前記判定工程において、前記第２の記憶部に前記ファームウエアが記憶されていないと判定された場合に、前記第１の記憶部に記憶された前記ファームウエアを読み出して、前記第２の記憶部にリカバリ用のファームウエアとして書き込むリカバリ用ファームウエア生成工程と、
を含むファームウエア更新方法。
【請求項１０】
ファームウエアを記憶する第１の記憶部と、
予備用の第２の記憶部と、
を備える電子機器を制御するコンピュータによって実行されるプログラムにおいて、
起動時に、前記第２の記憶部に前記ファームウエアが記憶されているか否かを判定する判定手順と、
前記判定手順において、前記第２の記憶部に前記ファームウエアが記憶されていないと判定された場合に、前記第１の記憶部に記憶された前記ファームウエアを読み出して、前記第２の記憶部にリカバリ用のファームウエアとして書き込むリカバリ用ファームウエア生成手順と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファームウエアを更新するファームウエア更新装置、通信を行う通信装置、コンピュータがプログラムを実行することにより機能を発揮する電子機器、ファームウエアを更新するファームウエア更新システム、ファームウエア更新方法及びコンピュータによって実行されるプログラムに関する。
【背景技術】
【０００２】
通信回線を介して基地局と接続される通信装置では、プログラムの機能追加、バグ対処等のため、ファームウエアを更新する必要性が生じる場合がある。ファームウエアを更新する手順としては、以下のような手順が考えられる。
【０００３】
まず、例えば基地局等から通信回線を介して、更新用の新しい版のファームウエアを通信装置にダウンロードし、通信装置内に既に記憶されている古い版のファームウエアを、更新用の新しい版のファームウエアに書き換える。この書き換えの後、通信装置が再起動されて、ファームウエアの更新が完了する。
【０００４】
これに関連して、更新されたファームウエアの不具合や、ダウンロード中のデータエラーにより、通信装置が再起動できなくなるのを防ぐシステムが提案されている（例えば、特許文献１、２参照）。これらのシステムでは、装置内に、リカバリ用のファームウエアを記憶する不揮発性メモリが設けられている。リカバリ用のファームウエアは、予め（例えば工場出荷時等に）この不揮発性メモリに書き込まれ保持されている。このリカバリ用のファームウエアは、実際に実行されるファームウエアとは、別の場所に保持されているので、上述のように、実際に実行されるファームウエアが更新されても、消去されることはない。
【０００５】
通信装置が再起動できなくなると、実際に実行されるファームウエアが、リカバリ用のファームウエアに書き換えられた後、再起動されて運用状態になる。このようにして、通信装置が長時間に渡った運用停止状態になることが防止される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３３１３２７号公報
【特許文献２】特開２００２−３３３９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１、２に開示されたシステムでは、リカバリ用のファームウエアを予め不揮発性メモリに書き込む工程が工場出荷前に必要となる。また、この書き込みのため、不揮発性メモリにファームウエアを書き込むための端子を通信装置のハードウェア基板上に設けておく必要がある。このため、通信装置の構造が複雑になり、生産工数や部品コストが増大する。
【０００８】
また、上記特許文献１、２に開示されたシステムでは、実際に実行されるファームウエアとは異なるファームウエアが、リカバリ用のファームウエアとして人為的なミス等により誤って書き込まれる可能性がある。このようなミスを起こさないようにしようとすれば、ファームウエアの版管理が煩雑なものとなる。
【０００９】
この発明は、上記実情に鑑みてなされたものであり、生産工数、部品コスト及び版管理の煩雑さを増大させることなく、ファームウエアを更新することができるファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、この発明に係るファームウエア更新装置において、第１の記憶部は、実行用のファームウエアを記憶する。第２の記憶部は、予備の記憶部である。制御部は、起動時に、第２の記憶部にファームウエアが記憶されていない場合に、第１の記憶部に記憶されたファームウエアを読み出して、第２の記憶部にリカバリ用のファームウエアとして書き込む。
【発明の効果】
【００１１】
この発明によれば、実行用のファームウエアに基づいてリカバリ用のファームウエアプログラムを自動生成するので、リカバリ用のファームウエアを記憶装置に書き込む工程や、書き込むための端子が不要となる。また、リカバリ用のファームウエアは実行中のファームウエアのコピーであるので、両ファームウエアの版の違いを考慮する必要がなくなる。この結果、生産工数、部品コスト及び版管理の煩雑さを増大させることなく、ファームウエアを更新することができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１に係るファームウエア更新システムの全体構成を示すブロック図である。
【図２】マイクロコンピュータのメモリ空間を示す図である。
【図３】図１の通信装置の起動処理のフローチャートである。
【図４】リカバリ用ファームウエア生成プログラムが転送され、実行される様子を示す図である。
【図５】リカバリ用のファームウエアが生成される様子を示す図である。
【図６】図１の通信装置のリカバリ判定処理のフローチャートである。
【図７】図１の通信装置のプログラム更新処理のフローチャートである。
【図８】領域Ｂに更新用のファームウエアが記憶される様子を示す図である。
【図９】ファームウエア更新プログラムが内部ＲＡＭに転送される様子を示す図である。
【図１０】内部不揮発性メモリに記憶されたファームウエアが、更新用のファームウエアに更新される様子を示す図である。
【図１１】更新用のファームウエアが、リカバリ用のファームウエアに切り替えられる様子を示す図である。
【図１２】リカバリ実行プログラムが内部ＲＡＭに転送される様子を示す図である。
【図１３】内部不揮発性メモリに記憶されたファームウエアが、リカバリ用のファームウエアに更新される様子を示す図である。
【図１４】この発明の実施の形態２に係るファームウエア更新システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
次に、この発明の実施の形態について、図面を参照して詳細に説明する。
【００１４】
実施の形態１．
まず、この発明の実施の形態１について説明する。
【００１５】
図１には、この発明の実施の形態１に係るファームウエア更新システム１００の全体構成が示されている。図１で示すように、ファームウエア更新システム１００は、通信装置１と、サーバ２とを備えている。通信装置１は、基地局３に接続する。サーバ２は、通信回線網４に接続している。基地局３は、通信回線網４の基地局である。
【００１６】
このファームウエア更新システム１００は、通信装置１で実行されるファームウエアを更新するためのシステムである。更新用のファームウエアは、サーバ２から、通信回線網４を経由して基地局３に送信され、基地局３から通信装置１にダウンロードされる。
【００１７】
通信装置１内に図示されているのは、ファームウエアを更新するのに必要な構成であり、ファームウエア更新装置５ともいうべきものである。図１に示すように、通信装置１（ファームウエア更新装置５）は、マイクロコンピュータ１０と、第２の記憶部としての不揮発性メモリ１１と、通信コントローラ１２と、を備える。
【００１８】
マイクロコンピュータ１０は、マルチタスク実行可能なコンピュータである。マイクロコンピュータ１０は、第１の記憶部としての内部不揮発性メモリ１５と、内部ランダムアクセスメモリ（ＲＡＭ）１６と、を内部に備える。
【００１９】
不揮発性メモリ１１は、予備の記憶部である。不揮発性メモリ１１には、ファームウエア２０をそれぞれ記憶可能な２つの領域Ａ、Ｂが設けられている。後述するように、この領域Ａ、Ｂに、更新用のファームウエア２０と、リカバリ用のファームウエア２０とが、それぞれ記憶される。
【００２０】
通信コントローラ１２は、基地局３との通信制御を行う。更新用のファームウエア２０は、通信コントローラ１２を介してダウンロードされる。すなわち、この通信コントローラ１２が、更新用のファームウエア２０を入力する入力部である。
【００２１】
図２には、マイクロコンピュータ１０のメモリ空間が示されている。図２に示すように、マイクロコンピュータ１０のメモリ空間には、内部不揮発性メモリ１５と、内部ＲＡＭ１６と、不揮発メモリ１１とが割り当てられている。
【００２２】
内部不揮発性メモリ１５は、固定エリアと書換エリアとに分割されている。固定エリアでは、通信装置１のデータの書き換えが禁止されているエリアであり、書換エリアは、通信装置１の運用中にデータが書き換えられるエリアである。出荷状態において、固定エリアには、メインプログラム２１と、ダウンロードプログラム２２と、リカバリ用ファームウエア生成プログラム２３と、リカバリ実行プログラム２４と、ファームウエア更新プログラム２５とが記憶されている。一方、書換エリアには、ファームウエア２０が記憶されている。
【００２３】
メインプログラム２１は、リセット時からマイクロコンピュータ１０によって実行されるプログラムである。ダウンロードプログラム２２は、更新用のファームウエアをダウンロードするプログラムである。メインプログラム２１とダウンロードプログラム２２とは、それぞれの別のタスクである。
【００２４】
リカバリ用ファームウエア生成プログラム２３は、最初の起動時に、内部不揮発性メモリ１５に記憶されたファームウエア２０を、不揮発性メモリ１１の領域Ａに転送することにより、リカバリ用のファームウエア２０を生成するプログラムである。リカバリ実行プログラム２４は、不揮発性メモリ１１に記憶されたリカバリ用のファームウエア２０を、内部不揮発性メモリ１５に記憶されたファームウエア２０に上書きすることにより、リカバリ処理を実行するプログラムである。ファームウエア更新プログラム２５は、マイクロコンピュータ１０によって実際に実行されるファームウエア２０を、ダウンロードされた更新用のファームウエア２０に更新するプログラムである。
【００２５】
ファームウエア２０は、出荷時点でのファームウエアであり、マイクロコンピュータ１０によって実際に実行される最初のファームウエアである。
【００２６】
マイクロコンピュータ１０は、リセット後、メインプログラム２１を実行することにより、不揮発性メモリ１１にリカバリ用のファームウエア２０が記憶済であるか否かを判定し、記憶済でなければ、リカバリ用ファームウエア生成用プログラム２３を実行することにより、内部不揮発性メモリ１５に記憶されたファームウエア２０を読み出して、不揮発性メモリ１１にリカバリ用のファームウエアとして書き込んで、リカバリ用のファームウエア２０を生成する。
【００２７】
また、マイクロコンピュータ１０は、ダウンロードプログラム２２を実行することにより、基地局３から更新用のファームウエア２０がダウンロードされ、不揮発性メモリ１１に記憶されると、ファームウエア更新プログラム２５を実行することにより、内部不揮発性メモリ１５に記憶されたファームウエア２０を、更新用のファームウエア２０に更新する。
【００２８】
さらに、マイクロコンピュータ１０は、メインプログラム２１を実行することにより、ファームウエア２０の更新後に、更新されたファームウエア２０の正常動作チェックを行い、正常に動作していないと判定した場合には、リカバリ実行プログラム２４を実行することにより、内部不揮発性メモリ１５に記憶されたファームウエア２０を、不揮発性メモリ１１に記憶されたリカバリ用のファームウエア２０に更新する。
【００２９】
さらに、マイクロコンピュータ１０は、メインプログラム２１を実行することにより、ファームウエア２０の更新後に、更新されたファームウエア２０の正常動作チェックを行い、正常に動作していると判定した場合には、不揮発性メモリ１１に記憶された更新用のファームウエア２０を、不揮発性メモリ１１に記憶されたリカバリ用のファームウエア２０に変更する。
【００３０】
メインプログラム２１、ダウンロードプログラム２２、リカバリ用ファームウエア生成プログラム２３、リカバリ実行プログラム２４及びファームウエア更新プログラム２５は、マイクロコンピュータ１０の内部不揮発性メモリ１５の固定エリアに置かれているので、プログラム更新時に書き換えられる心配はない。すなわち、これらのプログラムについては、リカバリの際、プログラム更新失敗等により破壊され自己復活が不可能となることが防止されている。
【００３１】
リカバリ用ファームウエア生成プログラム２３、リカバリ実行プログラム２４及びファームウエア更新プログラム２５は、内部不揮発性メモリ１５へアクセスするプログラムであるため、マイクロコンピュータ１０は、これらのプログラムを、内部ＲＡＭ１６に転送してから実行する。
【００３２】
次に、この実施の形態に係る通信装置１（ファームウエア更新装置５）の動作について、図３乃至図１３を参照して説明する。ここで、前提として、出荷の時点において、不揮発性メモリ１１の領域Ａ、Ｂは初期化されており、特定の初期値データ（例えば１６進数で、０ｘＦＦ等）が書き込まれているものとする。
【００３３】
まず、通信装置１の起動処理について説明する。図３には、起動処理のフローチャートが示されている。
【００３４】
（起動処理）
通信装置１を起動すると、マイクロコンピュータ１０にリセット信号が入力される。リセット信号が入力されたマイクロコンピュータ１０は、内部不揮発性メモリ１５に記憶されたメインプログラム２１の実行を開始する。このメインプログラム２１では、マイクロコンピュータ１０は、まず、不揮発性メモリ１１の領域Ａ、Ｂにリカバリ用のファームウエア２０が記憶済みであるか否かを判定する（ステップＳ１）。マイクロコンピュータ１０は、領域Ａ、Ｂから読み込んだデータが初期化データと一致するか否かにより、この判定を行う。出荷直後では、領域Ａ、Ｂには、リカバリ用のファームウエア２０が記憶されておらず、初期値データ（０ｘＦＦ等）が書き込まれているので、この判定が否定される（ステップＳ１；Ｎｏ）。
【００３５】
続いて、マイクロコンピュータ１０は、リカバリ用ファームウエア生成プログラム２３を、内部不揮発性メモリ１５から内部ＲＡＭ１６に転送する（ステップＳ２）。内部不揮発性メモリ１５に記憶されたプログラムの実行中は、内部不揮発性メモリ１５にアクセスすることができないため、マイクロコンピュータ１０は、図４に示すように、内部不揮発性メモリ１５に記憶されたリカバリ用ファームウエア生成プログラム２３を、内部ＲＡＭ１６に転送してから、内部ＲＡＭ１６に記憶されたリカバリ用ファームウエア生成プログラム２３を実行するのである。
【００３６】
続いて、マイクロコンピュータ１０は、プログラムの実行位置を、内部不揮発性メモリ１５のメインプログラム２１上の現在の実行位置から、リカバリ用ファームウエア生成プログラム２３の実行開始位置にジャンプさせて（図４参照）、内部ＲＡＭ１６に記憶されたリカバリ用ファームウエア生成プログラム２３の実行を開始する（ステップＳ３）。
【００３７】
リカバリ用ファームウエア生成プログラム２３では、まず、マイクロコンピュータ１０は、動作モードを特殊モードに設定し、内部不揮発性メモリ１５を読込可能な状態とする（ステップＳ４）。
【００３８】
続いて、マイクロコンピュータ１０は、図５に示すように、ファームウエア２０を内部不揮発性メモリ１５から不揮発性メモリ１１の領域Ａに転送する（ステップＳ５）。マイクロコンピュータ１０は、ファームウエア２０を、内部不揮発性メモリ１５から一定のサイズだけ読み込んで、不揮発性メモリ１１の領域Ａに書き込んでいく。マイクロコンピュータ１０は、ファームウエア２０のデータが不揮発性メモリ１１の領域Ａに全て書き込まれるまで、この転送を繰り返し実行する。これにより、図５に示すように、領域Ａに、リカバリ用のファームウエア２０が記憶される。
【００３９】
転送が終了すると、マイクロコンピュータ１０は、動作モードを特殊モードから通常モードに切り替え、自身を通常状態に戻す（ステップＳ６）。その後、マイクロコンピュータ１０は、リセットをかけ、通信装置１を再起動する。
【００４０】
このように、このリカバリ用ファームウエア生成プログラム２３を実行することにより、マイクロコンピュータ１０によって実行されるファームウエア２０に基づいて、リカバリ用のファームウエア２０が領域Ａに自動生成されるので、出荷時にリカバリ用ファームウエア２０を別に記憶しておく必要はない。
【００４１】
再起動後、マイクロコンピュータ１０は、再び、内部不揮発性メモリ１５に記憶されたメインプログラム２１の実行を開始する。マイクロコンピュータ１０は、まず、不揮発性メモリ１１の領域Ａ、Ｂにリカバリ用のファームウエア２０が記憶済みであるか否かを判定する（ステップＳ１）。ここでは、領域Ａに、リカバリ用のファームウエア２０が記憶されているので、リカバリ用のファームウエア２０が記憶済みであるとして（ステップＳ１；Ｙｅｓ）、マイクロコンピュータ１０は、リカバリ判定処理を行う。
【００４２】
リカバリ判定処理では、図６に示すように、マイクロコンピュータ１０は、まず、ファームウエア２０の更新が実施されたか否かを判定する（ステップＳ１１）。ファームウエア２０が更新実施済であるか否かは、後述するＦ／Ｗ更新フラグを参照して、判定される。この時点では、まだ、リカバリ用のファームウエア２０が領域Ａに記憶された直後の再起動であるので、ファームウエア２０は更新されておらず、Ｆ／Ｗ更新フラグはセットされていないので（ステップＳ１１；Ｎｏ）、マイクロコンピュータ１０は、通常運転処理へ移行する。
【００４３】
ここで、通常運転処理中、ファームウエア２０を更新する必要が生じると、マイクロコンピュータ１０は、通常運転処理を中断して、図７に示すプログラム更新処理を実行する。このプログラム更新処理では、図７に示すように、まず、マイクロコンピュータ１０は、ダウンロードプログラム２２を実行することにより、基地局３から更新用のファームウエア２０をダウンロードし、不揮発性メモリ１１の領域Ｂに記憶する（ステップＳ２１）。
【００４４】
続いて、マイクロコンピュータ１０は、更新用のファームウエア２０のダウンロードが完了したか否かを判定する（ステップＳ２２）。ダウンロードが完了していなければ（ステップＳ２２；Ｎｏ）、マイクロコンピュータ１０は、ダウンロードを続ける（ステップＳ２１）。このようにして、図８に示すように、領域Ｂに更新用のファームウエアが記憶される。
【００４５】
ダウンロードが完了すると（ステップＳ２２；Ｙｅｓ）、マイクロコンピュータ１０は、図９に示すように、内部不揮発性メモリ１５に記憶されたファームウエア更新プログラム２５を、内部ＲＡＭ１６に転送する（ステップＳ２３）。
【００４６】
続いて、マイクロコンピュータ１０は、図９に示すように、内部ＲＡＭ１６に転送されたファームウエア更新プログラム２５の実行を開始する（ステップＳ２４）。
【００４７】
このファームウエア更新プログラム２５では、まず、マイクロコンピュータ１０は、動作モードを特殊モードに設定し、内部不揮発性メモリ１５を書込可能状態に設定する（ステップＳ２５）。
【００４８】
続いて、マイクロコンピュータ１０は、図１０に示すように、不揮発性メモリ１１の更新用領域（領域Ｂ）に作成された更新用のファームウエア２０を読み込んで、内部不揮発性メモリ１５に書き込む（ステップＳ２６）。この処理は、全ての更新用のファームウエア２０が内部不揮発性メモリ１５に記憶されるまで、繰り返し実行される。この結果、図１０に示すように、内部不揮発性メモリ１５に記憶されたファームウエア２０が、更新用のファームウエア２０に更新される。
【００４９】
続いて、マイクロコンピュータ１０は、Ｆ／Ｗ更新フラグをオンする（ステップＳ２７）。さらに、マイクロコンピュータ１０は、動作モードを通常モードに設定して、自身を通常状態に戻し（ステップＳ２８）、リセットをかけ再起動する。
【００５０】
リセット後、図３に示すように、マイクロコンピュータ１０は、リカバリ用のファームウエア２０が記憶済か否かを判定し（ステップＳ１）、すでに記憶済であるので（ステップＳ１；Ｙｅｓ）、リカバリ判定処理（図６参照）に移行する。
【００５１】
図６に示すように、マイクロコンピュータ１０は、ファームウエア２０の更新が実施済みであるので（ステップＳ１１；Ｙｅｓ）、マイクロコンピュータ１０は、更新されたファームウエア２０が正常に動作しているか否かを判定する（ステップＳ１２）。例えば、ファームウエア２０の主要機能をバッチ処理で実行するテストモード等を予め用意しておき、テストの結果が全て成功であれば正常に動作していると判定することができる。
【００５２】
ファームウエア２０が正常に動作していると判定された場合（ステップＳ１２；Ｙｅｓ）、マイクロコンピュータ１０は、不揮発性メモリ１１の更新用のファームウエア２０を、リカバリ用のファームウエア２０に変更する（ステップＳ１３）。すなわち、図１１に示すように、マイクロコンピュータ１０は、領域Ｂに記憶されたファームウエア２０をリカバリ用のファームウエア２０に設定する。次回のプログラム更新時にリカバリが必要となったときは、領域Ｂに記憶されたファームウエア２０が、リカバリ用として使用される。このようにすれば、正常動作確認済みの最新のファームウエア２０をリカバリ用のファームウエア２０とすることができる。
【００５３】
続いて、マイクロコンピュータ１０は、通常運転処理に移行する。
【００５４】
一方、ファームウエア２０が正常に動作していないと判定された場合（ステップＳ１２；Ｎｏ）、更新されたファームウエア２０に何等かの不具合があったものとみなせるので、マイクロコンピュータ１０は、図１２に示すように、リカバリ実行プログラム２４を、内部不揮発性メモリ１５から内部ＲＡＭ１６に転送し（ステップＳ１４）、内部ＲＡＭ１６に記憶されたリカバリ実行プログラム２４を実行する（ステップＳ１５）。
【００５５】
続いて、マイクロコンピュータ１０は、動作モードを、通常モードから特殊モードに切り替え、内部不揮発性メモリ１５を書込可能な状態に設定する（ステップＳ１６）。
【００５６】
続いて、マイクロコンピュータ１０は、図１３に示すように、リカバリ用領域（ここでは、領域Ａ）に作成されたリカバリ用のファームウエア２０を読み込んで、内部不揮発性メモリ１５に書き込む（ステップＳ１７）。この処理は、全てのファームウエア２０が全て書き込まれるまで繰り返し実施される。これにより、内部不揮発性メモリ１５に記憶されたファームウエア２０は、リカバリ用のファームウエア２０に戻される。
【００５７】
続いて、マイクロコンピュータ１０は、Ｆ／Ｗ更新フラグをオフする（ステップＳ１８）。さらに、マイクロコンピュータ１０は、動作モードを通常モードに設定して、自身を通常状態に戻し（ステップＳ１９）、リセットをかけて、再起動する。
【００５８】
図３に戻り、マイクロコンピュータ１０は、リカバリ用のファームウエア２０が記憶済みであるので（ステップＳ１；Ｙｅｓ）、リカバリ判定処理に移行する。そして、図６に示すように、Ｆ／Ｗ更新フラグがオフなので（ステップＳ１１；Ｎｏ）、マイクロコンピュータ１０は、通常運転に移行する。
【００５９】
実施の形態２．
次に、この発明の実施の形態２について説明する。
【００６０】
図１４には、この実施の形態に係るファームウエア更新システム１００の構成が示されている。図１４に示すように、ファームウエア更新システム１００は、通信装置１において、不揮発性メモリ１１が、マイクロコンピュータ１０内に設けられている点が、上記実施形態１に係るファームウエア更新システム１００と異なる。
【００６１】
通信装置１（ファームウエア更新装置５）の動作は、上記実施形態と同じである。
【００６２】
なお、上記各実施の形態において、実行されるプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical Disk）等のコンピュータ読み取り可能な記録媒体に記憶して配布し、そのプログラムをインストールすることにより、上述の処理を実行するシステムを構成することとしてもよい。
【００６３】
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に記憶しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
【００６４】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に記憶して配布してもよく、また、ダウンロード等してもよい。
【００６５】
なお、上記各実施の形態において、設定した数値は一例であり、適応する通信装置１に応じて適切に設定する必要があることはいうまでもない。
【００６６】
なお、上記各実施の形態では、通信装置１のファームウエアを更新する場合について説明したが、この発明はこれには限られない。この発明は、ゲーム機器やテレビジョン装置など、ファームウエアが実装されている電気機器であれば、適用が可能である。
【産業上の利用可能性】
【００６７】
この発明は、コンピュータがファームウエアを含むプログラムを実行することにより、その機能を発揮する電子機器などに好適である。
【符号の説明】
【００６８】
１  通信装置
２  サーバ
３  基地局
４  通信回線網
５  ファームウエア更新装置
１０  マイクロコンピュータ
１１  不揮発性メモリ
１２  通信コントローラ
１５  内部不揮発性メモリ
１６  内部ＲＡＭ
２０  ファームウエア
２１  メインプログラム
２２  ダウンロードプログラム
２３  リカバリ用ファームウエア生成プログラム
２４  リカバリ実行プログラム
２５  ファームウエア更新プログラム
１００  ファームウエア更新システム
【図１】
2011175352.tif 000003
【図２】
2011175352.tif 000004
【図３】
2011175352.tif 000005
【図４】
2011175352.tif 000006
【図５】
2011175352.tif 000007
【図６】
2011175352.tif 000008
【図７】
2011175352.tif 000009
【図８】
2011175352.tif 000010
【図９】
2011175352.tif 000011
【図１０】
2011175352.tif 000012
【図１１】
2011175352.tif 000013
【図１２】
2011175352.tif 000014
【図１３】
2011175352.tif 000015
【図１４】
2011175352.tif 000016