(57)【要約】【課題】組み込みプログラムの更新時、更新部分のプログラムの分離が難しい場合でも、更新中の電源断により更新が正常に行われなくなる事態を回避できるようにする。【解決手段】フラッシュメモリ２内に実行プログラムを記憶するプログラム領域１１とそのバックアッププログラムを記憶しておくバックアッププログラム領域１２を備え、プログラム更新時、ＣＰＵはまず実行プログラムに従ってその実行プログラムのみを更新し、途中で電源断がなければその更新の終了後にバックアッププログラムを更新する一方、電源投入時には、実行プログラムが正常か否かを判定し、そのプログラムが正常で、バックアッププログラムが更新中の電源断で異常の場合には、実行プログラムを用いてバックアッププログラムを更新し、途中の電源断で実行プログラムが正常でなかった場合にはバックアッププログラムを用いて実行プログラムを修復する。【選択図】図２
2008027004.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記不揮発性記憶手段内に前記プログラムの記憶領域を２重化して備えるとともに、前記プログラムを更新する際には最初の更新で２重化した前記記憶領域の一方のプログラムのみを更新し、該更新の終了後に他方のプログラムを更新する更新手段を備えたことを特徴とする情報装置。
【請求項２】
プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記プログラムを部分的更新が可能な状態に記憶しておく不揮発性記憶手段と、前記プログラム中の当該更新の対象部分のみを更新する更新手段と、該更新手段によるプログラムの更新に先立って前記対象部分のプログラムを前記不揮発性記憶手段の他の領域または他の不揮発性記憶手段にバックアップするバックアップ手段とを備えたことを特徴とする情報装置。
【請求項３】
請求項１または２記載の情報装置において、前記不揮発性記憶手段のうち、通常の制御に使用する不揮発性記憶手段をフラッシュメモリとし、バックアップに使用する不揮発性記憶手段をフラッシュメモリまたはバッテリでバックアップされたＲＡＭとすることを特徴とする情報装置。
【請求項４】
請求項１、２または３記載の情報装置において、一方のプログラムの更新が更新中の電源断により正常に終了しなかった場合に他方のプログラムを用いて前記一方のプログラムを修復する修復手段を備えたことを特徴とする情報装置。
【請求項５】
請求項４記載の情報装置において、前記修復手段は電源が再投入されたときに前記他方のプログラムを用いて該他方のプログラムをコピーしたプログラムとして自動的に前記一方のプログラムを修復することを特徴とする情報装置。
【請求項６】
プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記プログラムを保存しておくフラッシュメモリと、該プログラムが実行時の使用のためにコピーされるバッテリでバックアップされたＲＡＭとを備え、前記フラッシュメモリ内のプログラムの更新が電源断により正常終了しなかった場合、該ＲＡＭ内のプログラムを該フラッシュメモリにコピーして該フラッシュメモリ内のプログラムを修復することを特徴とする情報装置。
【請求項７】
情報装置に組み込まれたプログラムを更新するプログラム更新方法において、不揮発性メモリ内の第１の記憶領域のプログラムを該不揮発性メモリ内の第２の記憶領域または他の不揮発性メモリにバックアップしておき、前記第１の記憶領域のプログラムの更新が電源断により正常終了しなかった場合、前記第２の記憶領域または他の不揮発性メモリにバックアップしたプログラムを前記第１の記憶領域にコピーして該第１の記憶領域内のプログラムを修復することを特徴とするプログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタやデジタル複写機などに組み込まれるプログラムを更新する技術に関する。
【背景技術】
【０００２】
プリンタやデジタル複写機などでは一般に、装置に組み込まれているプログラム（ファームウェア）を利用者が更新できるようになっている。そのため、一般的にはそのようなプログラムをフラッシュメモリなどに書き込んでいる。
このフラッシュメモリは、一度書き込むと、書き込んだデータを消去しなければ新しいデータを書き込めないので、消去後に新しいプログラムの書込みを行う。したがって、更新処理中に電源断などが発生すると、プログラムが部分的に消去された状態になり、装置が動作しなくなってしまう危険がある。
これを避けるために、プログラムを、更新するためのブート部分とその他の部分とに分け、ブート部分以外だけ更新を行うことにより装置が動作しなくなる事態を避ける技術が提供されている。
【０００３】
以下、特許文献に示されている関連従来技術について説明する。
まず、特許文献１に示された従来技術だが、この従来技術では、フラッシュメモリ内のプログラムのうち、短時間に更新する必要のあるプログラムを更新する場合、新プログラムの更新実行サイズとフラッシュメモリおよびＲＡＭの容量とを比較し、ＲＡＭ上で動作可能ならばＲＡＭ上で動作するように、ＲＡＭ上で動作不可能ならばフラッシュメモリ上で動作するように動作環境を設定し、その動作環境でプログラムを更新する。
また、特許文献２に示された従来技術では、プリンタに組み込まれるプログラムを安全且つ短時間で行うことができるように、そのプログラムを複数のモジュールに分割可能にし、それぞれのモジュールを複数の領域に区切られた不揮発性メモリ内のそれぞれの領域に格納し、それらのプログラムの更新時には、対応する更新元と更新先の各モジュールを比較し、変更または修正があったと判定されたモジュールについてのみ更新する。
また、特許文献３に示された従来技術では、画像形成装置に組み込まれたプログラムの更新の信頼性を向上させることを目的としており、画像形成装置の機能を実現する制御プログラムが記憶された制御用記憶媒体と、更新用プログラムが記憶された更新用記憶媒体を持つ。そして、更新用プログラムを用いて制御プログラムを更新する。さらに、更新された制御プログラムに係る電子署名の正当性判断を実行する。
【特許文献１】特開２０００−２４２５０３公報
【特許文献２】特開２００２−３５１６８７公報
【特許文献３】特開２００４−３０３２０９公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年においては、利用者の利便性を向上するためにプログラムの更新機能も変化しており、最低限必要な更新用プログラムの分離が難しくなってきている。したがって、更新用プログラムを分離することにより更新用プログラムを更新対象外として、更新中の電源断により更新用プログラムが正常動作しなくなる事態を防ぐ方法が取れなくなってきている。
本発明は、このような従来技術の問題を解決しようとするものであり、具体的には、更新用プログラムの分離が難しい場合においても、更新中の電源断の発生により更新が正常に行われなくなる事態を回避できる組み込みプログラムの更新技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記した課題を解決するために、請求項１記載の情報装置は、プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記不揮発性記憶手段内に前記プログラムの記憶領域を２重化して備えるとともに、前記プログラムを更新する際には最初の更新で２重化した前記記憶領域の一方のプログラムのみを更新し、該更新の終了後に他方のプログラムを更新する更新手段を備える。
請求項２記載の情報装置は、プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記プログラムを部分的更新が可能な状態に記憶しておく不揮発性記憶手段と、前記プログラム中の当該更新の対象部分のみを更新する更新手段と、該更新手段によるプログラムの更新に先立って前記対象部分のプログラムを前記不揮発性記憶手段の他の領域または他の不揮発性記憶手段にバックアップするバックアップ手段とを備える。
請求項３記載の情報装置は、請求項１または２記載の情報装置において、前記不揮発性記憶手段のうち、通常の制御に使用する不揮発性記憶手段をフラッシュメモリとし、バックアップに使用する不揮発性記憶手段をフラッシュメモリまたはバッテリでバックアップされたＲＡＭとする。
【０００６】
請求項４記載の情報装置は、請求項１、２または３記載の情報装置において、一方のプログラムの更新が更新中の電源断により正常に終了しなかった場合に他方のプログラムを用いて前記一方のプログラムを修復する修復手段を備える。
請求項５記載の情報装置は、請求項４記載の情報装置において、前記修復手段は電源が再投入されたときに前記他方のプログラムを用いて該他方のプログラムをコピーしたプログラムとして自動的に前記一方のプログラムを修復する構成とする。
請求項６記載の情報装置は、プログラムを記憶する不揮発性記憶手段と前記プログラムに従って動作するＣＰＵとを備えた情報装置において、前記プログラムを保存しておくフラッシュメモリと、該プログラムが実行時の使用のためにコピーされるバッテリでバックアップされたＲＡＭとを備え、前記フラッシュメモリ内のプログラムの更新が電源断により正常終了しなかった場合、該ＲＡＭ内のプログラムを該フラッシュメモリにコピーして該フラッシュメモリ内のプログラムを修復する構成とする。
請求項７記載の方法は、情報装置に組み込まれたプログラムを更新するプログラム更新方法において、不揮発性メモリ内の第１の記憶領域のプログラムを該不揮発性メモリ内の第２の記憶領域または他の不揮発性メモリにバックアップしておき、前記第１の記憶領域のプログラムの更新が電源断により正常終了しなかった場合、前記第２の記憶領域または他の不揮発性メモリにバックアップしたプログラムを前記第１の記憶領域にコピーして該第１の記憶領域内のプログラムを修復する構成とする。
【発明の効果】
【０００７】
本発明によれば、不揮発性メモリ内のプログラム記憶領域のプログラムをその不揮発性メモリ内の他の記憶領域または他の不揮発性メモリにバックアップしておき、前記プログラム記憶領域のプログラムの更新が電源断により正常終了しなかった場合、前記他の記憶領域または他の不揮発性メモリにバックアップしたプログラムを前記プログラム記憶領域にコピーしてプログラム記憶領域内のプログラムを修復できるので、更新用プログラムの分離が難しい場合においても、更新中の電源断の発生により更新が正常に行われなくなる事態を回避できる。また、プログラム記憶領域内のプログラムを自動修復できるので、電源断で更新が正常終了しなかった場合でも余分な作業が発生しない。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施形態を詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対位置などは特定的な記載がない限りこの説明の範囲をそれのみに限定する主旨ではなく、単なる説明例に過ぎない。
図１は本発明の一実施形態としてプリンタの構成を示すブロック図である。図示したように、このプリンタは、プログラムに従ってこのプリンタの全体を制御するＣＰＵ１、そのプログラムなどを書き込んでおく（組み込んでおく）フラッシュメモリ２、印刷データなど各種データを一時的に格納したりワークメモリとして用いたりするＲＡＭ３、パーソナルコンピュータなどホスト装置と通信して印刷データなどを受信する通信制御部４、キーや液晶表示装置などを有して利用者に操作を行なわせる操作部５、印刷データに基づいて印刷用紙上に画像を形成する画像形成部６などを備えている。なお、フラッシュメモリ２は不揮発性のメモリであり、且つ書き込まれているデータの消去およびデータの再書込みが可能である。
【０００９】
以下、本発明の各実施形態を説明する。
［実施形態１］
図２に、この実施形態におけるフラッシュメモリ２の構成を示す。図示したように、このフラッシュメモリ２は、プログラムを書き込んでおく領域として、通常使用するプログラムを書き込んでおくプログラム領域１１と、そのプログラム領域１１内のプログラムが異常だった場合のバックアップ用プログラムを書き込んでおくバックアッププログラム領域１２とを持つ。なお、図示していないが、フラッシュメモリ２には、電源投入時に起動される更新対象外の起動プログラムも書き込まれている。なお、この実施形態では、請求項記載の不揮発性記憶手段がフラッシュメモリ２により実現され、更新手段、バックアップ手段および修復手段がＣＰＵ１とフラッシュメモリ２内のプログラムにより実現される。
【００１０】
図３はこの実施形態におけるプログラム更新の動作フローを示すフロー図である。以下、この動作フローを説明する。
まず、ＣＰＵ１がプログラム領域１１内のプログラムまたはプログラム領域１２内のバックアップ用プログラムに従ってプログラム領域１１内のプログラムを更新する（Ｓ１）。具体的には、ＣＰＵ１は最初にプログラム領域１１内の更新前プログラムを消去し、続いて、ホスト装置からＲＡＭ３にダウンロードしておいた新プログラムをプログラム領域１１にコピーする。なお、プログラム領域１１内のプログラムに従って実行する場合にはそのプログラムをＲＡＭ３にコピーし、コピーしたプログラムに従って更新を実行する。なお、更新開始に際して、フラッシュメモリ２の所定領域に第１更新中フラグをセットする。
こうして、更新が正常に終了した場合（Ｓ２でＹｅｓ）、つまり、更新中に電源断が発生せず、ＣＰＵ１が正常に動作し続けた場合、ＣＰＵ１は第１更新中フラグをリセットし、第２更新中フラグをセットする。そして、プログラム領域１１内の更新されたプログラムに従ってバックアッププログラム領域１２内のバックアップ用プログラムを更新する（Ｓ３）。その結果、その更新が正常に終了したならば（Ｓ４でＹｅｓ）、つまり、更新中に電源断が発生しなかったならば、ＣＰＵ１は正常に動作し続け、第２更新中フラグをリセットし、更新が正常に終了した旨を操作部５内の表示装置に表示して（Ｓ５）利用者に知らせる。
【００１１】
一方、電源投入時には図４に示した起動処理を実行する。
この起動処理では、電源が再投入されたとき、ＣＰＵ１は起動プログラムに従ってプログラム領域１１内のプログラムが正常か否かを判定する（Ｓ１１）。第１更新中フラグがセットされているか否かを判定するのである。そして、第１更新中フラグがセットされておらず、したがって、このプログラムが正常である場合（Ｓ１１でＹｅｓ）、ＣＰＵ１は第２更新中フラグがセットされているか否かを判定する。そして、セットされていた場合、プログラム領域１１内のプログラムを起動し、そのプログラムに従ってそのプログラムをバックアッププログラム領域１２にコピーすることによりバックアップ用プログラムを更新し直す（Ｓ１２）。
一方、プログラム領域１１内のプログラムが正常でなかった場合には（Ｓ１１でＮｏ）、バックアッププログラムを起動し（Ｓ１３）、このバックアッププログラムに従ってＣＰＵ１はプログラム領域１１内にバックアッププログラムをコピーすることによりプログラムを修復する（Ｓ１４）。
こうして、この実施形態によれば、更新プログラムだけを分離することができなくても、バックアッププログラムを用いて通常使用するプログラムを修復することにより、更新中の電源断で更新が正常に行われなくなる事態を回避できる。しかも、電源断などによる異常時、通常使用するプログラムの修復や、通常使用するプログラムのバックアップを自動的に行うことができる。
【００１２】
［実施形態２］
この実施形態でもプログラムはフラッシュメモリ２に格納されている。このフラッシュメモリ２はセクタと呼ばれる単位で消去が可能になっている。そこで、この実施形態では、プログラムをセクタの境界で分けられるように構成しておき、フラッシュメモリ２の消去・書き込みをセクタ単位で行うことによりプログラムの一部だけを分割して更新する。なお、更新部分の新プログラムのサイズが旧プログラムより大きくなることを想定して各分割部分のサイズはあらかじめ余分に確保しておく。
具体的には、図５に示したように、フラッシュメモリ２内に、プログラム全体を格納するプログラム領域１１と、更新部分のプログラムをバックアップできる分の分割バックアップ領域１３を用意する。
また、この実施形態では、通常の印刷（プリント）動作を実行する際、フラッシュメモリ２内のプログラムはそのまま実行せず、ＲＡＭ３のプログラム実行領域１４に読み出して実行する（図５参照）。プログラムサイズが大きい場合、そのプログラムを圧縮してフラッシュメモリ２に格納することにより、フラッシュメモリ２の容量を小さくしてコストを下げることができ、且つ一般的にＲＡＭ３へのアクセスがフラッシュメモリ２へのアクセスよりも高速になるので性能も向上することから、プログラムをＲＡＭ３に読み出して実行するのである。
なお、この実施形態では、請求項記載の不揮発性記憶手段がフラッシュメモリ２により実現され、更新手段、バックアップ手段および修復手段がＣＰＵ１とフラッシュメモリ２やプログラム実行領域１４内のプログラムとにより実現される。
【００１３】
図６に、この実施形態におけるプログラム更新の動作フローを示す。以下、この動作フローを説明する。
まず、ホスト装置から新プログラムがダウンロードされる。この新プログラムはフラッシュメモリ２内のプログラム領域１１に書き込まれているプログラムの一部に対応する。なお、プログラム領域１１内のプログラムは既にＲＡＭ３にコピーされていて、ＣＰＵ１はＲＡＭ３内のプログラムに従って動作するものとする。
新プログラムがダウンロードされると、ＣＰＵ１はその新プログラムがどの部分のプログラムかを判定する。例えば各分割プログラムには一連番号が付けられていて、ホスト装置はその一連番号を新プログラムの冒頭に付けて送ってくるようにすればよい。
続いて、ＣＰＵ１はフラッシュメモリ２の所定領域にバックアップ中フラグをセットし、フラッシュメモリ２の更新領域のプログラムを分割バックアップ領域１３にコピーすることによりバックアップを行う（Ｓ２１）。そして、バックアップが正常に終了した場合（Ｓ２２でＹｅｓ）、つまり、バックアップ中に電源断が発生せず、ＣＰＵ１が正常に動作し続けた場合、バックアップ中フラグをリセットするとともに更新中フラグをフラッシュメモリ２の所定領域にセットする。さらに、更新領域のプログラムを消去し、その領域に新プログラムをコピーすることによりプログラムを更新する（Ｓ２３）。この際、プログラムを圧縮してからコピーしてもよい。
こうして、更新が正常に終了した場合（Ｓ２４でＹｅｓ）、つまり、更新中に電源断が発生せずＣＰＵ１が正常に動作し続けた場合、更新中フラグをリセットするとともに正常終了したことを操作部５内の表示装置に表示して（Ｓ２５）利用者に知らせる。
【００１４】
一方、電源再投入時には、図７に示した起動処理を実行する。
この起動処理では、電源が投入されたとき、ＣＰＵ１は起動プログラムに従ってフラッシュメモリ２内の所定領域の更新中フラグを参照することによりプログラム領域１１内のプログラムが正常か否かを判定する（Ｓ３１）。そして、正常であるならば（Ｓ３１でＹｅｓ）、つまり更新中フラグがセットされていなければ、プログラム領域１１内のプログラムをＲＡＭ３に読み出して起動し（Ｓ３２）、バックアップ中フラグがセットされていた場合はホスト装置から新プログラムを取得し、Ｓ２１から更新処理を再実行する。また、バックアップ中フラグがセットされていなかった場合には、そのまま起動処理を抜ける。
一方、プログラム領域１１内のプログラムが正常でなかったならば（Ｓ３１でＮｏ）、つまり更新中フラグがセットされていたならば、プログラム領域１１内の更新領域は途中まで更新された不完全なプログラムであるので、プログラム領域１１内のプログラムをＲＡＭ３に読み出すとともに、更新領域のプログラムをバックアップ領域１３内のバックアッププログラムに置換する。そして、ＲＡＭ３に読み出されているプログラムを起動し（Ｓ３３）、バックアップ領域のプログラムをプログラム領域１１にコピーすることでプログラム領域１１内のプログラムを修復する（Ｓ３４）。
このように、この実施形態では、更新の際、更新部分のプログラムをフラッシュメモリにバックアップすることにより、更新中の電源断で更新が正常に行なわれなくなる事態を回避できる。また、バックアップに必要とするフラッシュメモリの記憶容量を少なくできる。
【００１５】
［実施形態３］
この実施形態でもプログラムはフラッシュメモリ２に格納されている。また、この実施形態では、プログラムをフラッシュメモリ２のセクタの境界で分けられるように構成しておき、セクタ単位で消去・書き込みを行うことにより、プログラムの一部だけを分割して更新する。さらに、ＲＡＭ３の一部をバッテリでバックアップし、その領域を、更新時にプログラムをバックアップするためのバックアップ領域１５とし、電源断が発生してもバックアップしたプログラムを保持する（図８参照）。
また、実施形態２と同様に、フラッシュメモリ２内のプログラムをＲＡＭ３内のプログラム実行領域１４（この部分はバッテリでバックアップされていない）に読み出して実行する（図８参照）。なお、この実施形態では、請求項記載の不揮発性記憶手段がフラッシュメモリ２とＲＡＭ３のうちのバッテリバックアップ部分とにより実現され、更新手段、バックアップ手段および修復手段がＣＰＵ１とフラッシュメモリ２やプログラム実行領域１４内のプログラムとにより実現される。
【００１６】
図９に、この実施形態におけるプログラム更新の動作フローを示す。以下、この動作フローを説明する。
まず、ホスト装置から新プログラムがダウンロードされる。この新プログラムはフラッシュメモリ２内のプログラム領域１１に書き込まれているプログラムの一部に対応する。なお、プログラム領域１１内のプログラムは既にＲＡＭ３内のプログラム実行領域１４にコピーされていて、ＣＰＵ１はＲＡＭ３内のプログラムに従って動作するものとする。
新プログラムがダウンロードされると、ＣＰＵ１はその新プログラムがどの部分のプログラムかを判定する。例えば各分割プログラムには一連番号が付けられていて、ホスト装置はその一連番号を新プログラムの冒頭に付けて送ってくるようにすればよい。
続いて、ＣＰＵ１はフラッシュメモリ２の所定領域にバックアップ中フラグをセットし、フラッシュメモリ２の更新領域のプログラムをバックアップ領域１５にコピーすることによりバックアップを行う（Ｓ４１）。そして、バックアップが正常に終了すると、バックアップ中フラグをリセットし、更新中フラグをセットする。そして、フラッシュメモリ２内の更新領域のプログラムを消去し、その領域に新プログラムをコピーすることによりプログラムを更新する（Ｓ４２）。
こうして、更新が正常に終了すると（Ｓ４３でＹｅｓ）、つまり、更新中に電源断が発生しなかったならば、ＣＰＵ１は正常に動作し続け、更新中フラグをリセットし、正常終了したことを操作部５内の表示装置に表示して（Ｓ４４）利用者に知らせる。
【００１７】
一方、電源再投入時には、図１０に示した起動処理を実行する。
この起動処理では、電源が再投入されたとき、ＣＰＵ１は起動プログラムに従って前記更新中フラグを参照することによりプログラム領域１１のプログラムが正常か否かを判定する（Ｓ５１）。そして、正常であるならば（Ｓ５１でＹｅｓ）、つまり、更新中フラグがセットされていないならば、バックアップ中フラグがセットされていた場合は、プログラム領域１１内のプログラムをＲＡＭ３内のプログラム実行領域１４にコピーして起動し（Ｓ５２）、ホスト装置から新プログラムを取得し、Ｓ４１から更新処理を再実行する。また、バックアップ中フラグがセットされていなかった場合には、そのまま起動処理を抜ける。
一方、更新中フラグがセットされていたならば（Ｓ５１でＮｏ）、プログラム領域１１内の更新領域は途中まで更新された不完全なプログラムであるので、ＣＰＵ１は起動プログラムに従ってプログラム領域１１内のプログラムをＲＡＭ３に読み出すとともに、更新領域のプログラムをバックアップ領域１５内のバックアッププログラムに置換する。そして、ＲＡＭ３に読み出されているプログラムを起動し（Ｓ５３）、バックアップ領域のプログラムをプログラム領域１１内の更新領域にコピーすることでプログラム領域１１内のプログラムを修復する（Ｓ５４）。
このように、この実施形態では、更新の際、更新部分のプログラムをバッテリでバックアップされたＲＡＭにバックアップすることにより、更新中の電源断で更新が正常に行なわれなくなる事態を回避できる。また、実施形態２よりもフラッシュメモリの記憶容量を少なくできる。
【００１８】
［実施形態４］
この実施形態でもプログラムはフラッシュメモリ２内に格納されている。また、このプログラムはＲＡＭ３内のバッテリでバックアップされたプログラム実行領域１４に読み出して実行する（図１１参照）。なお、この実施形態では、請求項記載の不揮発性記憶手段がフラッシュメモリ２とＲＡＭ３のうちのバッテリバックアップ部分とにより実現され、更新手段、バックアップ手段および修復手段がＣＰＵ１とフラッシュメモリ２やプログラム実行領域１４内のプログラムとにより実現される。
図１２に、この実施形態におけるプログラム更新の動作フローを示す。以下、この動作フローを説明する。
まず、ホスト装置から新プログラムがダウンロードされる。この新プログラムはフラッシュメモリ２内のプログラム領域１１に書き込まれているプログラムの一部に対応する。なお、プログラム領域１１内のプログラムは既にＲＡＭ３内のプログラム実行領域１４にコピーされていて、ＣＰＵ１はＲＡＭ３内のプログラムに従って動作するものとする。
【００１９】
新プログラムがダウンロードされると、ＣＰＵ１はその新プログラムがどの部分のプログラムかを判定する。例えば各分割プログラムには一連番号が付けられていて、ホスト装置はその一連番号を新プログラムの冒頭に付けて送ってくるようにすればよい。
続いて、ＣＰＵ１はフラッシュメモリ２の所定領域に更新中フラグをセットし、フラッシュメモリ２内の更新領域のプログラムを消去し、その領域に新プログラムをコピーすることによりプログラムを更新する（Ｓ６１）。そして、更新が正常に終了した場合（Ｓ６２でＹｅｓ）、つまり、更新中に電源断が発生せず、ＣＰＵ１が正常に動作し続けた場合、更新中フラグをリセットするとともに、正常終了したことを操作部５内の表示装置に表示して（Ｓ６３）利用者に知らせる。
【００２０】
一方、電源再投入時には、図１３に示した起動処理を実行する。
この起動処理では、電源が再投入されたとき、ＣＰＵ１は起動プログラムに従って前記更新中フラグを参照することによりプログラム領域１１のプログラムが正常か否かを判定する（Ｓ７１）。そして、正常であるならば（Ｓ７１でＹｅｓ）、つまり、更新中フラグがセットされていないならば、プログラム領域１１内のプログラムをＲＡＭ３内のプログラム実行領域１４にコピーしてそのプログラムを起動する（Ｓ７２）。
一方、更新中フラグがセットされていたならば（Ｓ７１でＮｏ）、プログラム領域１１内の更新領域は途中まで更新された不完全なプログラムであるので、ＲＡＭ３内のプログラム実行領域１４に保持されたプログラムを起動し（Ｓ７３）、そのプログラムをプログラム領域１１にコピーすることによりプログラム領域１１内のプログラムを修復する（Ｓ７４）。
このように、この実施形態では、更新の際、ＲＡＭ３内の実行プログラムをバッテリでバックアップすることにより、更新中の電源断で更新が正常に行なわれなくなる事態を回避できる。また、実施形態２よりもフラッシュメモリの記憶容量を少なくできる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態としてプリンタの構成を示すブロック図である。
【図２】本発明の第１の実施形態としてフラッシュメモリの構成を示す説明図である。
【図３】本発明の第１の実施形態としてプログラム更新の動作フローを示すフロー図である。
【図４】本発明の第１の実施形態として起動処理の動作フローを示すフロー図である。
【図５】本発明の第２の実施形態としてフラッシュメモリとＲＡＭの構成を示す説明図である。
【図６】本発明の第２の実施形態としてプログラム更新の動作フローを示すフロー図である。
【図７】本発明の第２の実施形態として起動処理の動作フローを示すフロー図である。
【図８】本発明の第３の実施形態としてフラッシュメモリとＲＡＭの構成を示す説明図である。
【図９】本発明の第３の実施形態としてプログラム更新の動作フローを示すフロー図である。
【図１０】本発明の第３の実施形態として起動処理の動作フローを示すフロー図である。
【図１１】本発明の第４の実施形態としてフラッシュメモリとＲＡＭの構成を示す説明図である。
【図１２】本発明の第４の実施形態としてプログラム更新の動作フローを示すフロー図である。
【図１３】本発明の第４の実施形態として起動処理の動作フローを示すフロー図である。
【符号の説明】
【００２２】
１  ＣＰＵ、２  フラッシュメモリ、３  ＲＡＭ、１１  プログラム領域、１２  バックアッププログラム領域、１３  分割バックアップ領域、１４  プログラム実行領域、１５  バックアップ領域
【図１】
2008027004.tif 000003
【図２】
2008027004.tif 000004
【図３】
2008027004.tif 000005
【図４】
2008027004.tif 000006
【図５】
2008027004.tif 000007
【図６】
2008027004.tif 000008
【図７】
2008027004.tif 000009
【図８】
2008027004.tif 000010
【図９】
2008027004.tif 000011
【図１０】
2008027004.tif 000012
【図１１】
2008027004.tif 000013
【図１２】
2008027004.tif 000014
【図１３】
2008027004.tif 000015