JP2004110220A - プログラムの更新方法 - Google Patents
プログラムの更新方法 Download PDFInfo
- Publication number
- JP2004110220A JP2004110220A JP2002269380A JP2002269380A JP2004110220A JP 2004110220 A JP2004110220 A JP 2004110220A JP 2002269380 A JP2002269380 A JP 2002269380A JP 2002269380 A JP2002269380 A JP 2002269380A JP 2004110220 A JP2004110220 A JP 2004110220A
- Authority
- JP
- Japan
- Prior art keywords
- program
- memory
- stored
- copied
- holding memory
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】プログラムの更新の際に、当該更新による障害の発生を抑止する。
【解決手段】プログラムメモリ22の更新前プログラム(a)を外部記憶媒体5にコピーし(b)、コピーの正常性を確認できたならば、起動設定を外部記憶媒体5に設定し、外部記憶媒体5の更新後プログラムをプログラムメモリ22にコピーして(c)、電子機器を再起動する。再起動後、起動設定が外部記憶媒体5である場合には、外部記憶媒体5にコピーされた更新前プログラムが起動する。この状態で、ユーザが、更新後プログラムの起動を選択したならば、プログラムメモリ22の更新後プログラムを起動する。一方、ユーザが、起動設定更新を選択したならば、起動設定をプログラムメモリ22に復する。これにより、以降は、再起動の度に、プログラムメモリ22の更新後プログラムが起動する。
【選択図】図3
【解決手段】プログラムメモリ22の更新前プログラム(a)を外部記憶媒体5にコピーし(b)、コピーの正常性を確認できたならば、起動設定を外部記憶媒体5に設定し、外部記憶媒体5の更新後プログラムをプログラムメモリ22にコピーして(c)、電子機器を再起動する。再起動後、起動設定が外部記憶媒体5である場合には、外部記憶媒体5にコピーされた更新前プログラムが起動する。この状態で、ユーザが、更新後プログラムの起動を選択したならば、プログラムメモリ22の更新後プログラムを起動する。一方、ユーザが、起動設定更新を選択したならば、起動設定をプログラムメモリ22に復する。これにより、以降は、再起動の度に、プログラムメモリ22の更新後プログラムが起動する。
【選択図】図3
Description
【0001】
【発明の属する技術分野】
本発明は、各種電子機器に組み込まれるファームウエアプログラムなどのプログラムを、バージョンアップなどのために更新する技術に関するものであり、特に、当該更新による障害の発生を抑止する技術に関するものである。
【0002】
【従来の技術】
各種電子機器には、ROMなどの可書換型の不揮発性メモリに格納された形態で組み込まれるファームウエアプログラムを、バージョンアップのために適時更新する機能が予め組み込まれていることが多い。
そして、従来は、このようなファームウエアプログラムの更新は、単に、ROM上のファームウエアプログラムを、新しいファームウエアプログラムに書き換えることにより行われてきた。
【0003】
【発明が解決しようとする課題】
従来のファームウエアプログラム更新の技術によれば、更新作業途中で電源のオフ等の障害が発生した場合、ROM上のファームウエアプログラムが不完全な形で書き換えられてしまい、その後、ファームウエアプログラムを正常に実行できないために、その電子機器を正常に起動することができなくなったり、正常なファームウエアプログラムの更新を行えなくなってしまうことがある。
【0004】
そこで、本発明は、プログラムの更新の際に、当該更新による障害の発生を抑止することを課題とする。
【0005】
【課題を解決するための手段】
前記課題達成のために、本発明は、電子機器の不揮発性のプログラム保持用メモリに格納されたプログラムを当該電子機器が更新するプログラムの更新方法を、前記プログラム保持用メモリに格納されているプログラムを、前記プログラム保持用メモリ以外の不揮発性のメモリであるバックアップ用メモリにコピーするステップと、前記バックアップ用メモリにコピーしたプログラムと前記プログラム保持用メモリに格納されているプログラムの同一性を確認するステップと、前記同一性が確認できた場合に、前記電子機器の起動後に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定するステップと、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップと、前記電子機器の起動時に、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている場合に、当該電子機器が、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するステップと、前記バックアップ用メモリにコピーしたプログラムが稼働した後に、ユーザの指示に応じて、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップと、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記電子機器の起動後に、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定するステップと、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップとより構成したものである。
【0006】
このようなプログラムの更新方法によれば、前記プログラム保持用メモリに格納されているプログラムを前記バックアップ用メモリにコピーし、そのコピーの正常性が確認された後に、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するので、前記プログラム保持用メモリに格納されているプログラムの更新が失敗した場合、または、前記プログラム保持用メモリに格納されているプログラムを更新する新たなプログラム自体に問題がある場合には、コピーしたプログラムを用いて、前記プログラム保持用メモリに格納されているプログラムを元のプログラムに復帰することができるようになる。
【0007】
また、前記プログラム保持用メモリに格納されているプログラムを更新した後は、ユーザの指示があるまで、電子機器の起動後には、前記プログラム保持用メモリに格納されている更新後のプログラムではなく、前記バックアップ用メモリにコピーした更新前のプログラムが稼働するようになるので、プログラム保持用メモリのプログラム更新後の最初の起動後等に、プログラム保持用メモリの更新後のプログラムに問題があるために、電子機器が正常に動作しなくなってしまい、これにより更新後のプログラムに生じた問題に対処するための所要の処理を電子機器が行えなくなってしまうことを避けることができる。
【0008】
また、本更新方法によれば、このように起動後に前記バックアップ用メモリにコピーした更新前のプログラムが稼働するように設定されている状態のまま、前記プログラム保持用メモリに格納されている更新後のプログラムを稼働させ、その動作の正常性を確認することができる。すなわち、もし、前記プログラム保持用メモリに格納されている更新後のプログラムが正常に動作しなった場合には、電子機器の再起動により、前記バックアップ用メモリにコピーした更新前のプログラムを稼働するので、上述のように電子機器が正常に動作しなくなってしまい、これにより更新後のプログラムに生じた問題に対処するための所要の処理を電子機器が行えなくなってしまうことを避けることができる。
【0009】
そして、前記プログラム保持用メモリに格納されている更新後のプログラムの正常性が確認できた場合には、ユーザは所定の指示を行って、起動後に前記プログラム保持用メモリに格納されている更新後のプログラムが稼働するように設定することにより、プログラムの更新を完了することができる。
【0010】
ここで、このようなプログラムの更新方法においては、さらに、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップを設けるようにしても良い。
【0011】
このようにすることにより、前記プログラム保持用メモリに格納されている更新後のプログラムに問題が生じた場合には、問題を修正したプログラムに再度前記プログラム保持用メモリに格納されているプログラムを更新し、以上説明した、プログラム保持用メモリのプログラム更新後の動作を行うことができるようになる。
【0012】
また、以上のプログラムの更新方法においては、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記バックアップ用メモリにコピーしたプログラムで、前記プログラム保持用メモリに格納されているプログラムを更新するステップをさらに設けるようにしてもよい。
【0013】
このようにすることにより、前記プログラム保持用メモリに格納されている更新後のプログラムに問題が生じた場合には、前記プログラム保持用メモリに格納されているプログラムを更新前のプログラムに復することができるようになる。ここで、以上のプログラムの更新方法においては、前記バックアップ用メモリは過般型の記憶媒体とし、前記プログラム保持用メモリに格納されているプログラムの新たなプログラムへの更新は、前記過般型の記憶媒体に記憶しておいた前記新たなプログラムで前記プログラム保持用メモリに格納されているプログラムを更新することにより行うようにするようにすることも、特段、そのような過般型の記憶媒体を備えた電子機器のプログラムの更新への適用においては、更新作業の容易性や更新のために要する資源の節減の上などから好ましい。
【0014】
【発明の実施の形態】
以下、本発明の実施形態について電子機器のファームウエアプログラムの更新への適用を例にとり説明する。
図1に、本実施形態においてファームウエアプログラム更新の対象とする電子機器の構成例を示す。
図示するように、この電子機器は、CPU1、フラッシュメモリなどの書き換え可能な可書換型のROM2、CPU1の主記憶として使用されるRAM3、過般型のメモリカードなどの外部記憶媒体5を装着可能な外部記憶媒体インタフェース4、入力インタフェース6を介して接続された、キースイッチなどの入力装置7、表示インタフェース8を介して接続されたLCDなどの表示装置9、不揮発性のメモリである起動設定レジスタ10、当該電子機器の機能を提供する機能部11とを有する。ここで電子機器はたとえばプリンタなどであり、この場合、機能部11は印刷機能を提供するものとなる。
【0015】
さて、本実施形態の説明においては、便宜上、ROM2の記憶領域を二つに分割した一方の記憶領域を起動プログラムメモリ21と呼び、他方の記憶領域をプログラムメモリ22と呼ぶ。プログラムメモリ22はバーションアップなどのために更新されるファームウエアのプログラムが格納されるものであり、起動プログラムメモリ21はプログラムメモリ22のプログラムの起動処理を行う、通常は更新しないファームウエアの起動処理プログラムが格納されるものである。
【0016】
以下、このような電子機器における、プログラムメモリ22に格納されたプログラムの更新処理について説明する。
図2に、起動プログラムメモリ21に格納された起動処理プログラムが行う起動処理の手順を示す。
本起動処理プログラムは、電子機器の起動時に起動プログラムからRAM3にロードされCPU1によって実行される。
図示するように、本起動処理では、まず、電子機器各部の所定の初期化処理を行う(ステップ200)。そして、次に、起動設定レジスタ10に格納されている起動設定がプログラムメモリ22となっているか、それとも外部記憶媒体5となっているかを調べる(ステップ202)。ここで、この起動設定は、通常時はプログラムメモリ22となっている。
【0017】
起動設定がプログラムメモリ22である場合、起動処理は、プログラムメモリ22のプログラムを起動する(ステップ204)。すなわち、CPU1にプログラムメモリ22からプログラムをRAM3にロードさせて実行させる。そして、以降は入力装置7を介したユーザからの更新指示を待つ(ステップ206)。
【0018】
ここで、ユーザは現在のプログラムメモリ22のプログラム(以下、便宜上「更新前プログラム」と記す)の更新を行う場合、新しいプログラム(以下、便宜上「更新後プログラム」と記す)を格納した外部記憶媒体5を、外部記憶媒体インタフェース4に装着し、入力装置7から更新指示を行う。
【0019】
起動処理では、更新指示があった場合(ステップ206)、まず、その時点で図3aに示すようにプログラムメモリ22に格納されている更新前プログラムを、図3bに示すように外部記憶媒体5にコピー(バックアップ)する(ステップ208)。次に、外部記憶媒体5にコピーした更新前プログラムと、プログラムメモリ22上のコピー元の更新前のプログラムの同一性をチェックする(ステップ210)。そして、正常にコピーされたことが確認できなかった場合には、表示装置にコピーエラーを通知するメッセージを表示する(ステップ218)。ここで、この表示からエラーを確認したユーザは、電子機器を再起動することにより、初めから起動処理を開始させることができ、また、この時点で、図3bに示すようにプログラムメモリ22、設定起動レジスタの内容は変更されていないので、再起動された電子機器は従前通り動作することになる。
【0020】
一方、正常にコピーされたことを確認できた場合には、起動レジスタの起動設定を外部記憶媒体5に変更し(ステップ214)、図3cに示すように、外部記憶媒体5に格納されている更新後プログラムで、プログラムメモリ22の更新前プログラムを書き換える(ステップ216)。そして、電子機器を再起動する(ステップ234)。
【0021】
さて、この後、電子機器が再起動されると、起動処理が実行され上述のように動作するが、今度は、図3dに示すように起動設定が外部記憶媒体5となっているので、ステップ202の判定によりステップ220に進み、プログラムメモリ22上のプログラムではなく、外部記憶媒体5にコピーされた更新前プログラムを起動する(ステップ220)。そして、ユーザより入力装置7を介して、再コピー、更新後プログラム起動、起動設定更新のいづれかの動作選択を受け付ける(ステップ222)。なお、ステップ214で起動レジスタの起動設定を外部記憶媒体5に変更した後に、ステップ216でプログラムメモリ22の更新前プログラムを書き換えているので、もしステップ216の書き換え中に障害が発生した場合であっても、再起動後には外部記憶媒体5にコピーされ正常性が確認された更新前プログラムが支障なく起動することになる。
【0022】
さて、通常、ユーザは、更新指示後の最初の動作選択としては、ROM2にコピーした更新後プログラムの正常性を確認するために、更新後プログラム起動を選択する。
起動処理では、更新後プログラム起動を受け付けた場合には(ステップ226)、プログラムメモリ22上の更新後プログラムを起動する(ステップ228)。そして、ユーザは起動された更新後プログラムの動作の正常性を確認し、更新後プログラムの動作の正常性、または、異常を確認したならば、電子機器を再起動する。
【0023】
そして、電子機器が再起動されると、起動処理が実行され上述のように動作して外部記憶媒体5にコピーされた更新前プログラムを稼働し、再度、ユーザより入力装置7を介して、再コピー、更新後プログラム起動、起動設定更新のいづれかの動作選択を受け付ける(ステップ222)。すなわち、先に稼働させてみたプログラムメモリ22上の更新後プログラムに問題があった場合でも、再起動によって外部記憶媒体5にコピーされた更新前プログラムが稼働する状態に戻り、以下の再コピーなどの、更新後プログラムの問題に対処する処理を行うことができる。
【0024】
さて、ユーザは、先に更新後プログラムの動作の異常を確認している場合には、再起動後に再コピーを選択する。
再コピーが選択された場合(ステップ224)、起動処理では、ステップ208に進み、外部記憶媒体5の更新後プログラムを再度ROM2に書き込み、以降のステップに進み前述のように処理を行う。これにより、何らかの事情により外部記憶媒体5の更新後プログラムのROM2へのコピーが正しく行われなかった場合には、再度、外部記憶媒体5の更新後プログラムのROM2へのコピーから更新の処理を行うことができるようになる。また、外部記憶媒体5に、先にROM2へコピーした更新後プログラムの不具合を修正したプログラムを格納し、この修正後のプログラムに、更新後のプログラムとするプログラムを切り替えることもできる。
【0025】
一方、ユーザは、先に更新後プログラムの動作の正常性を確認している場合には、起動設定更新を選択する。そして、起動設定更新が選択された場合(ステップ230)、起動処理では、ステップ232に進み、図3eに示すように起動設定レジスタ10の起動設定をプログラムメモリ22に設定し(ステップ232)、電子機器を再起動する(ステップ234)。
【0026】
すると、以降は、起動設定がプログラムメモリ22であることより、ステップ202の判定に従って、起動処理ではステップ204でプログラムメモリ22の更新後プログラムを起動するようになる。
ところで、以上では、通常、更新しない起動プログラムメモリ21に格納した起動プログラムに、プログラムメモリ22のプログラムの更新機能を設けたが、この更新機能は、プログラムメモリ22に格納されるプログラム自体に備えるようにしても良い。
【0027】
すなわち、図4aに示すように、起動プログラムによる起動処理は、前述したステップ200〜203、220の初期化処理と起動設定に応じたプログラムの起動処理のみを行うように構成し、起動処理により起動される更新前プログラムと更新後プログラムの双方に、図4bに示すように起動設定に応じて(ステップ401)、前述したステップ206〜218、234か、ステップ224〜234のいずれかを行うプログラムを含めるようにしてもよい。
【0028】
または、このような更新機能を提供するプログラムは、外部記憶媒体5に別途格納しておき、起動設定が外部記憶媒体5である場合や、ユーザより所定の入力があった場合に、起動処理より起動するようにすることもできる。
また、以上の実施形態のステップ222においては、動作選択として、さらにプログラム復帰の選択を可能とし、プログラム復帰が選択された場合には、外部記憶媒体5に格納されている更新前プログラムをプログラムメモリ22に復帰すると共に、起動設定をプログラムメモリ22に設定するようにしても良い。このようにすることにより、更新後プログラムの動作に異常があった場合などに、状態を、以上のような更新動作開始前の状態に元に復することができる。
【0029】
また、以上の実施形態において、ステップ228でプログラムメモリ22の更新後プログラムを起動した後に、再起動することなく起動設定更新の動作選択を受付、起動設定をプログラムメモリ22に変更できるようにしてもよい。
また、ステップ208で行うプログラムメモリ22の更新前プログラムのコピーのコピー先は、ROM2に充分な容量を確保できる場合には、予め定めて置いたROM2のバックアップ用領域とするようにしても良い。
また、電子機器に所要のネットワーク通信機能を備えることにより、以上の外部記憶媒体5に代えて、ネットワーク上の記憶装置を用いるようにすることもできる。
以上、本発明の実施形態について説明した。
このように本実施形態によれば、プログラムの更新処理を行っている際に、電源オフや、更新後プログラムの不具合や、外部記憶媒体5の抜き取りなどの影響により、プログラムメモリ22に書き込んだプログラムに問題が生じた場合でも、支障なく、その問題を克服するための処理を継続することができる。
【0030】
なお、本実施形態はファームウエアプログラムの更新に限らず、任意のプログラムの更新に適用可能である。
【0031】
【発明の効果】
以上のように、本発明によれば、プログラムの更新の際に、当該更新による障害の発生を抑止することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るプログラム更新の対象となる電子機器の構成例を示すブロック図である。
【図2】本発明の実施形態に係る起動処理を示すフローチャートである。
【図3】本発明の実施形態に係るプログラムの更新の手順を示す図である。
【図4】本発明の実施形態に係るプログラム更新のための他の処理構成例を示すフローチャートである。
【符号の説明】
1:CPU、2:ROM、3:RAM、4:外部記憶媒体インタフェース、5:外部記憶媒体、6:入力インタフェース、7:入力装置、8:表示インタフェース、10:起動設定レジスタ、11:機能部、21:起動プログラムメモリ、22:プログラムメモリ。
【発明の属する技術分野】
本発明は、各種電子機器に組み込まれるファームウエアプログラムなどのプログラムを、バージョンアップなどのために更新する技術に関するものであり、特に、当該更新による障害の発生を抑止する技術に関するものである。
【0002】
【従来の技術】
各種電子機器には、ROMなどの可書換型の不揮発性メモリに格納された形態で組み込まれるファームウエアプログラムを、バージョンアップのために適時更新する機能が予め組み込まれていることが多い。
そして、従来は、このようなファームウエアプログラムの更新は、単に、ROM上のファームウエアプログラムを、新しいファームウエアプログラムに書き換えることにより行われてきた。
【0003】
【発明が解決しようとする課題】
従来のファームウエアプログラム更新の技術によれば、更新作業途中で電源のオフ等の障害が発生した場合、ROM上のファームウエアプログラムが不完全な形で書き換えられてしまい、その後、ファームウエアプログラムを正常に実行できないために、その電子機器を正常に起動することができなくなったり、正常なファームウエアプログラムの更新を行えなくなってしまうことがある。
【0004】
そこで、本発明は、プログラムの更新の際に、当該更新による障害の発生を抑止することを課題とする。
【0005】
【課題を解決するための手段】
前記課題達成のために、本発明は、電子機器の不揮発性のプログラム保持用メモリに格納されたプログラムを当該電子機器が更新するプログラムの更新方法を、前記プログラム保持用メモリに格納されているプログラムを、前記プログラム保持用メモリ以外の不揮発性のメモリであるバックアップ用メモリにコピーするステップと、前記バックアップ用メモリにコピーしたプログラムと前記プログラム保持用メモリに格納されているプログラムの同一性を確認するステップと、前記同一性が確認できた場合に、前記電子機器の起動後に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定するステップと、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップと、前記電子機器の起動時に、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている場合に、当該電子機器が、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するステップと、前記バックアップ用メモリにコピーしたプログラムが稼働した後に、ユーザの指示に応じて、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップと、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記電子機器の起動後に、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定するステップと、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップとより構成したものである。
【0006】
このようなプログラムの更新方法によれば、前記プログラム保持用メモリに格納されているプログラムを前記バックアップ用メモリにコピーし、そのコピーの正常性が確認された後に、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するので、前記プログラム保持用メモリに格納されているプログラムの更新が失敗した場合、または、前記プログラム保持用メモリに格納されているプログラムを更新する新たなプログラム自体に問題がある場合には、コピーしたプログラムを用いて、前記プログラム保持用メモリに格納されているプログラムを元のプログラムに復帰することができるようになる。
【0007】
また、前記プログラム保持用メモリに格納されているプログラムを更新した後は、ユーザの指示があるまで、電子機器の起動後には、前記プログラム保持用メモリに格納されている更新後のプログラムではなく、前記バックアップ用メモリにコピーした更新前のプログラムが稼働するようになるので、プログラム保持用メモリのプログラム更新後の最初の起動後等に、プログラム保持用メモリの更新後のプログラムに問題があるために、電子機器が正常に動作しなくなってしまい、これにより更新後のプログラムに生じた問題に対処するための所要の処理を電子機器が行えなくなってしまうことを避けることができる。
【0008】
また、本更新方法によれば、このように起動後に前記バックアップ用メモリにコピーした更新前のプログラムが稼働するように設定されている状態のまま、前記プログラム保持用メモリに格納されている更新後のプログラムを稼働させ、その動作の正常性を確認することができる。すなわち、もし、前記プログラム保持用メモリに格納されている更新後のプログラムが正常に動作しなった場合には、電子機器の再起動により、前記バックアップ用メモリにコピーした更新前のプログラムを稼働するので、上述のように電子機器が正常に動作しなくなってしまい、これにより更新後のプログラムに生じた問題に対処するための所要の処理を電子機器が行えなくなってしまうことを避けることができる。
【0009】
そして、前記プログラム保持用メモリに格納されている更新後のプログラムの正常性が確認できた場合には、ユーザは所定の指示を行って、起動後に前記プログラム保持用メモリに格納されている更新後のプログラムが稼働するように設定することにより、プログラムの更新を完了することができる。
【0010】
ここで、このようなプログラムの更新方法においては、さらに、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップを設けるようにしても良い。
【0011】
このようにすることにより、前記プログラム保持用メモリに格納されている更新後のプログラムに問題が生じた場合には、問題を修正したプログラムに再度前記プログラム保持用メモリに格納されているプログラムを更新し、以上説明した、プログラム保持用メモリのプログラム更新後の動作を行うことができるようになる。
【0012】
また、以上のプログラムの更新方法においては、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記バックアップ用メモリにコピーしたプログラムで、前記プログラム保持用メモリに格納されているプログラムを更新するステップをさらに設けるようにしてもよい。
【0013】
このようにすることにより、前記プログラム保持用メモリに格納されている更新後のプログラムに問題が生じた場合には、前記プログラム保持用メモリに格納されているプログラムを更新前のプログラムに復することができるようになる。ここで、以上のプログラムの更新方法においては、前記バックアップ用メモリは過般型の記憶媒体とし、前記プログラム保持用メモリに格納されているプログラムの新たなプログラムへの更新は、前記過般型の記憶媒体に記憶しておいた前記新たなプログラムで前記プログラム保持用メモリに格納されているプログラムを更新することにより行うようにするようにすることも、特段、そのような過般型の記憶媒体を備えた電子機器のプログラムの更新への適用においては、更新作業の容易性や更新のために要する資源の節減の上などから好ましい。
【0014】
【発明の実施の形態】
以下、本発明の実施形態について電子機器のファームウエアプログラムの更新への適用を例にとり説明する。
図1に、本実施形態においてファームウエアプログラム更新の対象とする電子機器の構成例を示す。
図示するように、この電子機器は、CPU1、フラッシュメモリなどの書き換え可能な可書換型のROM2、CPU1の主記憶として使用されるRAM3、過般型のメモリカードなどの外部記憶媒体5を装着可能な外部記憶媒体インタフェース4、入力インタフェース6を介して接続された、キースイッチなどの入力装置7、表示インタフェース8を介して接続されたLCDなどの表示装置9、不揮発性のメモリである起動設定レジスタ10、当該電子機器の機能を提供する機能部11とを有する。ここで電子機器はたとえばプリンタなどであり、この場合、機能部11は印刷機能を提供するものとなる。
【0015】
さて、本実施形態の説明においては、便宜上、ROM2の記憶領域を二つに分割した一方の記憶領域を起動プログラムメモリ21と呼び、他方の記憶領域をプログラムメモリ22と呼ぶ。プログラムメモリ22はバーションアップなどのために更新されるファームウエアのプログラムが格納されるものであり、起動プログラムメモリ21はプログラムメモリ22のプログラムの起動処理を行う、通常は更新しないファームウエアの起動処理プログラムが格納されるものである。
【0016】
以下、このような電子機器における、プログラムメモリ22に格納されたプログラムの更新処理について説明する。
図2に、起動プログラムメモリ21に格納された起動処理プログラムが行う起動処理の手順を示す。
本起動処理プログラムは、電子機器の起動時に起動プログラムからRAM3にロードされCPU1によって実行される。
図示するように、本起動処理では、まず、電子機器各部の所定の初期化処理を行う(ステップ200)。そして、次に、起動設定レジスタ10に格納されている起動設定がプログラムメモリ22となっているか、それとも外部記憶媒体5となっているかを調べる(ステップ202)。ここで、この起動設定は、通常時はプログラムメモリ22となっている。
【0017】
起動設定がプログラムメモリ22である場合、起動処理は、プログラムメモリ22のプログラムを起動する(ステップ204)。すなわち、CPU1にプログラムメモリ22からプログラムをRAM3にロードさせて実行させる。そして、以降は入力装置7を介したユーザからの更新指示を待つ(ステップ206)。
【0018】
ここで、ユーザは現在のプログラムメモリ22のプログラム(以下、便宜上「更新前プログラム」と記す)の更新を行う場合、新しいプログラム(以下、便宜上「更新後プログラム」と記す)を格納した外部記憶媒体5を、外部記憶媒体インタフェース4に装着し、入力装置7から更新指示を行う。
【0019】
起動処理では、更新指示があった場合(ステップ206)、まず、その時点で図3aに示すようにプログラムメモリ22に格納されている更新前プログラムを、図3bに示すように外部記憶媒体5にコピー(バックアップ)する(ステップ208)。次に、外部記憶媒体5にコピーした更新前プログラムと、プログラムメモリ22上のコピー元の更新前のプログラムの同一性をチェックする(ステップ210)。そして、正常にコピーされたことが確認できなかった場合には、表示装置にコピーエラーを通知するメッセージを表示する(ステップ218)。ここで、この表示からエラーを確認したユーザは、電子機器を再起動することにより、初めから起動処理を開始させることができ、また、この時点で、図3bに示すようにプログラムメモリ22、設定起動レジスタの内容は変更されていないので、再起動された電子機器は従前通り動作することになる。
【0020】
一方、正常にコピーされたことを確認できた場合には、起動レジスタの起動設定を外部記憶媒体5に変更し(ステップ214)、図3cに示すように、外部記憶媒体5に格納されている更新後プログラムで、プログラムメモリ22の更新前プログラムを書き換える(ステップ216)。そして、電子機器を再起動する(ステップ234)。
【0021】
さて、この後、電子機器が再起動されると、起動処理が実行され上述のように動作するが、今度は、図3dに示すように起動設定が外部記憶媒体5となっているので、ステップ202の判定によりステップ220に進み、プログラムメモリ22上のプログラムではなく、外部記憶媒体5にコピーされた更新前プログラムを起動する(ステップ220)。そして、ユーザより入力装置7を介して、再コピー、更新後プログラム起動、起動設定更新のいづれかの動作選択を受け付ける(ステップ222)。なお、ステップ214で起動レジスタの起動設定を外部記憶媒体5に変更した後に、ステップ216でプログラムメモリ22の更新前プログラムを書き換えているので、もしステップ216の書き換え中に障害が発生した場合であっても、再起動後には外部記憶媒体5にコピーされ正常性が確認された更新前プログラムが支障なく起動することになる。
【0022】
さて、通常、ユーザは、更新指示後の最初の動作選択としては、ROM2にコピーした更新後プログラムの正常性を確認するために、更新後プログラム起動を選択する。
起動処理では、更新後プログラム起動を受け付けた場合には(ステップ226)、プログラムメモリ22上の更新後プログラムを起動する(ステップ228)。そして、ユーザは起動された更新後プログラムの動作の正常性を確認し、更新後プログラムの動作の正常性、または、異常を確認したならば、電子機器を再起動する。
【0023】
そして、電子機器が再起動されると、起動処理が実行され上述のように動作して外部記憶媒体5にコピーされた更新前プログラムを稼働し、再度、ユーザより入力装置7を介して、再コピー、更新後プログラム起動、起動設定更新のいづれかの動作選択を受け付ける(ステップ222)。すなわち、先に稼働させてみたプログラムメモリ22上の更新後プログラムに問題があった場合でも、再起動によって外部記憶媒体5にコピーされた更新前プログラムが稼働する状態に戻り、以下の再コピーなどの、更新後プログラムの問題に対処する処理を行うことができる。
【0024】
さて、ユーザは、先に更新後プログラムの動作の異常を確認している場合には、再起動後に再コピーを選択する。
再コピーが選択された場合(ステップ224)、起動処理では、ステップ208に進み、外部記憶媒体5の更新後プログラムを再度ROM2に書き込み、以降のステップに進み前述のように処理を行う。これにより、何らかの事情により外部記憶媒体5の更新後プログラムのROM2へのコピーが正しく行われなかった場合には、再度、外部記憶媒体5の更新後プログラムのROM2へのコピーから更新の処理を行うことができるようになる。また、外部記憶媒体5に、先にROM2へコピーした更新後プログラムの不具合を修正したプログラムを格納し、この修正後のプログラムに、更新後のプログラムとするプログラムを切り替えることもできる。
【0025】
一方、ユーザは、先に更新後プログラムの動作の正常性を確認している場合には、起動設定更新を選択する。そして、起動設定更新が選択された場合(ステップ230)、起動処理では、ステップ232に進み、図3eに示すように起動設定レジスタ10の起動設定をプログラムメモリ22に設定し(ステップ232)、電子機器を再起動する(ステップ234)。
【0026】
すると、以降は、起動設定がプログラムメモリ22であることより、ステップ202の判定に従って、起動処理ではステップ204でプログラムメモリ22の更新後プログラムを起動するようになる。
ところで、以上では、通常、更新しない起動プログラムメモリ21に格納した起動プログラムに、プログラムメモリ22のプログラムの更新機能を設けたが、この更新機能は、プログラムメモリ22に格納されるプログラム自体に備えるようにしても良い。
【0027】
すなわち、図4aに示すように、起動プログラムによる起動処理は、前述したステップ200〜203、220の初期化処理と起動設定に応じたプログラムの起動処理のみを行うように構成し、起動処理により起動される更新前プログラムと更新後プログラムの双方に、図4bに示すように起動設定に応じて(ステップ401)、前述したステップ206〜218、234か、ステップ224〜234のいずれかを行うプログラムを含めるようにしてもよい。
【0028】
または、このような更新機能を提供するプログラムは、外部記憶媒体5に別途格納しておき、起動設定が外部記憶媒体5である場合や、ユーザより所定の入力があった場合に、起動処理より起動するようにすることもできる。
また、以上の実施形態のステップ222においては、動作選択として、さらにプログラム復帰の選択を可能とし、プログラム復帰が選択された場合には、外部記憶媒体5に格納されている更新前プログラムをプログラムメモリ22に復帰すると共に、起動設定をプログラムメモリ22に設定するようにしても良い。このようにすることにより、更新後プログラムの動作に異常があった場合などに、状態を、以上のような更新動作開始前の状態に元に復することができる。
【0029】
また、以上の実施形態において、ステップ228でプログラムメモリ22の更新後プログラムを起動した後に、再起動することなく起動設定更新の動作選択を受付、起動設定をプログラムメモリ22に変更できるようにしてもよい。
また、ステップ208で行うプログラムメモリ22の更新前プログラムのコピーのコピー先は、ROM2に充分な容量を確保できる場合には、予め定めて置いたROM2のバックアップ用領域とするようにしても良い。
また、電子機器に所要のネットワーク通信機能を備えることにより、以上の外部記憶媒体5に代えて、ネットワーク上の記憶装置を用いるようにすることもできる。
以上、本発明の実施形態について説明した。
このように本実施形態によれば、プログラムの更新処理を行っている際に、電源オフや、更新後プログラムの不具合や、外部記憶媒体5の抜き取りなどの影響により、プログラムメモリ22に書き込んだプログラムに問題が生じた場合でも、支障なく、その問題を克服するための処理を継続することができる。
【0030】
なお、本実施形態はファームウエアプログラムの更新に限らず、任意のプログラムの更新に適用可能である。
【0031】
【発明の効果】
以上のように、本発明によれば、プログラムの更新の際に、当該更新による障害の発生を抑止することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るプログラム更新の対象となる電子機器の構成例を示すブロック図である。
【図2】本発明の実施形態に係る起動処理を示すフローチャートである。
【図3】本発明の実施形態に係るプログラムの更新の手順を示す図である。
【図4】本発明の実施形態に係るプログラム更新のための他の処理構成例を示すフローチャートである。
【符号の説明】
1:CPU、2:ROM、3:RAM、4:外部記憶媒体インタフェース、5:外部記憶媒体、6:入力インタフェース、7:入力装置、8:表示インタフェース、10:起動設定レジスタ、11:機能部、21:起動プログラムメモリ、22:プログラムメモリ。
Claims (5)
- 電子機器の不揮発性のプログラム保持用メモリに格納されたプログラムを更新するプログラムの更新方法であって、
前記プログラム保持用メモリに格納されているプログラムを、前記プログラム保持用メモリ以外の不揮発性のメモリであるバックアップ用メモリにコピーするステップと、
前記バックアップ用メモリにコピーしたプログラムと前記プログラム保持用メモリに格納されているプログラムの同一性を確認するステップと、
前記同一性が確認できた場合に、前記電子機器の起動後に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定するステップと、
前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップと、
前記電子機器の起動時に、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている場合に、当該電子機器が、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するステップと、
前記バックアップ用メモリにコピーしたプログラムが稼働した後に、ユーザの指示に応じて、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップと、
前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記電子機器の起動後に、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定するステップと、
前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、当該電子機器が、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップとを有することを特徴とするプログラムの更新方法。 - 請求項1記載のプログラムの更新方法であって、
前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップを有することを特徴とするプログラムの更新方法。 - 請求項1または2記載のプログラムの更新方法であって、
前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記電子機器を起動した後に、ユーザの指示に応じて、前記バックアップ用メモリにコピーしたプログラムで、前記プログラム保持用メモリに格納されているプログラムを更新するステップを有することを特徴とするプログラムの更新方法。 - 請求項1、2または3記載のプログラムの更新方法であって、
前記バックアップ用メモリは過般型の記憶媒体であって、前記プログラム保持用メモリに格納されているプログラムの新たなプログラムへの更新は、前記過般型の記憶媒体に記憶されている前記新たなプログラムで前記プログラム保持用メモリに格納されているプログラムを更新することにより行われることを特徴とするプログラムの更新方法。 - コンピュータによって読み取られ実行されるコンピュータプログラムであって、
当該コンピュータプログラムは前記コンピュータに、前記プログラム保持用メモリに格納されているプログラムを、前記プログラム保持用メモリ以外の不揮発性のメモリであるバックアップ用メモリにコピーするステップと、
前記バックアップ用メモリにコピーしたプログラムと前記プログラム保持用メモリに格納されているプログラムの同一性を確認するステップと、
前記同一性が確認できた場合に、前記コンピュータの起動後に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定するステップと、
前記プログラム保持用メモリに格納されているプログラムを新たなプログラムに更新するステップと、
前記コンピュータの起動後に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定するステップと、
前記コンピュータの起動時に、前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている場合に、前記プログラム保持用メモリに格納されているプログラムに代えて前記バックアップ用メモリにコピーしたプログラムを稼働するステップと、
前記バックアップ用メモリにコピーしたプログラムが稼働した後に、ユーザの指示に応じて、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップと、
前記バックアップ用メモリにコピーしたプログラムを稼働するよう設定されている状態において前記コンピュータを起動した後に、ユーザの指示に応じて、前記コンピュータの起動後に、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定するステップと、
前記プログラム保持用メモリに格納されている新たなプログラムを稼働するよう設定されている状態において前記コンピュータが起動した後に、前記プログラム保持用メモリに格納されている新たなプログラムを稼働するステップとを実行させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002269380A JP2004110220A (ja) | 2002-09-17 | 2002-09-17 | プログラムの更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002269380A JP2004110220A (ja) | 2002-09-17 | 2002-09-17 | プログラムの更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110220A true JP2004110220A (ja) | 2004-04-08 |
Family
ID=32267311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002269380A Pending JP2004110220A (ja) | 2002-09-17 | 2002-09-17 | プログラムの更新方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110220A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006060345A (ja) * | 2004-08-18 | 2006-03-02 | Sony Corp | 信号受信装置および方法、記録媒体、並びにプログラム |
JP2006139665A (ja) * | 2004-11-15 | 2006-06-01 | Murata Mach Ltd | 電子機器 |
JP2008192048A (ja) * | 2007-02-07 | 2008-08-21 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
-
2002
- 2002-09-17 JP JP2002269380A patent/JP2004110220A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006060345A (ja) * | 2004-08-18 | 2006-03-02 | Sony Corp | 信号受信装置および方法、記録媒体、並びにプログラム |
JP2006139665A (ja) * | 2004-11-15 | 2006-06-01 | Murata Mach Ltd | 電子機器 |
JP2008192048A (ja) * | 2007-02-07 | 2008-08-21 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1899814B1 (en) | Firmware update for consumer electronic device | |
JP5431111B2 (ja) | 情報処理装置及びシステム設定方法 | |
JP2001331327A (ja) | 電子機器 | |
JP6482211B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
JPH04167139A (ja) | プログラムダウンロード方式 | |
JPH10307726A (ja) | 起動エラー時におけるファームウェアリカバリ方式 | |
JP2004110220A (ja) | プログラムの更新方法 | |
JP2002189609A (ja) | アクシデントに適応したソフトウェア更新方式および方法 | |
JP2007087269A (ja) | ソフトウェア更新システム、更新方法、及び、プログラム | |
JP2004192329A (ja) | プログラム書換え方法および端末装置 | |
JP2003228490A (ja) | ネットワークに接続される端末装置およびこれを用いたネットワークシステム | |
JPH10187454A (ja) | Bios書き換え方式 | |
JP2005128613A (ja) | 画像形成装置 | |
JP6149624B2 (ja) | ファームウェア実行装置、ファームウェア実行方法、コンピュータ・プログラム、および、コンピュータ装置 | |
JP6457756B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
JP2003259000A (ja) | Ip−pbxにおけるip電話機サービス機能のバージョンアップ方式および方法 | |
JP2003122575A (ja) | 情報処理装置 | |
JP2005032014A (ja) | データ処理装置、データ処理装置の起動プログラム、データ処理装置の起動方法 | |
JP2005078336A (ja) | 画像形成装置と画像形成装置のプログラム書換方法 | |
JP2004355389A (ja) | リモートアップデートシステム | |
JP2001053891A (ja) | 携帯端末装置のプログラム更新方法およびその装置 | |
JP7298352B2 (ja) | 処理装置及びプログラム | |
JP2004038716A (ja) | 障害発生時の自動復旧機能を備えたファームウェア更新方法 | |
JP2009159383A (ja) | 通信端末装置 | |
JP2005242930A (ja) | 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体 |