(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159696
(43)【公開日】2023-11-01
(54)【発明の名称】情報処理装置、情報処理方法、コンピュータプログラム
(51)【国際特許分類】
G06F 8/65 20180101AFI20231025BHJP
G06F 9/4401 20180101ALI20231025BHJP
【FI】
G06F8/65
G06F9/4401
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022069568
(22)【出願日】2022-04-20
(71)【出願人】
【識別番号】000208743
【氏名又は名称】キヤノンファインテックニスカ株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】鈴木 渉
(72)【発明者】
【氏名】菊池 俊喜
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AE63
5B376CA54
(57)【要約】
【課題】 ブートプログラムの書き換えが失敗してしまっても、装置が復旧不可となるリスクを軽減するための技術を提供すること。
【解決手段】 制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する。第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する。第2メモリ領域への第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する。第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する第1設定手段と、
前記第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する第1格納制御手段と、
前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する第2設定手段と、
前記第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする第2格納制御手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記第1設定手段は、起動時に実行するブートプログラムのアドレスとして、前記第1メモリ領域における前記第1ブートプログラムのアドレスを設定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2設定手段は、前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、起動時に実行するブートプログラムのアドレスとして、前記第2メモリ領域における前記第2ブートプログラムのアドレスを設定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記第2格納制御手段は、前記第1メモリ領域に格納されている制御プログラムを、前記第2ブートプログラムに後続して外部から受信した制御プログラムにアップデートすることを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記第1メモリ領域および前記第2メモリ領域は、同じ不揮発性メモリにおける別個のメモリ領域であることを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記制御プログラムはファームウェアであることを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記第1ブートプログラムは、前記アップデート前に前記第2メモリ領域に格納されていたブートプログラムであることを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記情報処理装置は、記録媒体に画像を記録する画像記録装置であることを特徴とする請求項1に記載の情報処理装置。
【請求項9】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第1設定手段が、制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する第1設定工程と、
前記情報処理装置の第1格納制御手段が、前記第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する第1格納制御工程と、
前記情報処理装置の第2設定手段が、前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する第2設定工程と、
前記情報処理装置の第2格納制御手段が、前記第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする第2格納制御工程と
を備えることを特徴とする情報処理方法。
【請求項10】
コンピュータを、請求項1乃至8のいずれか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラムのアップデート技術に関するものである。
【背景技術】
【0002】
プリンタなどの画像記録装置では、不揮発性メモリに保存されたファームウェアと呼ばれる制御プログラムを実行することで、画像記録動作など各種装置の動作を行っている。ファームウェアは、装置の不具合や機能拡張のため、アップデートが可能となっている場合が多い。
【0003】
従来、ファームウェアのアップデートの際、不揮発性メモリに保存されたファームウェアの更新中に、電源断などの要因によりアップデートが正常に完了しなかった場合、不揮発性メモリ内のファームウェアが不正値となり、装置が正しく起動しなくなるといった問題があった。
【0004】
上記問題の対策として、ファームウェアをブートプログラムとアプリケーションプログラムの2つに分割し、装置起動時に実行するブートプログラムによって、アプリケーションプログラムのアップデート/起動を管理する方法がある。
【0005】
更に、ブートプログラムの保存領域を2つ備えることで、一方のブートプログラムのアップデートに失敗した場合であっても、もう一方のブートプログラムを実行して装置の正常起動を可能としている発明が特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、ブートプログラムの保存領域を2つ備える方法は、プログラム保存用のメモリ領域を2倍確保する必要があり、メモリ容量の増加によるコストアップが問題であった。
【0008】
本発明は、このような課題に鑑みてなされたものであり、ブートプログラムの書き換えが失敗してしまっても、装置が復旧不可となるリスクを軽減するための技術を提供する。
【課題を解決するための手段】
【0009】
本発明の一様態は、制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する第1設定手段と、前記第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する第1格納制御手段と、前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する第2設定手段と、前記第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする第2格納制御手段とを備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、ブートプログラムの書き換えが失敗してしまっても、装置が復旧不可となるリスクを軽減することができる。
【図面の簡単な説明】
【0011】
【
図2】画像記録装置101のハードウェア構成例を示すブロック図。
【
図3】ROM202におけるメモリ領域の構成例を示す図。
【
図4】画像記録装置101が起動時に行う処理のフローチャート。
【
図6】ステップS308に適用する特定のケースのフローチャート。
【
図7】ステップS308における処理のシーケンスを示す図。
【
図8】領域202bの書き換え時の転送データを示す図。
【
図9】
図7に示したシーケンスに従った処理のフローチャート。
【発明を実施するための形態】
【0012】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下に説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の1つである。
【0013】
[第1の実施形態]
本実施形態では、プリンタなどの画像記録装置における制御プログラムであるファームウェアを、外部装置から受信したファームウェアにアップデートするケースについて説明する。
【0014】
本実施形態に係るシステムの構成例について、
図1を用いて説明する。
図1に示す如く、本実施形態に係るシステムは、画像記録装置101およびホストコンピュータ111を有し、画像記録装置101とホストコンピュータ111との間は、クラウド110を介して互いにデータ通信が可能なように構成されている。なお、画像記録装置101とホストコンピュータ111との間で互いにデータ通信が可能であれば、画像記録装置101とホストコンピュータ111との間の接続形態については特定の接続形態に限らない。
【0015】
画像記録装置101はコントローラ制御部103により、クラウド110を介して、遠隔でシステムを管理するホストコンピュータ111と通信する。本実施形態では、画像記録装置101は、自身が有するファームウェアを、ホストコンピュータ111から受信するファームウェアにアップデートするケースについて説明する。
【0016】
次に、画像記録装置101のハードウェア構成例について、
図2のブロック図を用いて説明する。
【0017】
CPU201は、ROM202に格納されている各種のコンピュータプログラム(ファームウェア、ブートプログラム、ROM202に格納されているファームウェアのアップデート(更新)を実行するためのコンピュータプログラムなど)をRAM204に読み出して実行する。これによりCPU201は、印刷制御部102を含む画像記録装置101全体の動作制御を行うと共に、画像記録装置101が行うものとして説明する各種の処理を実行もしくは制御する。
【0018】
ROM202は不揮発性のEEPROMなどのメモリ装置の一例であり、各種のコンピュータプログラム(ファームウェア、ブートプログラム、ROM202に格納されているファームウェアのアップデート(更新)を実行するためのコンピュータプログラムなど)が格納されている。
【0019】
ROM203は不揮発性のEEPROMなどのメモリ装置の一例であり、データのバックアップ用に利用され、たとえば、画像記録装置101の調整値などの該画像記録装置101のシャットダウン後でも残したいデータを保存するために利用される。
【0020】
RAM204は、ROM202やROM203からロードされたコンピュータプログラムやデータを格納するためのエリア、コントローラ制御部103によりホストコンピュータ111から受信したコンピュータプログラムやデータを格納するためのエリア、を有する。さらにRAM204は、CPU201が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM204は、各種のエリアを適宜提供することができる。
【0021】
イメージメモリ205は、CPU201がコントローラ制御部103を介してホストコンピュータ111から受信した印刷ジョブに基づいて画像を展開するメモリとして使用される。
【0022】
ヘッド駆動回路206は、黒(ブラック)のインクを吐出する記録ヘッド206a、シアンのインクを吐出する記録ヘッド206b、マゼンタのインクを吐出する記録ヘッド206c、イエローのインクを吐出する記録ヘッド206d、の駆動制御を行って、紙などの記録媒体上に画像や文字を形成する。
【0023】
モータドライバ208は、記録ヘッド206a、206b、206c、206dを記録に最適な状態に保つためのクリーニング動作や記録動作を制御するための各種モータ207を駆動する。
【0024】
センサは、紙などの記録媒体の検知などを行うためのものである。
【0025】
ヘッド駆動回路206、モータドライバ208、センサ211の制御は、制御回路220によって行われる。
【0026】
USBコントローラ212は、USBケーブルを介してコントローラ制御部103と接続している。例えばUSBコントローラ212は、コントローラ制御部103がホストコンピュータ111から受信した各種のコンピュータプログラムやデータ、クリーニングなど実行するための要求コマンド、などをUSBケーブルを介して取得する。CPU201は、USBコントローラ212が受信したコンピュータプログラムやデータを適当なメモリに格納する。
【0027】
なお、画像記録装置101はUSBケーブルを介してコントローラ制御部103と接続することに限らず、他の種類の有線や無線のネットワークを介してコントローラ制御部103と通信可能に接続するようにしても良い。
【0028】
次に、ROM202におけるメモリ領域の構成例について、
図3を用いて説明する。ROM202は、領域(Application領域)202aと、領域(Bootloader領域)202bと、を有する。
【0029】
領域202aは、印刷機能など、市場でユーザが製品としての機能を使用するためにCPU201に実行もしくは制御させるためのコンピュータプログラム(ファームウェア)を格納するための領域である。
【0030】
領域202bは、画像記録装置101の起動時に実行されるコンピュータプログラム(ブートプログラム)や、ホストコンピュータ111からコントローラ制御部103を介して受信したアップデートプログラム(ホストコンピュータ111から送信されたファームウェアをコントローラ制御部103を介して受信し、該受信したファームウェアをROM202に書き込む(アップデート)する一連の動作をCPU201に実行させるためのコンピュータプログラム)、を格納するための領域である。
【0031】
次に、画像記録装置101が起動時に行う処理について、
図4のフローチャートに従って説明する。
【0032】
画像記録装置101の電源をオンにしたり、再起動する指示を入力したり等、画像記録装置101の起動開始時には先ず、ステップS301においてCPU201は起動に係る各種の初期化処理を行う。
【0033】
ステップS302では、CPU201は、ROM202における領域202aおよび領域202bのそれぞれに対してチェックサムを行い、領域202aおよび領域202bのそれぞれに正常にコンピュータプログラムやデータが格納されているか否かをチェックする。
【0034】
このチェックの結果、領域202aおよび領域202bのそれぞれに正常にコンピュータプログラムやデータが格納されていることが確認できた場合(OK)には、処理はステップS303に進み、領域202aおよび領域202bのそれぞれに正常にコンピュータプログラムやデータが格納されていると確認できなかった場合(NG)には、処理はステップS305に進む。
【0035】
ステップS303では、CPU201は、ROM203に格納されているダウンロードモードフラグが、ダウンロードモードを示している(TRUEを示している)場合には、処理はステップS305に進み、通常動作モードを示している(FALSEを示している)場合には、処理はステップS304に進む。
【0036】
ダウンロードモードフラグは、前回に画像記録装置101をシャットダウンする前にユーザが指定した起動モードを示しているフラグである。通常動作モードで動作している画像記録装置101においてユーザがダウンロードモードフラグをTRUEに設定すると、次回に画像記録装置101を起動した場合には、画像記録装置101はダウンロードモードに移行することになる。
【0037】
ステップS304では、CPU201は、通常動作モードで動作するよう、画像記録装置101の動作制御を行う。例えば、CPU201は、ホストコンピュータ111から印刷ジョブを受信した場合には、該印刷ジョブに基づいて印刷を行うよう、制御回路220の動作制御を行い、該制御回路220は該動作制御により、ヘッド駆動回路206およびモータドライバ208の駆動制御を行って、紙などの記録媒体上に該印刷ジョブに基づく画像や文字を印刷し、該印刷を行った記録媒体の搬送を行う。また、CPU201は、ホストコンピュータ111から情報の取得要求を受けた場合には、該取得要求に応じた情報を収集し、該収集した情報をホストコンピュータ111に送信する。
【0038】
ステップS305では、CPU201は、ダウンロードモードフラグの値を示すビット(ダウンロードモードビット)をクリアする(FALSEにする)。
【0039】
ステップS306では、CPU201は、
図5に示す如く、ROM202の領域202bに格納されている「ファームウェアのダウンロードを行うためのコンピュータプログラム(ダウンロード処理)501」をRAM204に割り当てられたメモリ領域にロード(展開)する。
【0040】
ステップS307では、CPU201は、ステップS306でRAM204にロード(展開)したコンピュータプログラムを実行することで、ダウンロードモードに遷移する。
【0041】
ステップS308では、CPU201は、ダウンロードモードの処理を実行する。ここで、ステップS308において、
図6のフローチャートに従った処理を行うケースについて説明する。
【0042】
ステップS601では、CPU201は、初期化処理を行うことで、コントローラ制御部103とのUSB通信のための設定等を行う。
【0043】
ステップS602では、CPU201は、コントローラ制御部103からのダウンロード情報のダウンロードを待機する。コントローラ制御部103は、ホストコンピュータ111から送信されたダウンロード情報を受信すると、該受信したダウンロード情報をUSBコントローラ212に対して出力する。
【0044】
CPU201は、コントローラ制御部103からUSBコントローラ212を介してダウンロード情報を受信したことを検知すると、処理はステップS603に進み、コントローラ制御部103からUSBコントローラ212を介してダウンロード情報を受信したことを検知していない場合には、処理はステップS611に進む。
【0045】
ステップS603では、CPU201は、受信したダウンロード情報のヘッダに含まれるファームウェアの[Dest](書込み先番地)、[Size](ROM容量)、[Sum](サム値)を読み出し、該読み出した[Dest](書込み先番地)、[Size](ROM容量)、[Sum](サム値)をRAM204に格納する。
【0046】
ステップS604では、CPU201は、ROM202への書き込み単位である1kByte分の情報の受信を待機する。このサイズは素子に依存する。そして、ROM202への書き込み単位である1kByte分の情報を受信した場合には、処理はステップS606に進み、ROM202への書き込み単位である1kByte分の情報を受信していない場合には、処理はステップS605に進む。
【0047】
ステップS605では、CPU201は、ROM202への書き込み単位である1kByte分の情報の受信の待機時間(該情報を受信していない連続時間)が閾値以上になった場合には、受信タイムアウトと判断し、ダウンロード処理を中断して、処理はステップS602に進む。一方、ROM202への書き込み単位である1kByte分の情報の受信の待機時間が閾値未満である場合には、受信タイムアウトではない判断し、処理はステップS604に進む。
【0048】
ステップS606では、CPU201は、ROM202への書き込み単位である1kByte分の情報を、ROM202においてDestが示す番地に書き込む。ここで、ダウンロードするものは、ファームウェア、該ファームウェアのダウンロード(アップデート)後に画像記録装置101を再起動するためのコンピュータプログラムやデータ、であり、前者はROM202における領域202aに格納され、後者は領域202bに格納される。
【0049】
ステップS607では、CPU201は、Destに、ステップS606で書き込んだ情報のサイズ(1kByte)を加えることで該Destを更新する。また、CPU201は、Sizeから、ステップS606で書き込んだ情報のサイズ(1kByte)を減じることで該Sizeを更新する。
【0050】
ステップS608では、CPU201は、Size>0であるか否かを判断する。この判断の結果、Size>0である場合には、処理はステップS604に進み、Size≦0である場合には、ステップS609に進む。
【0051】
ステップS609では、CPU201は、ヘッダから取得したSumをもとに、ROM202において情報を書き込んだ領域のチェックサムを行う。ステップS609におけるチェックサムの結果、正常である場合(OK)には、処理はステップS602に進み、正常ではない(NG)の場合には、処理はステップS610に進む。
【0052】
ステップS610では、CPU201は、サムエラー状態に遷移する。例えば、チェックサムの結果がエラーである旨を画像記録装置101が有する不図示の表示部に表示したり、再ダウンロードを行うか否かをユーザに問い合わせるための画面を該表示部に表示したりしても良い。
【0053】
ステップS611では、CPU201は、コントローラ制御部103からシャットダウン要求があったか否かを確認し、シャットダウン要求があった場合には、CPU201は画像記録装置101のシャットダウンを行い、シャットダウン要求が無かった場合には、処理はステップS602に進む。
【0054】
ここで、
図6のフローチャートにおいて、ROM202に情報を書き込んでいる最中に画像記録装置101の電源の瞬断が行われた場合や、ステップS605で受信タイムアウトと判断された場合、ROM202への情報の書き込みが中断されてしまい、ファームウェアは正常に動作しない状態になってしまう。特に領域202bにおける情報の書き換えに失敗すると、画像記録装置101は復旧不可の状態に陥ってしまう。
【0055】
そこで本実施形態では、ステップS308においてCPU201は、
図7に示したシーケンスの処理を行うことで、領域202bにおける情報の書き換えが失敗してしまっても、画像記録装置101が復旧不可となるリスクを軽減する。
【0056】
ROM202の領域202bにおいて「起動指定」と記した領域(起動指定領域)には、画像記録装置101が起動した際に最初に実行するブートプログラムのアドレス(領域202bにおいてブートプログラムが格納されている領域のアドレス)が格納されている(1)。
【0057】
このような状態において、画像記録装置101は、領域202bに格納されているブートプログラムを領域202aに(新Boot(予備))としてコピーし(2)、起動指定領域に格納されているアドレスを、領域202aにコピーしたブートプログラム(新Boot(予備))のアドレスに書き換える(3)。
【0058】
これにより、例えば、領域202bへのブートプログラムのインストール(書き込み)中に瞬断など起こった場合でも、画像記録装置101は領域202aにコピーしたブートプログラムを実行して画像記録装置101を起動(復旧)させることができる。
【0059】
その後、ホストコンピュータ111から、「ファームウェアのインストール後に画像記録装置101を再起動する際に実行するブートプログラム(新Boot)」をダウンロードすると、該ダウンロードしたブートプログラムを領域202bにおいてヘッダが示すアドレスから順に書き込み(4)、領域202bへのブートプログラムのインストールが完了すると、起動指定領域に格納されているアドレスを、領域202bに書き込んだ(ダウンロードした)ブートプログラムのアドレスに書き換える(5)。
【0060】
そして、ブートプログラムに後続してホストコンピュータ111からダウンロードしたファームウェアをROM202における領域202aにインストールすることで、領域202aに格納されているファームウェア(新Boot(予備)で一部部分が上書きされているファームウェア)のアップデートを行う(6)。
【0061】
本実施形態においてステップS308で行う処理、つまり、
図7に示したシーケンスに従った処理について、
図9のフローチャートに従って説明する。
【0062】
ステップS901では、CPU201は、領域202bに格納されているブートプログラムを領域202aにコピーする。
【0063】
ステップS902では、CPU201は、起動指定領域に格納されているアドレスを、ステップS901で領域202aにコピーしたブートプログラムのアドレスに書き換える。
【0064】
ステップS903では、CPU201は、ホストコンピュータ111からコントローラ制御部103により受信した「ファームウェアのインストール(アップデート)後に画像記録装置101を再起動する際に実行するブートプログラム」を、領域202bにインストールする。インストールの手順は、例えば、
図6に示したような手順であっても良い。
【0065】
ステップS904では、CPU201は、領域202bへのブートプログラムのインストールが完了したか否かを判断する。この判断の結果、領域202bへのブートプログラムのインストールが完了した場合には、処理はステップS905に進む。一方、領域202bへのブートプログラムのインストールが完了していない場合には、処理はステップS903に進み、インストールを継続する。
【0066】
ステップS905では、CPU201は、起動指定領域に格納されているアドレスを、ステップS903で領域202bにインストールしたブートプログラムのアドレスに書き換える。
【0067】
ステップS906では、CPU201は、ブートプログラムに後続してホストコンピュータ111からダウンロードしたファームウェアをROM202における領域202aにインストールすることで、領域202aに格納されているファームウェアのアップデートを行う。
【0068】
図8は、本実施形態に係る領域202bの書き換え時の転送データを示す図である。2~6は
図7に対応しており、この順でデータが転送される。
【0069】
[第2の実施形態]
第1の実施形態では、プリンタなどの画像記録装置における制御プログラムであるファームウェアを、外部装置から受信したファームウェアにアップデートするケースについて説明した。しかし、第1の実施形態で説明した一連の処理は、このようなケースに限らず、自身が有するファームウェアをアップデートする様々な装置において適用することができる。
【0070】
また、第1の実施形態では、領域202aおよび領域202bは同じ不揮発性メモリ(ROM202)における別個のメモリ領域であるものとしたが、それぞれ別個の不揮発性メモリにおけるメモリ領域であっても良い。
【0071】
また、ファームウェアは制御プログラムの一例であり、他の種類の制御プログラムを対象として第1の実施形態を適用しても良い。
【0072】
また、第1の実施形態で説明した数値、処理タイミング、処理順、処理の主体、データ(情報)の送信先/送信元/格納場所などは、具体的な説明を行うために一例として挙げたもので、このような一例に限らない。
【0073】
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【0074】
本開示は以下の項目を含む。
【0075】
(項目1)
制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する第1設定手段と、
前記第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する第1格納制御手段と、
前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する第2設定手段と、
前記第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする第2格納制御手段と
を備えることを特徴とする情報処理装置。
【0076】
(項目2)
前記第1設定手段は、起動時に実行するブートプログラムのアドレスとして、前記第1メモリ領域における前記第1ブートプログラムのアドレスを設定することを特徴とする項目1に記載の情報処理装置。
【0077】
(項目3)
前記第2設定手段は、前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、起動時に実行するブートプログラムのアドレスとして、前記第2メモリ領域における前記第2ブートプログラムのアドレスを設定することを特徴とする項目1または2に記載の情報処理装置。
【0078】
(項目4)
前記第2格納制御手段は、前記第1メモリ領域に格納されている制御プログラムを、前記第2ブートプログラムに後続して外部から受信した制御プログラムにアップデートすることを特徴とする項目1乃至3のいずれか1項目に記載の情報処理装置。
【0079】
(項目5)
前記第1メモリ領域および前記第2メモリ領域は、同じ不揮発性メモリにおける別個のメモリ領域であることを特徴とする項目1乃至4のいずれか1項目に記載の情報処理装置。
【0080】
(項目6)
前記制御プログラムはファームウェアであることを特徴とする項目1乃至5のいずれか1項目に記載の情報処理装置。
【0081】
(項目7)
前記第1ブートプログラムは、前記アップデート前に前記第2メモリ領域に格納されていたブートプログラムであることを特徴とする項目1乃至6のいずれか1項目に記載の情報処理装置。
【0082】
(項目8)
前記情報処理装置は、記録媒体に画像を記録する画像記録装置であることを特徴とする項目1乃至7のいずれか1項目に記載の情報処理装置。
【0083】
(項目9)
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第1設定手段が、制御プログラムを格納するための第1メモリ領域に第1ブートプログラムを格納すると、該第1メモリ領域に格納した該第1ブートプログラムを起動対象に設定する第1設定工程と、
前記情報処理装置の第1格納制御手段が、前記第1メモリ領域に格納されている制御プログラムのアップデートに用いられる第2ブートプログラムを外部から受信すると、該第2ブートプログラムを第2メモリ領域に格納する第1格納制御工程と、
前記情報処理装置の第2設定手段が、前記第2メモリ領域への前記第2ブートプログラムの格納が完了すると、該第2メモリ領域に格納した該第2ブートプログラムを起動対象に設定する第2設定工程と、
前記情報処理装置の第2格納制御手段が、前記第1メモリ領域に格納されている制御プログラムを、外部から受信した制御プログラムにアップデートする第2格納制御工程と
を備えることを特徴とする情報処理方法。
【0084】
(項目10)
コンピュータを、項目1乃至8のいずれか1項目に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。