(57)【特許請求の範囲】
【請求項１】
機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部と、
前記設定項目と、前記第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスとを少なくとも対応付けて記憶する第２記憶部と、
前記設定項目ごとに、対応する前記フラグアドレスを用いて前記フラグ情報を特定し、その特定した前記フラグ情報が、初期化が必要であることを示すものである場合は、当該設定項目に対応する前記設定値の初期化を行う初期化部と、を備える、
情報処理装置。
【請求項２】
前記第２記憶部は、前記設定項目と、前記第１記憶部のうち当該設定項目に対応する前記設定値の格納場所を特定する第１の設定値アドレスと、前記設定値の初期化に用いられる初期値と、前記フラグアドレスとを対応付けて記憶し、
前記初期化部は、前記設定項目に対応する前記フラグ情報が、初期化が必要であることを示すものである場合は、前記第１記憶部のうち、当該設定項目に対応する前記第１の設定値アドレスで特定される場所に、当該設定項目に対応する初期値を書き込む、
請求項１の情報処理装置。
【請求項３】
前記第１記憶部は、前記設定値を格納する第１領域と、前記フラグ情報を記憶する第２領域と、第１領域のうちデータの読み書きが不可能な領域を格納先として指定された前記設定値を記憶する第３領域とを含み、
前記第３領域に記憶される前記設定値に対応する前記設定項目と、前記第３領域における前記設定値の格納場所を示す第２の設定値アドレスとを対応付けて記憶する第３記憶部と、
前記第１領域のうち、書き込みが要求された前記設定値の格納先として指定された領域が、データの読み書きが不可能な領域であると判断した場合は、その書き込みが要求された前記設定値を前記第３領域に書き込むとともに、その書き込みが要求された前記設定値に対応する前記設定項目と、前記第２の設定値アドレスとを対応付けて前記第３記憶部に書き込む制御部と、をさらに備える、
請求項２の情報処理装置。
【請求項４】
前記第３領域に空きが無い場合において、第１領域のうちデータの読み書きが不可能な領域を格納先として指定された前記設定値の読み書きが要求された場合、前記制御部は、予め定められた値を利用して前記設定値の読み書きを行う、
請求項３の情報処理装置。
【請求項５】
情報処理装置を動作させるプログラムの更新により新たな前記設定項目が追加された場合、新たな前記設定項目が追加されたことを報知する報知部と、
新たに追加された前記設定項目に対応する前記初期値を手動で設定するか否かの選択を受け付ける受付部と、をさらに備え、
前記初期化部は、前記受付部で受け付けた選択入力に応じて前記初期値を設定する、
請求項２の情報処理装置。
【請求項６】
情報処理装置を動作させるプログラムの更新により追加された新たな前記設定項目が、ネットワークを介して接続された外部機器で利用されている場合、前記初期化部は、当該外部機器で利用されている前記設定項目の値を、新たな前記設定項目に対応する前記設定値として設定する、
請求項２の情報処理装置。
【請求項７】
前記第１記憶部のうち前記設定値が格納される領域は前記第１記憶部の先頭側から順番に割り当てられ、前記フラグ情報が格納される領域は前記第１記憶部の末尾から順番に割り当てられる、
請求項１の情報処理装置。
【請求項８】
依存関係のある２以上の前記設定項目については、共通の前記フラグアドレスが設定され、
前記初期化部は、初期化を行う前記設定項目と前記フラグアドレスを共有する前記設定項目が存在するか否かを判断し、前記フラグアドレスを共有する前記設定項目が存在する場合は、当該設定項目の初期化も行う、
請求項１の情報処理装置。
【請求項９】
前記設定項目と、当該設定項目と依存関係にある前記設定項目とを対応付けて記憶する第４記憶部をさらに備え、
前記初期化部は、前記第４記憶部を参照して、初期化を行う前記設定項目と依存関係にある前記設定項目が存在するか否かを判断し、初期化を行う前記設定項目と依存関係にある前記設定項目が存在する場合は、当該設定項目の初期化も行う、
請求項１の情報処理装置。
【請求項１０】
機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスと、前記設定項目とを対応付けて記憶する第２記憶部を参照して、前記設定項目ごとに、対応する前記フラグアドレスを読み出す第１ステップと、
読み出した前記フラグアドレスで特定される前記フラグ情報を前記第１記憶部から読み出す第２ステップと、
前記フラグ情報が、初期化が必要であることを示すものである場合は、前記設定値の初期化を行う第３ステップと、を備える、
情報処理方法。
【請求項１１】
機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスと、前記設定項目とを対応付けて記憶する第２記憶部を参照して、前記設定項目ごとに、対応する前記フラグアドレスを読み出す第１ステップと、
読み出した前記フラグアドレスで特定される前記フラグ情報を前記第１記憶部から読み出す第２ステップと、
前記フラグ情報が、初期化が必要であることを示すものである場合は、前記設定値の初期化を行う第３ステップと、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、電気・電子技術の高度化・複雑化に伴い、大部分の情報処理装置には、ＣＰＵと、プログラム等を格納するメモリと、を含んで構成される制御装置（「組み込み機器」と呼ぶ場合もある）が搭載されている。情報処理装置の基本的な制御を行うプログラムはファームウェアと呼ばれ、最近の情報処理装置は、機能追加、性能向上や不具合の修正などの目的でファームウェアを更新できるように構成されるものが多くなっている。
【０００３】
ファームウェアの更新の際に、情報処理装置の機能に関する設定値を追加する場合もある。設定値は不揮発性メモリなどに記憶されるのが一般的であるが、設定値を追加するとその機能も変わるため、正しく初期化しないとファームウェア更新後に機能が利用できない等の不具合が発生してしまう。そこで、ファームウェアを更新する際に、ファームウェア更新前の設定値を新しいファームウェアに対応する値に変換（初期化）するための変換テーブルをダウンロードして更新を行う技術が知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ファームウェアの更新のたびに、変換テーブルをダウンロードする処理が必要となるうえ、変換テーブルは、設定値ごとに個別に設けられるので、ファームウェア更新前に、使用する変換テーブルを特定する処理が必要になる。また、ファームウェアのバージョンアップが進み、設定値の種類が増えるたびに変換テーブルも増えることになるので、ファームウェアをリリースする側でも変換テーブルの管理が煩雑になるという問題がある。本発明は、上記に鑑みてなされたものであって、簡易な構成で、設定値の初期化を実行可能な情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明の情報処理装置は、機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部と、前記設定項目と、前記第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスとを少なくとも対応付けて記憶する第２記憶部と、前記設定項目ごとに、対応する前記フラグアドレスを用いて前記フラグ情報を特定し、その特定した前記フラグ情報が、初期化が必要であることを示すものである場合は、当該設定項目に対応する前記設定値の初期化を行う初期化部と、を備える。
【０００６】
また、本発明の情報処理方法は、機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスと、前記設定項目とを対応付けて記憶する第２記憶部を参照して、前記設定項目ごとに、対応する前記フラグアドレスを読み出す第１ステップと、読み出した前記フラグアドレスで特定される前記フラグ情報を前記第１記憶部から読み出す第２ステップと、前記フラグ情報が、初期化が必要であることを示すものである場合は、前記設定値の初期化を行う第３ステップと、を備える。
【０００７】
さらに、本発明のプログラムは、機能を定めるための設定項目に対応する値を示す設定値と、前記設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する第１記憶部における前記フラグ情報の格納場所を特定するフラグアドレスと、前記設定項目とを対応付けて記憶する第２記憶部を参照して、前記設定項目ごとに、対応する前記フラグアドレスを読み出す第１ステップと、読み出した前記フラグアドレスで特定される前記フラグ情報を前記第１記憶部から読み出す第２ステップと、前記フラグ情報が、初期化が必要であることを示すものである場合は、前記設定値の初期化を行う第３ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００８】
本発明によれば、簡易な構成で、設定値の初期化を実行可能な情報処理装置、情報処理方法およびプログラムを提供することができるという有利な効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理装置の構成例を示すブロック図である。
【図２】図２は、第１記憶部の構成例を概念的に表した図である。
【図３】図３は、第２記憶部の構成例を示す図である。
【図４】図４は、ファームウェアの更新により新たな設定項目が追加された場合の第１記憶部の構成例を示す図である。
【図５】図５は、ファームウェアの更新により新たな設定項目が追加された場合の第２記憶部の構成例を示す図である。
【図６】図６は、第１記憶部の構成例を概念的に表した図である。
【図７】図７は、第３記憶部の構成例を示す図である。
【図８】図８は、第３記憶部の構成例を示す図である。
【図９】図９は、初期化処理の一例を示すフローチャートである。
【図１０】図１０は、読み書き制御部による処理動作の一例を示すフローチャートである。
【図１１】図１１は、書き換え処理の一例を示すフローチャートである。
【図１２】図１２は、変形例に係る情報処理装置の構成例を示すブロック図である。
【図１３】図１３は、報知映像の一例を示す図である。
【図１４】図１４は、ネットワークを介して相互に接続された複数の情報処理装置を示す図である。
【図１５】図１５は、初期化処理の変形例を示すフローチャートである。
【図１６】図１６は、変形例に係る第１記憶部の構成例を概念的に表した図である。
【図１７】図１７は、変形例に係る第２記憶部の構成例を示す図である。
【図１８】図１８は、初期化処理の変形例を示すフローチャートである。
【図１９】図１９は、第４記憶部の構成例を示す図である。
【図２０】図２０は、初期化処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら、本発明に係る情報処理装置の実施の形態を詳細に説明する。以下の各実施形態では、情報処理装置として、スクリーンに画像を投影表示するプロジェクタが採用されているが、これに限定されるものではない。
【００１１】
図１は、本実施形態に係る情報処理装置１の構成例を示すブロック図である。図１に示すように、情報処理装置１は、投影部２と、第１記憶部３と、第２記憶部４と、初期化部５と、通信部６と、第３記憶部７と、読み書き制御部８とを含み、これらの構成要素は、バス１０を介して相互に接続される。
【００１２】
投影部２は、不図示のスクリーン上に画像を投影表示する制御を行う。第１記憶部３は、情報処理装置１の機能を定めるための設定項目に対応する値を示す設定値と、設定値の初期化が必要であるか否かを示すフラグ情報とを記憶する不揮発性のデバイス（メモリ）である。図２は、第１記憶部３の構成例を概念的に表した図である。図２に示すように、第１記憶部３は、設定値が格納される領域（以下、「第１領域」と呼ぶ場合がある）と、フラグ情報が格納される領域（以下、「第２領域」と呼ぶ場合がある）と、空き領域とを有する。本実施形態では、ファームウェアの更新により、新たな設定項目の設定値が追加されるたびに、その新たに追加された設定値が格納される領域、および、当該設定値のフラグ情報が格納される領域の各々は、空き領域に順次に形成されていく。この例では、新たな設定値が追加された場合、当該設定値は初期化が必要な状態となるように、空き領域のうちデータが格納される各領域には、初期化が必要であることを示すフラグ情報が予めデフォルト値として格納されている。
【００１３】
第２記憶部４は、情報処理装置１を動作させるためのプログラム（ファームウェア）、第１記憶部３に記憶された設定値に関する情報などを記憶する。本実施形態では、第２記憶部４は、設定項目と、第１記憶部３におけるフラグ情報の格納場所を特定するフラグアドレスとを少なくとも対応付けて記憶する。図３は、第２記憶部４の構成例を示す図である。図２に示すように、本実施形態では、第２記憶部４は、設定項目と、第１記憶部３のうち当該設定項目に対応する設定値の格納場所を特定する格納先先頭アドレス（第１の設定値アドレス）と、設定値のサイズと、設定値の初期化に用いられる初期値と、フラグアドレスとを対応付けて記憶する。なお、この例では、ファームウェア更新の際には、第２記憶部４に格納されている情報が全て更新される。
【００１４】
初期化部５は、設定項目ごとに、対応するフラグアドレスを用いてフラグ情報を特定し、その特定したフラグ情報が、初期化が必要であることを示すものである場合は、当該設定項目に対応する設定値の初期化を行う。本実施形態では、初期化部５は、情報処理装置１の起動時に、設定項目ごとに、対応するフラグアドレスを第２記憶部４から読み出し、その読み出したフラグアドレスを用いて、第１記憶部３からフラグ情報を読み出す。そして、その読み出したフラグ情報が、初期化が必要であることを示すものである場合は、当該設定項目の設定値の初期化を行う。さらに詳述すれば、初期化部５は、設定項目に対応するフラグ情報が、初期化が必要であることを示すものである場合は、第１記憶部３のうち、当該設定項目に対応する格納先先頭アドレス（第１の設定値アドレス）で特定される場所に、当該設定項目に対応する初期値を書き込むことにより、当該設定項目に対応する設定値の初期化を行う。
【００１５】
いま、ファームウェアの更新により、「設定値Ｄ」という設定項目が新たに追加された場合を想定する。この場合、図４に示すように、第１記憶部３の空き領域には、「設定値Ｄ」という設定項目の設定値が格納される領域Ｘと、当該設定値のフラグ情報が格納される領域Ｙとが形成される（割り当てられる）。前述したように、空き領域のうちデータが格納される各領域には、初期化が必要であることを示すフラグ情報が予め初期値（デフォルト値）として格納されているので、領域Ｘおよび領域Ｙの各々には、初期化が必要であることを示すフラグ情報が格納された状態となる。また、図５に示すように、第２記憶部４には、「設定値Ｄ」という設定項目と、領域Ｘの場所を示す格納先先頭アドレス「0x0027」と、領域Ｘのサイズ「4」と、初期値「3000」と、領域Ｙの場所を示すフラグアドレス「0x1003」とが対応付けられて新たに追加される。
【００１６】
図１に戻って説明を続ける。通信部６は、他の機器との通信を行う。第３記憶部７は、第１記憶部３のうちデータの読み書きが不可能な領域を格納先として指定された設定値の格納場所に関する情報を記憶する。より具体的には、図６に示すように、第１記憶部３は、前述の第１領域のうちデータの読み書きが不可能な領域を格納先として指定された設定値を記憶する第３領域を含む。ここでは、空き領域を第３領域として捉えることもできる。そして、図７に示すように、第３記憶部７は、第３領域に記憶される設定値に対応する設定項目と、第１領域のうち当該設定値を格納すべき場所（本来の格納場所）を示す移動前の先頭アドレスと、第３領域における当該設定値の格納場所（実際の格納場所）を示す移動後の先頭アドレス（第２の設定値アドレス）とを対応付けて記憶する。図７の例は、第１領域のうち「設定値Ａ」の設定値が格納されるべき場所（移動前の先頭アドレス「0x0000」で特定される場所）が、故障等により読み書き不可能であるために、第３領域のうち移動後のアドレス「0x2000」で特定される場所に、「設定値Ａ」の設定値が格納されたことを示している。
【００１７】
図１に示す読み書き制御部８は、第１記憶部３に記憶された設定値の読み出しや設定値の書き込みを制御する。本実施形態では、読み書き制御部８は、第１記憶部３の第１領域のうち、書き込みが要求された設定値の格納先として指定された領域が、データの読み書きが不可能な領域であると判断した場合は、その書き込みが要求された設定値を前述の第３領域に書き込むとともに、その書き込みが要求された設定値の設定項目と、第２の設定値アドレスとを対応付けて第３記憶部７に書き込む。
【００１８】
また、第１記憶部３（第３領域）に空きが無い場合において、第１領域のうち、データの読み書きが不可能な領域を格納先として指定された設定値の読み書きが要求された場合、読み書き制御部８は、予め定められた値を利用して設定値の読み書きを行う。この場合、図８に示すように、読み書き制御部８は、第１領域のうち、データの読み書きが不可能な領域が格納先として指定された設定値に対応する移動後の先頭アドレス（第２の設定値アドレス）の値を、ありえない値（例えば１２ＫＢのデバイスなのに0x3000など）に設定しておくことで、第３領域に空き領域（設定値の移動先となる領域）が無かったことを示すこともできる。この場合、読み書き制御部８は、予め定められた値を利用して設定値の読み書きを行う。例えば設定値の読み出しが要求された場合、読み書き制御部８は、読み出しが要求された設定値に対応する初期値を第２記憶部４から読み出し、その読み出した初期値を読み出しデータとすることもできるし、外部のサーバ装置にアクセスして、当該サーバ装置内に格納された所定値を取得し、その取得した所定値を読み出しデータとすることもできる。また、例えば設定値の書き込みが要求された場合、読み書き制御部８は、当該設定値の書き込みを行わずに、書き込み失敗を示すエラーを通知することもできるし、外部のサーバ装置内に格納される所定値を、要求された書き込み値に更新することもできる。
【００１９】
次に、図９を参照しながら、初期化部５が実行する初期化処理について説明する。図９は、初期化部５が実行する初期化処理の一例を示すフローチャートである。初期化部５は、第２記憶部４に記憶されている全ての設定項目について初期化処理を実行する。
【００２０】
まず、初期化部５は、第２記憶部４に記憶された設定項目に対応するフラグアドレスを読み出す（ステップＳ１０１）。次に、初期化部５は、ステップＳ１０１で読み出したフラグアドレスを用いて、第１記憶部３からフラグ情報を読み出す（ステップＳ１０２）。次に、初期化部５は、ステップＳ１０２で読み出したフラグ情報を参照して、設定値の初期化が必要であるか否かを判断する（ステップＳ１０３）。例えばフラグ情報の値が「１」に設定されている場合は、初期化が必要であると判断する一方、フラグ情報の値が「０」に設定されている場合は、初期化が不要であると判断してもよい。なお、これに限らず、初期化が必要であることを示すフラグ情報の値、および、初期化が必要でないことを示すフラグ情報の値は任意に変更可能である。
【００２１】
初期化が必要であると判断した場合（ステップＳ１０３の結果：ＹＥＳ）、初期化部５は、初期化が必要であることを示すフラグ情報に対応する設定項目の設定値を初期化する（ステップＳ１０４）。より具体的には、初期化部５は、当該設定項目に対応する初期値、格納先先頭アドレスおよびサイズを第２記憶部４から読み出す。そして、第１記憶部３のうち、読み出した格納先先頭アドレスとサイズで特定される場所に、第２記憶部４から読み出した初期値を書き込むことで、初期化が必要であることを示すフラグ情報に対応する設定項目の設定値を初期化する。次に、初期化部５は、第１記憶部３のうち、初期化を行った設定項目に対応するフラグアドレスで特定される場所に格納されるフラグ情報を、初期化が必要でないことを示す値に設定する（ステップＳ１０５）。つまりは、初期化対象のフラグを降ろす。
【００２２】
次に、読み書き制御部８の機能について説明する。図１０は、設定値の書き込み要求を受け付けた場合の処理動作の一例を示すフローチャートである。まず読み書き制御部８は、書き込みに失敗したか否かを判断する（ステップＳ２０１）。書き込みに失敗したと判断した場合（ステップ２０１の結果：ＹＥＳ）、読み書き制御部８は、失敗回数を１だけインクリメントする（ステップＳ２０２）。次に、読み書き制御部８は、失敗回数のカウント値（合計値）が閾値を超えているか否かを判断する（ステップＳ２０３）。なお、この例では、書き込みの失敗回数が一定回数を超えた場合に、書き込みが要求された値の格納先を第１領域から移動するようにしているが、これに限らず、例えば１回でも書き込みに失敗した時点で、書き込みが要求された値の格納先を移動することもできる。要するに、上記閾値は任意に設定可能である。
【００２３】
失敗回数のカウント値が閾値を超えていると判断した場合（ステップＳ２０３の結果：ＹＥＳ）、第１記憶部３における第３領域に空きがあるか否かを判断する(ステップＳ２０４)。空きがあると判断した場合（ステップＳ２０４の結果：ＹＥＳ）、読み書き制御部８は、書き込みが要求された値を第３領域に書き込み（ステップＳ２０５）、処理はステップＳ２０６に移行する。なお、書き込みが要求された値の格納先を移動する場合、確保した第３領域（空き領域）の先頭から順に利用していくこともできる。これにより、移動先の情報をチェックすれば、第３領域のうちどこまでを使用しているかを判断することができ、第３領域に空きがあるか否かを判断することができる。なお、これに限らず、第３領域に空きがあるか否かを判定するための方法は任意である。一方、ステップＳ２０４において空きが無いと判断した場合（ステップＳ２０４の結果：ＮＯ）、処理はステップＳ２０６に移行する。
【００２４】
ステップＳ２０６において、読み書き制御部８は、第３記憶部７の内容を更新する。より具体的には、ステップＳ２０４において空きがあると判断した場合、読み書き制御部８は、書き込みが要求された設定値に対応する設定項目と、第３領域のうち当該設定値の格納場所を示す移動後の先頭アドレス（第２の設定値アドレス）とを対応付けて第３記憶部７に書き込む。一方、ステップＳ２０４において空きが無いと判断した場合、読み書き制御部８は、書き込みが要求された設定値に対応する設定項目と、ありえない値に設定した移動後の先頭アドレスとを対応付けて第３記憶部７に書き込む。
【００２５】
ここで、本実施形態では、ファームウェアが更新されると、第２記憶部４の内容は、元の状態（デフォルトの状態）に戻るので、第１領域のうち、読み書きが不可能な領域が格納先として指定された設定値については、第３領域における移動先を示す情報を、格納先を示す情報として第２記憶部４に記憶しておくことが好ましい。そこで、本実施形態では、情報処理装置１が起動するたびに、前述の初期化処理の前の段階で、第３記憶部７の内容を反映させて第２記憶部４の内容を書き換える書き換え処理を実行する。この書き換え処理は、初期化部５が実行してもよいし、読み書き制御部８が実行してもよい。あるいは、書き換え処理を実行する書き換え部を情報処理装置１が有しており、当該書き換え部が書き換え処理を実行してもよい。要するに、情報処理装置１が書き換え処理を実行するものであればよい。以下の説明では、書き換え処理を実行する主体は初期化部５である例を挙げて説明する。
【００２６】
図１１は、情報処理装置１が実行する書き換え処理の一例を示すフローチャートである。図１１に示すように、まず、初期化部５は、第３記憶部７にデータが存在するか否かを判断する（ステップＳ３０１）。ここでは、第３記憶部７にデータが存在する場合は、第１領域のうち、読み書きが不可能な領域を格納先として指定された設定値が、第３領域に格納されていることを意味する。第３記憶部７にデータが存在すると判断した場合（ステップＳ３０１の結果：ＹＥＳ）、第３記憶部７に記憶された設定項目ごとに書き換え処理を行う。より具体的には以下のとおりである。
【００２７】
初期化部５は、第３記憶部７に記憶された設定項目に対応する設定値は、現在のバージョンでも利用する設定値であるか否かを判断する（ステップＳ３０２）。その設定値が、現在のバージョンでも利用する設定値であると判断した場合（ステップＳ３０２の結果：ＹＥＳ）、初期化部５は、当該設定値に対応する格納先先頭アドレスを、第３記憶部７に記憶された移動後の先頭アドレスに書き換える（ステップＳ３０３）。そして、処理はステップＳ３０４に移行する。一方、ステップＳ３０２において、第３記憶部７に記憶された設定項目に対応する設定値が、現在のバージョンでも利用する設定値ではないと判断した場合（ステップＳ３０２の結果：ＮＯ）、第２記憶部４の書き換えは行われずに、処理はステップＳ３０４に移行する。ステップＳ３０４において、初期化部５は、第３記憶部７に記憶された全ての設定項目について上述の処理が完了したかを判断し、全ての設定項目について処理が完了したと判断した場合は、書き換え処理を終了する。一方、全ての設定項目について処理が完了していないと判断した場合は、上述のステップＳ３０２以降の処理を繰り返し実行する。
【００２８】
以上に説明したように、本実施形態では、情報処理装置１が起動するたびに、第１記憶部３のうち、第２記憶部４に記憶された設定項目に対応するフラグアドレスで特定される場所に格納されたフラグ情報を読み出し、その読み出したフラグ情報が、初期化が必要であることを示すものである場合は、当該設定項目に対応する設定値の初期化を行うので、ファームウェアの更新に伴い設定値の初期化を行う場合において、変換テーブルのダウンロード処理や、対応する変換テーブルを特定する処理などを行わずに、設定値の初期化を行うことができる。また、ファームウェアをリリースする側が、変換テーブルを管理する必要も無い。すなわち、本実施形態によれば、簡易な構成で、設定値の初期化を実行可能な情報処理装置を提供することができる。
【００２９】
なお、本実施形態では、上述の第１記憶部３、第２記憶部４および第３記憶部７はハードウェア回路で構成される。一方、上述の投影部２、初期化部５、通信部６および読み書き制御部８の各々は、情報処理装置１に搭載されたＣＰＵがＲＯＭなどに格納されたプログラムを実行することにより実現されるが、これに限らず、例えば投影部２、初期化部５、通信部６および読み書き制御部８のうちの少なくとも一部がハードウェア回路で構成されてもよい。
【００３０】
また、上述した実施形態の情報処理装置１で実行される各種プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００３１】
（変形例）
以上、本発明に係る実施形態について説明したが、本発明は上述の各実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の変形が可能である。以下に変形例を記載する。以下の変形例は、任意に組み合わせることが可能である。
【００３２】
（１）変形例１
ファームウェアの更新（情報処理装置１を動作させるプログラムの更新）により新たな設定項目が追加される場合、新たな設定項目が追加されることを報知する報知部をさらに備えることもできる。図１２は、この場合の情報処理装置１００の構成例を示すブロック図である。図１２に示すように、情報処理装置１００は、報知部９と受付部１１とをさらに備える。例えば報知部９は、図９のステップＳ１０４のタイミングで、図１３のような報知映像を不図示の表示部にポップアップ表示することで、ユーザーに対して、新たに追加される設定項目の初期値を手動で設定するか否かの選択を促すことができる。そして、新たに追加される設定項目の初期値を手動で設定するか否かの選択入力を受付部１１で受け付けた場合、初期化部５は、その受け付けた選択入力に応じて初期値を設定する。
【００３３】
（２）変形例２
ファームウェアの更新（情報処理装置を動作させるプログラムの更新）により追加された新たな設定項目が、ネットワークを介して接続される外部機器で利用されている場合、初期化部５は、当該外部機器で利用されている設定項目の値を、新たな設定項目に対応する設定値として設定することもできる。図１４の例において、ファームウェアの更新により「設定値Ｃ」で表される設定項目が新たに機器Ａに追加された場合、機器Ａの初期化部５は、同一ネットワーク内から、「設定値Ｃ」を有する機器を検索する。そして、同一ネットワーク内に、「設定値Ｃ」を有する他の機器が存在する場合は、当該他の機器で利用されている「設定値Ｃ」の値を取得して、自身に追加された「設定値Ｃ」の設定値として設定する。図１３の例では、機器Ａは、新たに追加された設定項目「設定値Ｃ」を有する機器Ｂにおける「設定値Ｃ」の値を取得して、自身に追加された「設定値Ｃ」の設定値として設定する。
【００３４】
なお、ネットワークを介して接続された機器間におけるデータの送受信方法は任意であり、例えば機器間で直接データの送受信を行ってもよいし、サーバなどの中継装置を介してデータの送受信を行ってもよい。また、ファームウェアの更新により新たに追加された設定項目が、複数の外部機器で利用されていた場合は、所定の基準に基づいて、アクセスする（値を取得する）外部機器を決定することができる。所定の基準は任意に変更可能であるが、例えば追加された設定項目の使用頻度が最も高い外部機器をアクセス先として決定することもできる。使用頻度は、各外部機器のランプ時間や追加された設定項目に関する機能などに基づいて判断することができる。また、例えば追加された設定項目の値が最近変更（更新）された外部機器をアクセス先として決定することもできる。また、例えばファームウェアの更新が行われた機器と同一のバージョンあるいは最新のバージョンの外部機器をアクセス先として決定することもできる。また、例えばファームウェアの更新により複数種類の設定項目が追加された場合は、同じ設定項目を有する数が最も多い外部機器をアクセス先として決定することもできる。
【００３５】
図１５は、この場合の初期化処理の一例を示すフローチャートである。なお、図１５の例では、図９の初期化処理と共通する部分については表示を省略しており、図９のステップＳ１０３の結果が肯定であると判断されたタイミングから説明を始める。図１５に示すように、まず初期化部５は、ネットワークで接続されている範囲内に自身と同一の機器が存在しているか否かを判断する（ステップＳ４０１）。ネットワークで接続されている範囲内に自身と同一の機器が存在しないと判断した場合（ステップＳ４０１の結果：ＮＯ）は、処理はステップＳ４０５に移行する。ステップＳ４０５の内容は、図９のステップＳ１０４の内容と同様であるので、ここでは詳細な説明は省略する。
【００３６】
一方、ネットワークで接続されている範囲内に自身と同一の機器が存在しないと判断した場合（ステップＳ４０１の結果：ＹＥＳ）は、追加された設定項目と同一の設定項目を有する機器が存在しているか否かを判断する（ステップＳ４０２）。同一の設定項目を有する機器が存在していないと判断した場合（ステップＳ４０２の結果：ＮＯ）、処理はステップＳ４０５に移行する。同一の設定項目を有する機器が存在すると判断した場合（ステップＳ４０２の結果：ＹＥＳ）、初期化部５は、当該機器にアクセスして、当該機器で利用されている設定項目（追加された設定項目と同一の設定項目）の値を取得する（ステップＳ４０３）。そして、初期化部５は、ステップＳ４０３で取得した値を、自身に追加された設定項目の設定値として設定する（ステップＳ４０４）。その後の処理は、図９のステップＳ１０５以降の処理と同様である。
【００３７】
（３）変形例３
例えば図１６に示すように、第１記憶部３のうち設定値が格納される領域（第１領域）は第１記憶部３の先頭側から順番に割り当てられ、フラグ情報が格納される領域（第２領域）は第１記憶部３の末尾から順番に割り当てられてもよい。これにより、不揮発性デバイスである第１記憶部３を無駄なく利用することができる。
【００３８】
（４）変形例４
例えば、依存関係のある２以上の設定項目については、共通のフラグアドレスが設定されてもよい。図１７の例では、依存関係のある「設定値Ａ」および「設定値Ｄ」の各々に対応するフラグアドレスは、共通のフラグアドレス「0x1003」に設定されている。初期化部５は、初期化を行う設定項目とフラグアドレスを共有する設定項目が存在するか否かを判断し、フラグアドレスを共有する設定項目が存在する場合は、当該設定項目で識別される設定値の初期化も行う。
【００３９】
図１８は、この場合の初期化処理の一例を示すフローチャートである。なお、図１８の例では、図９の初期化処理と共通する部分については表示を省略しており、図９のステップＳ１０４の直後のタイミングから説明を始める。図１８に示すように、初期化部５は、図９のステップＳ１０４で初期化を行った設定項目とフラグアドレスを共有する設定項目が第２記憶部４内に存在するか否かを判断する（ステップＳ５０１）。初期化を行った設定項目とフラグアドレスを共有する設定項目が存在すると判断した場合（ステップＳ５０１の結果：ＹＥＳ）、初期化部５は、初期化を行った設定項目とフラグアドレスを共有する設定項目の設定値を初期化する（ステップＳ５０２）。そして、処理は、図９のステップＳ１０５に移行する。また、初期化を行った設定項目とフラグアドレスを共有する設定項目が存在しないと判断した場合（ステップＳ５０１の結果：ＮＯ）、処理は、図９のステップＳ１０５に移行する。
【００４０】
（５）変形例５
例えば図１９に示すように、設定項目と、当該設定項目と依存関係にある設定項目とを対応付けて記憶する第４記憶部１２をさらに備えることもできる。初期化部５は、第４記憶部１２を参照して、初期化を行う設定項目と依存関係にある設定項目が存在するか否かを判断し、初期化を行う設定項目と依存関係にある設定項目が存在する場合は、その依存関係にある設定項目の初期化も行う。
【００４１】
図２０は、この場合の初期化処理の一例を示すフローチャートである。なお、図２０の例では、図９の初期化処理と共通する部分については表示を省略しており、図９のステップＳ１０４の直後のタイミングから説明を始める。図２０に示すように、初期化部５は、第４記憶部１２を参照して、図９のステップＳ１０４で初期化を行った設定項目と依存関係にある設定項目が存在するか否かを判断する（ステップＳ６０１）。初期化を行った設定項目と依存関係にある設定項目が存在すると判断した場合（ステップＳ６０１の結果：ＹＥＳ）、初期化部５は、初期化を行った設定項目と依存関係にある設定項目で識別される設定値を初期化する（ステップＳ６０２）。そして、処理は、図９のステップＳ１０５に移行する。また、初期化を行った設定項目と依存関係にある設定項目が存在しないと判断した場合（ステップＳ６０１の結果：ＮＯ）、処理は、図９のステップＳ１０５に移行する。
【符号の説明】
【００４２】
１  情報処理装置
２  投影部
３  第１記憶部
４  第２記憶部
５  初期化部
６  通信部
７  第３記憶部
８  読み書き制御部
９  報知部
１０  バス
１１  受付部
１２  第４記憶部
１００  情報処理装置
【先行技術文献】
【特許文献】
【００４３】
【特許文献１】特開２００８−６５６１８号公報
【図１】
0005751121.tif 000002
【図２】
0005751121.tif 000003
【図３】
0005751121.tif 000004
【図４】
0005751121.tif 000005
【図５】
0005751121.tif 000006
【図６】
0005751121.tif 000007
【図７】
0005751121.tif 000008
【図８】
0005751121.tif 000009
【図９】
0005751121.tif 000010
【図１０】
0005751121.tif 000011
【図１１】
0005751121.tif 000012
【図１２】
0005751121.tif 000013
【図１３】
0005751121.tif 000014
【図１４】
0005751121.tif 000015
【図１５】
0005751121.tif 000016
【図１６】
0005751121.tif 000017
【図１７】
0005751121.tif 000018
【図１８】
0005751121.tif 000019
【図１９】
0005751121.tif 000020
【図２０】
0005751121.tif 000021