(57)【要約】【課題】情報処理装置の通常動作を止めることなくデータの更新を効率的に行うことが可能な情報処理装置及びプログラムを提供する。【解決手段】自装置の動作に係る第１データを記憶する不揮発性の第１記憶部と、前記第１記憶部から展開された前記第１データを保持する主記憶部と、前記第１データを更新するための第２データを管理する外部装置から前記第２データを受信する受信手段と、前記受信手段が受信した前記第２データを記憶する不揮発性の第２記憶部と、前記主記憶部に展開された前記第１データに基づき自装置が動作している間に、前記第２記憶部に記憶された前記第２データを用いて、前記第１記憶部に記憶された前記第１データを更新する更新手段と、を備える。【選択図】図３
2020102141.tif 000002
【特許請求の範囲】
【請求項１】
自装置の動作に係る第１データを記憶する不揮発性の第１記憶部と、
前記第１記憶部から展開された前記第１データを保持する主記憶部と、
前記第１データを更新するための第２データを管理する外部装置から前記第２データを受信する受信手段と、
前記受信手段が受信した前記第２データを記憶する不揮発性の第２記憶部と、
前記主記憶部に展開された前記第１データに基づき自装置が動作している間に、前記第２記憶部に記憶された前記第２データを用いて、前記第１記憶部に記憶された前記第１データを更新する更新手段と、
を備える情報処理装置。
【請求項２】
前記第２記憶部に記憶された前記第２データのチェックサムに基づいて当該第２データが正常か否かを判定する判定手段を更に備え、
前記受信手段は、前記判定手段が異常と判定した場合に、前記外部装置から前記第２データを再度受信する請求項１に記載の情報処理装置。
【請求項３】
前記受信手段は、複数のブロックに区分された前記第２データをブロック単位で受信し、
前記判定手段は、前記第２記憶部に記憶された前記ブロックのチェックサムに基づいて、正常か否かの判定を前記ブロック単位で実行する請求項２に記載の情報処理装置。
【請求項４】
前記更新手段は、前記第１データの更新途中に自装置の電源がオフとなった場合、次回の電源オン時に、前記第１データに基づいた自装置の起動を抑制し、前記第２記憶部に記憶された前記第２データを用いて、前記第１記憶部に記憶された前記第１データの更新を再度実行する請求項１に記載の情報処理装置。
【請求項５】
前記更新手段は、前記第１記憶部に記憶された前記第１データの更新が完了した後、自装置を再起動させる請求項４に記載の情報処理装置。
【請求項６】
主記憶部を備えた情報処理装置のコンピュータを、
不揮発性の第１記憶部に記憶された自装置の動作に係る第１データを更新するための第２データを外部装置から受信する受信手段と、
前記受信手段が受信した前記第２データを、不揮発性の第２記憶部に記憶させる記憶手段と、
前記主記憶部に展開された前記第１データに基づき自装置が動作している間に、前記第２記憶部に記憶された前記第２データを用いて、前記第１記憶部に記憶された前記第１データを更新する更新手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、印刷装置等の情報処理装置では、ファームウェア等のデータを更新する際、更新専用の動作モードに移行することが行われている。この場合、データの更新中は、情報処理装置を通常どおり使用することができないという問題がある。
【０００３】
上記の問題に関し、ファームウェアを記憶する記憶領域を二重化し、ファームウェアの更新時には、起動対象の記憶領域とは異なる他方の記憶領域を更新し、次回の起動時に他方の記憶領域を起動対象とすることで、ファームウェアの更新中も装置を使用することが可能な技術が提案されている。
【０００４】
しかしながら、上記した従来の技術では、更新が行われる度に起動対象の記憶領域を切り替える処理が発生するため、更新に係る処理が煩雑化する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、情報処理装置の通常動作を止めることなくデータの更新を効率的に行うことが可能な情報処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の情報処理装置は、自装置の動作に係る第１データを記憶する不揮発性の第１記憶部と、前記第１記憶部から展開された前記第１データを保持する主記憶部と、前記第１データを更新するための第２データを管理する外部装置から前記第２データを受信する受信手段と、前記受信手段が受信した前記第２データを記憶する不揮発性の第２記憶部と、前記主記憶部に展開された前記第１データに基づき自装置が動作している間に、前記第２記憶部に記憶された前記第２データを用いて、前記第１記憶部に記憶された前記第１データを更新する更新手段と、を備える。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る印刷装置のハードウェア構成の一例を示す図である。
【図２】図２は、実施形態に係る印刷装置の機能的構成の一例を示す図である。
【図３】図３は、実施形態の印刷装置が実行する第１更新処理の一例を示すフローチャートである。
【図４】図４は、実施形態の印刷装置が実行する第２更新処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、情報処理装置及びプログラムの実施形態を詳細に説明する。なお、以下に説明する実施形態では情報処理装置として印刷装置を用いた例を説明するが、これに限定されるものではない。
【０００９】
図１は、印刷装置１０のハードウェア構成の一例を示す図である。印刷装置１０は、情報処理装置の一例であり、プロセッサ１１、ＲＡＭ（Random  Access  Memory）１２、第１記憶部１３、第２記憶部１４等のコンピュータ構成を備える。
【００１０】
プロセッサ１１は、ＣＰＵ（Central  Processing  Unit）等の中央処理装置で構成され、印刷装置１０の動作を統括制御する。ＲＡＭ１２は、主記憶装置（主記憶部）の一例であり、プロセッサ１１のワークエリアとして機能する。
【００１１】
第１記憶部１３及び第２記憶部１４は、フラッシュメモリやＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）等の書き換え可能な不揮発性の記憶装置である。第１記憶部１３は、印刷装置１０の動作に係る第１データの一例として、印刷装置１０の第１ファームウェアＦＷ１を記憶する。プロセッサ１１は、印刷装置１０の起動時に、第１記憶部１３に記憶された第１ファームウェアＦＷ１をＲＡＭ１２に展開することで、印刷を行うことが可能な動作状態（通常動作）を実現させる。
【００１２】
また、第２記憶部１４は、第１ファームウェアＦＷ１の更新に用いる記憶領域である。第２記憶部１４は、第２データの一例として、第１ファームウェアＦＷ１を更新するための第２ファームウェアＦＷ２を記憶する。また、第２記憶部１４は、第１ファームウェアＦＷ１の更新処理に係る更新用プログラムＰＧと、後述する更新フラグＦＬとを記憶する。
【００１３】
本実施形態では、第１記憶部１３及び第２記憶部１４のそれぞれが記憶するファームウェアを識別するため、便宜的に「第１」及び「第２」の異なる名称を付している。第１ファームウェアＦＷ１を更新する場合、第１ファームウェアＦＷ１と第２ファームウェアＦＷ２とは異なるバージョンとなるが、更新直後の状態等では、第１ファームウェアＦＷ１と第２ファームウェアＦＷ２とが同一となる場合もある。
【００１４】
なお、第１記憶部１３及び第２記憶部１４は、それぞれが独立した記憶装置であってもよいし、同一の記憶装置内の異なる記憶領域であってもよい。また、更新用プログラムＰＧ及び更新フラグＦＬは、第１記憶部１３に記憶してもよい。また、更新用プログラムＰＧは、ファームウェア自体（第１ファームウェアＦＷ１、第２ファームウェアＦＷ２）に含まれていてもよい。
【００１５】
また、印刷装置１０は、操作部１５、表示部１６、通信部１７、印刷部１８等を備える。操作部１５は、各種操作の入力を行うものである。操作部１５は、例えば、操作ボタン、キーボード、タッチパネル等の入力装置によって実現される。表示部１６は、各種画面を表示するものである。表示部１６は、例えば、液晶ディスプレイ、タッチパネル式ディスプレイ等の表示装置によって実現される。
【００１６】
通信部１７は、ＬＡＮ（Local  Area  Network）やインターネット等のネットワークＮに接続するための通信インタフェースである。通信部１７は、プロセッサ１１の制御の下、ネットワークＮに接続された外部機器との間で各種データの授受を行う。
【００１７】
例えば、通信部１７は、印刷の対象となる文字や画像等を表した印刷データを外部機器（以下、第１ホスト装置Ｈ１）から受信する。また、例えば、通信部１７は、印刷装置１０の最新のファームウェアを記憶・管理する外部機器（以下、第２ホスト装置Ｈ２）から、最新のファームウェアを第２ファームウェアとして受信する。かかる第２ファームウェアには、誤り検出用のチェックサムが予め付帯されている。
【００１８】
なお、ネットワークＮに接続される第１ホスト装置Ｈ１の台数は特に問わず、複数台であってもよい。また、第１ホスト装置Ｈ１の何れか一つが、第２ホスト装置Ｈ２であってもよい。
【００１９】
印刷部１８は、プロセッサ１１の制御の下、外部機器から送信される印刷データに基づき所定の用紙に印刷を行うプリンタエンジンである。印刷部１８の印刷方式や機構は特に問わないものとする。例えば、印刷部１８は、熱転写方式であってもよいし、インクジェット方式であってもよいし、電子写真方式であってもよい。
【００２０】
次に、図２を参照して、印刷装置１０の機能的構成について説明する。図２は、印刷装置１０の機能的構成の一例を示す図である。
【００２１】
図２に示すように、印刷装置１０は、印刷データ受信部１０１と、印刷制御部１０２と、ファームウェア受信部１０３と、更新制御部１０４とを機能的構成として備える。
【００２２】
上述した機能的構成のうち、印刷データ受信部１０１及び印刷制御部１０２は、プロセッサ１１と第１記憶部１３に記憶された第１ファームウェアＦＷ１との協働により実現される。また、ファームウェア受信部１０３及び更新制御部１０４の一部又は全ては、プロセッサ１１と第２記憶部１４に記憶された更新用プログラムＰＧとの協働により実現されるソフトウェア構成であってもよい。また、ファームウェア受信部１０３及び更新制御部１０４の一部又は全ては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等の処理回路によって実現されるハードウェア構成であってもよい。
【００２３】
印刷データ受信部１０１は、通信部１７を介して、第１ホスト装置Ｈ１から送信される印刷データを受信する。印刷制御部１０２は、印刷部１８を制御することで、印刷データ受信部１０１によって受信された印刷データを用紙に印刷させる。
【００２４】
ファームウェア受信部１０３は、受信手段、判定手段及び記憶手段の一例である。ファームウェア受信部１０３は、通信部１７を介して、第２ホスト装置Ｈ２から提供される最新のファームウェアを受信する。また、ファームウェア受信部１０３は、受信したファームウェアを第２ファームウェアＦＷ２として第２記憶部１４に記憶する。
【００２５】
より詳細には、ファームウェア受信部１０３は、第２ホスト装置Ｈ２から受信したファームウェアをＲＡＭ１２に一時記憶し、ファームウェア全体の受信が完了すると、第２ファームウェアＦＷ２として第２記憶部１４に記憶する。ここで、ファームウェアの受信（取得）方法は特に問わず、種々の方法を採用することができる。
【００２６】
例えば、ファームウェア受信部１０３は、第２ホスト装置Ｈ２からプッシュ配信されるファームウェアを受信してもよい。
【００２７】
また、例えば、ファームウェア受信部１０３は、所定期間毎に第２ホスト装置Ｈ２にファームウェアの送信を要求することで、ファームウェアを受信するプル型の取得方式であってもよい。
【００２８】
また、プル型の取得方式を用いる場合、ファームウェア受信部１０３は、第１記憶部１３に記憶されたファームウェアが、最新のバージョンか否かを確認した上で、更新用ファームウェアを受信してもよい。この場合、ファームウェア受信部１０３は、第１記憶部１３に記憶された第１ファームウェアＦＷ１のバージョンと、第２ホスト装置Ｈ２で記憶・管理されている最新ファームウェアのバージョンとを比較し、両バージョンが相違した場合に、ファームウェアを要求する。
【００２９】
これにより、ファームウェア受信部１０３は、第１ファームウェアＦＷ１が最新のバージョンでない場合にのみ、第２ホスト装置Ｈ２からファームウェアを取得することができるため、第１ファームウェアＦＷ１の更新を効率的に行うことができる。なお、最新のファームウェアのバージョンは、第２ホスト装置Ｈ２からプッシュ配信されてもよいし、第２ホスト装置Ｈ２に要求することで、当該第２ホスト装置Ｈ２から提供される形態としてもよい。
【００３０】
また、ファームウェア受信部１０３は、第２ホスト装置Ｈ２からファームウェアを一度に受信してもよいし、ファームウェアを複数のブロック単位に区分して受信してもよい。後者の場合、ファームウェア受信部１０３は、一のブロックを受信する毎に、その受信したブロックを第２記憶部１４に記憶していくことで、ファームウェア（第２ファームウェアＦＷ２）全体を第２記憶部１４に記憶させる。なお、区分するブロックの単位は特に問わず、例えば所定のデータ容量の単位で区分けしてもよいし、プログラムモジュールの単位で区分してもよい。
【００３１】
また、ファームウェア受信部１０３は、受信した第２ファームウェアＦＷ２が異常状態にある場合、第２ファームウェアＦＷ２を再受信するリカバリ機能を備えている。
【００３２】
具体的には、ファームウェア受信部１０３は、第２記憶部１４に第２ファームウェアＦＷ２を記憶すると、その第２ファームウェアＦＷ２のチェックサムに基づき、第２記憶部１４に記憶した第２ファームウェアＦＷ２が正常か否かを判定する。なお、チェックサムは、第２ファームウェアＦＷ２に予め付帯されているものとする。
【００３３】
例えば、ファームウェアの受信途中で第２ホスト装置Ｈ２との通信が途絶えた場合、又はファームウェアの受信途中で印刷装置１０の電源がオフになったような場合、データ内容に誤りが生じた異常状態の第２ファームウェアＦＷ２が第２記憶部１４に記憶される可能性がある。そこで、ファームウェア受信部１０３は、上述したチェックサムに基づく判定処理を実行することで、第２記憶部１４に記憶された第２ファームウェアＦＷ２が正常か否かを判定する。
【００３４】
チェックサムに基づきデータ中に誤りがないと判定した場合、ファームウェア受信部１０３は、第２記憶部１４に記憶された第２ファームウェアＦＷ２が正常と判定する。この場合、ファームウェア受信部１０３は、更新の準備が完了したことを更新制御部１０４に通知することで、第１ファームウェアＦＷ１の更新を実行することが可能な状態とする。
【００３５】
一方、データ中に誤りが検出された場合、ファームウェア受信部１０３は、第２記憶部１４に記憶された第２ファームウェアＦＷ２が異常と判定する。この場合、ファームウェア受信部１０３は、更新の準備が完了したことを更新制御部１０４に通知することなく、第２ホスト装置Ｈ２からファームウェア（第２ファームウェアＦＷ２）の受信を再度実行する。
【００３６】
このように、ファームウェア受信部１０３は、第２記憶部１４に記憶された第２ファームウェアＦＷ２が異常状態にある場合、第１ファームウェアＦＷ１の更新を抑制し、第２ファームウェアの再受信を実行する。これにより、印刷装置１０では、異常状態の第２ファームウェアＦＷ２が更新に使用されてしまうことを抑制できるため、第１ファームウェアＦＷ１の更新を安全、且つ確実に行うことができる。
【００３７】
また、第２ファームウェアＦＷ２がブロック単位で第２記憶部１４に記憶される構成の場合には、ファームウェア受信部１０３は、各ブロックに付帯されたチェックサムに基づき、ブロック単位で正常か否かの判定を行う。そして、ファームウェア受信部１０３は、データの誤りが検出されたブロックを第２ホスト装置Ｈ２から再度受信する。これにより、印刷装置１０では、第２ファームウェアＦＷ２の再受信をブロック単位で行うことができるため、再受信に要する時間の短縮化を図ることができる。
【００３８】
なお、ファームウェア受信部１０３がファームウェアの受信に用いる通信プロトコルは、印刷データ受信部１０１が印刷データの受信に用いる通信プロトコルと相違することが好ましい。ここで、通信プロトコルは、ＨＴＴＰやＦＴＰ等の通信サービスや、当該通信サービスで使用するポート番号等を意味する。通信プロトコルを相違させることで、印刷データの受信とファームウェアの受信とを並行して行うことができるため、印刷装置１０の動作を妨げることなく、印刷処理等のバックグラウンドでファームウェアの受信を行うことができる。なお、少なくともファームウェアの受信には、通信をセキュアに行うことが可能な通信プロトコルを用いることが好ましい。
【００３９】
更新制御部１０４は、更新手段の一例である。更新制御部１０４は、第２記憶部１４に記憶された第２ファームウェアＦＷ２を用いて、第１記憶部１３に記憶された第１ファームウェアＦＷ１を更新するための処理を実行する。具体的には、更新制御部１０４は、第１記憶部１３に記憶された第１ファームウェアＦＷ１を、第２記憶部１４に記憶された第２ファームウェアＦＷ２で上書きすることで、印刷装置１０のファームウェアを更新する。
【００４０】
ここで、第１記憶部１３に記憶された第１ファームウェアＦＷ１の内容は、印刷装置１０の起動時にＲＡＭ１２上に展開されているため、更新制御部１０４は、印刷装置１０の印刷機能を維持した状態で、第１ファームウェアＦＷ１の更新を行うことができる。そして、第１ファームウェアの更新後は、手動又は自動により印刷装置１０が再起動することで、更新後の第１ファームウェアに基づき印刷装置１０を動作させることができる。
【００４１】
また、更新制御部１０４は、第１ファームウェアＦＷ１の更新が印刷装置１０の電源オフにより中断されたような場合、次回の電源オン時に更新を再度実行するためのリカバリ機能を備えている。
【００４２】
具体的には、更新制御部１０４は、第１ファームウェアＦＷ１の更新に際し、更新中であることを示す更新フラグＦＬをオンにセットする。更新制御部１０４は、第１ファームウェアＦＷ１の更新が完了するまでの間、更新フラグＦＬのオン状態を維持し、第１ファームウェアＦＷ１の更新が完了すると更新フラグをオフにセットする。
【００４３】
これにより、例えば、第１ファームウェアＦＷ１の更新途中で印刷装置１０の電源がオフになったような場合であっても、次回の電源オン時に更新フラグＦＬの状態を確認することで、第１ファームウェアＦＷ１の更新が中断された状態か否かを判別することができる。
【００４４】
また、更新制御部１０４は、印刷装置１０の電源オン時に、第１ファームウェアＦＷ１の起動に先駆けて更新フラグＦＬの状態を確認する。ここで、更新フラグＦＬがオフの場合、更新制御部１０４は、第１ファームウェアＦＷ１の更新は不要と判断する。この場合、プロセッサ１１は、第１ファームウェアＦＷ１を起動することで、第１ファームウェアＦＷ１の内容をＲＡＭ１２に展開し、印刷装置１０を動作状態へと移行させる。
【００４５】
一方、更新フラグＦＬがオンの場合、更新制御部１０４は、第１ファームウェアＦＷ１の更新が中断された状態と判断する。この場合、更新制御部１０４は、第１ファームウェアＦＷ１の起動を抑制するとともに、第２記憶部１４に記憶された第２ファームウェアＦＷ２を用いて印刷装置１０を起動し、第１記憶部１３の第１ファームウェアＦＷ１を更新する。そして、更新制御部１０４は、第１ファームウェアの更新が完了すると、更新フラグをオフにセットした後、印刷装置１０を再起動させる。
【００４６】
このように、更新制御部１０４は、第１ファームウェアＦＷ１の更新が中断された場合であっても、次回の電源オン時に更新することができるため、第１ファームウェアＦＷ１の更新を確実に行うことができる。また、更新制御部１０４は、更新途中の不完全な第１ファームウェアＦＷ１を用いて印刷装置１０が起動されてしまうことを防ぐことができるため、印刷装置１０の安定動作を図ることができる。
【００４７】
なお、更新制御部１０４は、第１ファームウェアＦＷ１を一度に更新してもよいし、上述したブロック単位で更新してもよい。後者の場合、更新制御部１０４は、第２記憶部１４に記憶された第２ファームウェアＦＷ２をブロック単位で順次読み出し、読み出したブロックを用いて第１記憶部１３の第１ファームウェアＦＷ１を順次更新する。また、第１ファームウェアＦＷ１の更新が中断された場合、更新制御部１０４は、更新が完了した完全なブロックはそのまま維持し、更新途中の不完全なブロックから更新を再度実行する。なお、第１記憶部１３に記憶されたブロックが完全か否かの判定は、各ブロックに付加されたチェックサムに基づき判定することができる。
【００４８】
これにより、第１ファームウェアＦＷ１の更新が中断された場合のリカバリ処理を、ブロック単位で行うことができるため、第１ファームウェアＦＷ１の更新を効率的に行うことができる。
【００４９】
以下、図３及び図４を参照して、第１ファームウェアＦＷ１の更新に係る印刷装置１０の動作について説明する。
【００５０】
図３は、印刷装置１０で実行される第１更新処理の一例を示すフローチャートである。なお、本処理は、第１記憶部１３に記憶された第１ファームウェアＦＷ１の起動後、つまり印刷装置１０が行う通常動作のバックグラウンドで実行されるものである。
【００５１】
まず、印刷装置１０では、所定の開始トリガに応じて、第１更新処理を開始する。ここで、開始トリガは特に問わず、任意に設定することが可能である。例えば、操作部１５を介して更新開始が指示されたことを開始トリガとしてもよい。また、例えば、第２ホスト装置Ｈ２から最新ファームウェアのバージョンが通知されたことを開始トリガとしてもよい。また、例えば、予め設定された日時に達したことを開始トリガとしてもよい。
【００５２】
第１更新処理が開始されると、ファームウェア受信部１０３は、第１記憶部１３に記憶された第１ファームウェアＦＷ１のバージョンと、第２ホスト装置Ｈ２が記憶・管理する最新ファームウェアのバージョンとを比較する（ステップＳ１１）。ここで、両バージョンが一致した場合（ステップＳ１２；Ｙｅｓ）、ファームウェア受信部１０３は、更新不要と判断し、本処理を終了する。なお、ファームウェア受信部１０３は、ステップＳ１２において、第１ファームウェアＦＷ１が最新バージョンであることを報知するメッセージ等を表示部１６に表示させてもよい。
【００５３】
また、両バージョンが相違する場合（ステップＳ１２；Ｎｏ）、ファームウェア受信部１０３は、第２ホスト装置Ｈ２から第２ファームウェアＦＷ２を取得し（ステップＳ１３）、取得した第２ファームウェアＦＷ２を第２記憶部１４に記憶させる（ステップＳ１４）。
【００５４】
続いて、ファームウェア受信部１０３は、第２記憶部１４に記憶した第２ファームウェアＦＷ２のチェックサムに基づいて、第２ファームウェアＦＷ２が正常か否かの判定を行う（ステップＳ１５）。
【００５５】
ここで、第２ファームウェアＦＷ２のデータ中に誤りが検出された場合、ファームウェア受信部１０３は、異常状態の第２ファームウェアＦＷ２が第２記憶部１４に記憶されていると判定する（ステップＳ１５；Ｎｏ）。この場合、ファームウェア受信部１０３は、ステップＳ１３に処理を戻すことで、第２ファームウェアＦＷ２を再度受信する。
【００５６】
一方、第２ファームウェアＦＷ２のデータ中に誤りが検出されない場合、正常状態の第２ファームウェアＦＷ２が第２記憶部１４に記憶されていると判定する（ステップＳ１５；Ｙｅｓ）。この場合、ファームウェア受信部１０３は、更新の準備が完了したことを更新制御部１０４に通知する。
【００５７】
更新準備の完了通知を受け付けると、更新制御部１０４は、更新フラグＦＬをオンにセットする（ステップＳ１６）。次いで、更新制御部１０４は、第２記憶部１４に記憶された第２ファームウェアＦＷ２を用いて、第１記憶部１３に記憶された第１ファームウェアＦＷ１の更新を開始する（ステップＳ１７）。
【００５８】
そして、第１ファームウェアＦＷ１の更新が完了すると、更新制御部１０４は、更新フラグをオフにセットし（ステップＳ１８）、本処理を終了する。なお、更新制御部１０４は、ステップＳ１８において、印刷装置１０の再起動を促すメッセージを表示部１６に表示させてもよい。
【００５９】
図４は、印刷装置１０で実行される第２更新処理の一例を示すフローチャートである。なお、本処理は、印刷装置１０の電源オン時、つまり第１記憶部１３に記憶された第１ファームウェアＦＷ１の起動前に実行されるものである。
【００６０】
印刷装置１０の電源オンに伴い更新制御部１０４が有効化されると、更新制御部１０４は、更新フラグＦＬがオフ状態か否かを判定する（ステップＳ２１）。更新フラグＦＬがオフの場合（ステップＳ２１；Ｙｅｓ）、更新制御部１０４は、更新不要と判断し、ステップＳ２２に移行させる。
【００６１】
ステップＳ２２では、プロセッサ１１が、第１記憶部１３に記憶された第１ファームウェアＦＷ１を起動することで、更新後のファームウェアの内容をＲＡＭ１２に展開し（ステップＳ２２）、本処理を終了する。これにより、印刷装置１０では、印刷データ受信部１０１や印刷制御部１０２等が実現され、印刷機能を使用することが可能となる
【００６２】
一方、更新フラグＦＬがオン状態の場合（ステップＳ２１；Ｎｏ）、更新制御部１０４は、第１ファームウェアＦＷ１の更新が中断された状態であると判断する。この場合、更新制御部１０４は、第２記憶部１４に記憶された第２ファームウェアＦＷ２を用いて、第１記憶部１３に記憶された第１ファームウェアＦＷ１の更新を開始する（ステップＳ２３）。
【００６３】
第１ファームウェアＦＷ１の更新が完了すると、更新制御部１０４は、更新フラグＦＬをオフにセットする（ステップＳ２４）。そして、更新制御部１０４は、更新後の第１ファームウェアＦＷ１を反映するため、印刷装置１０を再起動し（ステップＳ２５）、本処理を終了する。なお、更新制御部１０４は、印刷装置１０を再起動する代わりに、印刷装置１０の再起動を促すメッセージを表示部１６に表示させてもよい。
【００６４】
以上のように、印刷装置１０は、第１記憶部１３に記憶された第１ファームウェアＦＷ１を更新する場合、第２ホスト装置Ｈ２から受信した更新用の第２ファームウェアＦＷ２を第２記憶部１４に記憶する。そして、印刷装置１０は、ＲＡＭ１２に展開された第１ファームウェアＦＷ１に基づき印刷装置１０が動作している間に、第２記憶部１４に記憶された第２ファームウェアＦＷ２を用いて、第１記憶部１３に記憶された第１ファームウェアＦＷ１を更新する。
【００６５】
これにより、印刷装置１０では、印刷装置１０の動作のバックグランドで、第１記憶部１３に記憶された第１ファームウェアＦＷ１を更新することができるため、印刷装置１０の通常動作を止めることなく、第１ファームウェアＦＷ１の更新処理を実行することができる。また、印刷装置１０では、第１記憶部１３及び第２記憶部１４のうち、一方の第２記憶部１４を第１ファームウェアの更新用に特化させることができるため、第１ファームウェアＦＷ１の更新に係る構成を簡易化することできる。したがって、印刷装置１０は、第１ファームウェアＦＷ１の更新を効率的に行うことができる。
【００６６】
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００６７】
例えば、上記実施形態では、ファームウェアを更新する例を説明したが、更新対象となるデータはこれに限らないものとする。例えば、ＯＳ（Operating  System）やアプリケーションプログラム、設定情報、フォントデータ等の各種のデータを更新対象としてもよい。但し、更新対象となるデータは、印刷装置１０の通常動作時にＲＡＭ１２上に展開されて使用されるデータに限定することが好ましい。
【００６８】
また、上記実施形態では、第１ファームウェアＦＷ１の更新が中断された場合に、次回の起動時（電源オン時）に第２ファームウェアＦＷ２により更新を再実行する形態を説明したが（図４、第２更新処理参照）、他の条件下でも更新の再実行を行う構成としてもよい。例えば、データ破損等の理由により第１ファームウェアＦＷ１を起動することができない場合、更新制御部１０４は、第２記憶部１４の第２ファームウェアＦＷ２を用いて第１記憶部１３の第１ファームウェアＦＷ１を更新することで、第１ファームウェアＦＷ１のリカバリを行う構成としてもよい。
【００６９】
また、上記実施形態では、情報処理装置の一例として印刷装置の構成及び動作を説明したが、これに限らないものとする。例えば、情報処理装置として、ＰＣ（Personal  Computer）やサーバ装置、ＰＯＳ（Point  Of  Sales）端末等に適用してもよい。
【００７０】
また、上記実施形態の印刷装置１０（情報処理装置）で実行されるプログラムは、ラベル貼付装置が備える記憶媒体（ＲＯＭ等）に予め組み込んで提供するものとするが、これに限らず、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、記憶媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【００７１】
また、上記実施形態の印刷装置１０（情報処理装置）で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施形態の印刷装置１０（情報処理装置）で実行されるプログラムを、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。
【符号の説明】
【００７２】
１０  印刷装置
１１  プロセッサ
１２  ＲＡＭ
１３  第１記憶部
１４  第２記憶部
１５  操作部
１６  表示部
１７  通信部
１８  印刷部
１０１  印刷データ受信部
１０２  印刷制御部
１０３  ファームウェア受信部
１０４  更新制御部
【先行技術文献】
【特許文献】
【００７３】
【特許文献１】特開２０１８−１５６６３８号公報
【図１】
2020102141.tif 000003
【図２】
2020102141.tif 000004
【図３】
2020102141.tif 000005
【図４】
2020102141.tif 000006