(57)【要約】【課題】例えば、プログラムを書き換える環境に応じた処理を行いつつ、プログラムを書き換える処理を行う。【解決手段】コンピュータ装置におけるプログラム書換方法は、一例として、プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、書換対象プログラムデータを前記書換用プログラムデータに書き換え、前記動作制御データに応じて、前記所定の処理を実行するか否かを判断する。【選択図】図３
2013143052.tif 000002
【特許請求の範囲】
【請求項１】
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを前記書換用プログラムデータに書き換え、
前記動作制御データに応じて、前記所定の処理を実行するか否かを判断する
コンピュータ装置におけるプログラム書換方法。
【請求項２】
前記動作制御データは、複数の前記所定の処理を実行するか否かを、前記所定の処理ごとに規定する請求項１に記載のプログラム書換方法。
【請求項３】
前記動作制御データは、前記書換対象プログラムデータを前記書換用プログラムデータに書き換える環境に応じて、前記複数の所定の処理を実行するか否かを規定する請求項２に記載のプログラム書換方法。
【請求項４】
前記所定の処理は、前記書換用プログラムデータが改ざんされているか否かを確認する処理、バージョン情報を確認する処理およびユーザデータを初期化する処理の少なくとも一つである請求項１に記載のプログラム書換方法。
【請求項５】
複数の前記書換用プログラムデータを読み込み、
前記コンピュータ装置に対応する書換用プログラムデータを判別する請求項１に記載のプログラム書換方法。
【請求項６】
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを前記書換用プログラムデータに書き換え、
前記動作制御データに応じて、前記所定の処理を実行するか否かを判断する
処理をコンピュータ装置に実行させるプログラム。
【請求項７】
請求項６に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、例えば、プログラムを書き換えるプログラム書換方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
プログラム（ソフトウェア）によって動作する機器が普及する中で、このようなプログラムの開発を支援するシステムが提案されている。例えば、下記特許文献１には、プログラムを修正する際に、その修正がプログラムの他の箇所に与える影響を判別するプログラムの開発システムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０３９７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラムを書き換える書換処理（以下、適宜、プログラム書換処理と称する）が行われる前または後に、プログラムのバージョンを確認する処理や、正規のプログラムであるか否かを確認する処理（以下、適宜、付随処理と称する）などの処理が行われることがある。それぞれの付随処理を実行すべき必要性は、プログラム書換処理を行う環境に応じて異なる。例えば、設計段階や工場段階などのセキュアな環境でプログラム書換処理が行われる場合は、改竄されたプログラムが使用される可能性が極めて低い。このため、正規のプログラムであるか否かを確認する必要性は少ない。一方で、ユーザ自身がプログラム書換処理を行う場合は、工場等のセキュアな環境に比して、改竄されたプログラムが使用される可能性が格段に高くなる。このため、正規のプログラムであるか否かを確認した後に、プログラム書換処理を行う必要性がある。
【０００５】
従来の書換処理では、上述の観点が欠如しており、プログラム書換処理が行われる環境に関係なく、全ての付随処理を実行していた。結果として、実行すべき必要性が小さい付随処理を行われることになり、書換処理に費やされる時間が必要以上にかかるという問題があった。
【０００６】
したがって、本開示の目的の一つは、プログラム書換処理が行われる環境に応じて、実行する付随処理を変更するプログラム書換方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本開示は、例えば、
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを書換用プログラムデータに書き換え、
動作制御データに応じて、所定の処理を実行するか否かを判断する
コンピュータ装置におけるプログラム書換方法である。
【０００８】
本開示は、例えば、
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを書換用プログラムデータに書き換え、
動作制御データに応じて、所定の処理を実行するか否かを判断する
処理をコンピュータ装置に実行させるプログラムである。
【０００９】
本開示は、例えば、
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを書換用プログラムデータに書き換え、
動作制御データに応じて、所定の処理を実行するか否かを判断する
処理をコンピュータ装置に実行させるプログラムが記録された記録媒体である。
【発明の効果】
【００１０】
少なくとも一つの実施形態によれば、環境に応じて、実行する付随処理を変更できる。
【図面の簡単な説明】
【００１１】
【図１】コンピュータ装置の構成の一例を示すブロック図である。
【図２】書換処理の一例の概要を示す略線図である。
【図３】環境に応じて実行される処理の一例を説明するための図である。
【図４】書換処理の一例を示すフローチャートである。
【図５】複数の書換用プログラムデータからなるデータを説明するための略線図である。
【発明を実施するための形態】
【００１２】
以下、本開示の実施の形態について図面を参照しながら説明する。なお、説明は、以下の順序で行う。
＜１．一実施形態＞
＜２．変形例＞
なお、以下に説明する実施形態および変形例は、本開示の好適な具体例であり、本開示の内容がこれらの実施形態および変形例に限定されるものではない。
本開示における説明では、実際にプログラムを書き換える処理をプログラム書換処理と称する。プログラム書換処理を行う環境に応じて、実行すべき必要性が異なる個々の処理を付随処理と称する。プログラム書換処理を行う環境に応じて、実行すべき必要性が変わらない処理（例えば、書換用プログラムを取得する処理など）を共通処理と称する。プログラム書換処理と、１または複数の付随処理とを含む一連の処理を、書換処理と称する。
【００１３】
＜１．一実施形態＞
「コンピュータ装置の構成」
図１は、コンピュータ装置の構成の一例を示す。コンピュータ装置１は、ＣＰＵ(Central Processing Unit)１０を備える。ＣＰＵ１０は、コンピュータ装置１の各部を制御するとともに、コンピュータ装置１で実行される処理を制御する。ＣＰＵ１０に対して、書き換え可能な不揮発性メモリが接続される。ＣＰＵ１０に対して、例えば、ＥＥＰＲＯＭ(Electrically Erasable Programmable ROM)１１が接続される。
【００１４】
ＥＥＰＲＯＭ１１に、例えば、コンピュータ装置１を使用するユーザのユーザデータが記憶される。ＥＥＰＲＯＭ１１は、例えば、コンピュータ装置１の出荷時には初期化する必要がある。一方で、コンピュータ装置１がユーザによって使用されているときは、ユーザの明示的な許可がない限りＥＥＰＲＯＭ１１の記憶内容が初期化されてはならない。
【００１５】
ＣＰＵ１０に対して、Ｉ／Ｆ(Interface)１２が接続される。外部からのデータがＩ／Ｆ１２を介してコンピュータ装置１に取り込まれる。外部からのデータは、例えば、プログラムデータおよび所定の処理を実行するか否かを規定する動作制御データを含む書換用プログラムデータである。
【００１６】
Ｉ／Ｆ１２の構成は、種々の構成を適用できる。例えば、ＵＳＢ(Universal Serial Bus)を介して外部からのデータが取り込まれる場合は、Ｉ／Ｆ１２は、ＵＳＢコントローラとして機能する。例えば、ネットワークを介して外部からのデータが取り込まれる場合は、Ｉ／Ｆ１２は、ネットワークドライバとして機能する。例えば、シリアル通信を介して外部からのデータが取り込まれる場合は、Ｉ／Ｆ１２は、シリアル通信ドライバとして機能する。Ｉ／Ｆ１２を介して取り込まれたデータがＣＰＵ１０に供給される。
【００１７】
ＣＰＵ１０は、バスライン(BUS LINE)１３を介して、ＲＯＭ(Read Only Memory)１４およびＲＡＭ(Random Access Memory)１５に接続される。ＲＯＭ１４は、例えば、書き換え可能なフラッシュＲＯＭで構成される。ＲＯＭ１４には、例えば、書換処理を実行するための書換処理実行プログラムデータ（ＰＷ）と、書換対象プログラムデータ（Ｐ）とが記憶される。書換処理実行プログラムデータ（ＰＷ）は、ＲＯＭ１４内の特別な領域に記憶されており、通常、書換処理実行プログラムデータ（ＰＷ）を書き換えることができないようにされている。なお、（ＰＷ）および（Ｐ）は参照符号であり、特別の意味を有するものではない。
【００１８】
ＲＡＭ１５は、例えば、データの一時的な記憶領域やＣＰＵ１０のワークエリアとして使用される。例えば、ＣＰＵ１０は、書換処理を行う際に、書換処理実行プログラムデータ（ＰＷ）をＲＯＭ１４から読み出し、ＲＡＭ１５に一時的に記憶する。そして、ＣＰＵ１０は、ＲＡＭ１５に記憶した書換処理実行プログラムデータ（ＰＷ）に基づき、書換処理を実行する。なお、上述したＣＰＵ１０、ＥＥＰＲＯＭ１１、Ｉ／Ｆ１２、ＲＯＭ１４およびＲＡＭ１５が１チップ上に集積されたワンチップ・マイクロコンピュータとして構成されてもよい。
【００１９】
バスライン１３に対して、スピーカやディスプレイなどが接続され、コンピュータ装置１がテレビジョン装置やオーディオ再生装置として構成されてもよい。このように、コンピュータ装置に対して適宜、構成を追加し、コンピュータ装置を用途に応じた構成とすることができる。コンピュータ装置の用途に応じてプログラムの内容が定義される。
【００２０】
コンピュータ装置に対して、携帯型の電子機器が着脱されるようにしてもよい。そして、コンピュータ装置を介して、携帯型の電子機器のプログラムが書き換えられるようにしてもよい。
【００２１】
「書換処理の概要」
図２は、書換処理の概要を模式的に示したものである。上述したように、コンピュータ装置１のＲＯＭ１４には、書換処理実行プログラムデータ（ＰＷ）と書換対象プログラムデータ（Ｐ）とが記憶されている。ＵＳＢやインターネットなどを介して、書換用プログラムデータ（ＭＤ）がコンピュータ装置１に供給される。書換用プログラムデータ（ＭＤ）がＩ／Ｆ１２からＣＰＵ１０に供給される。ＣＰＵ１０の制御によって、書換用プログラムデータ（ＭＤ）がＲＡＭ１５に一時的に記憶されるようにしてもよい。
【００２２】
書換用プログラムデータ（ＭＤ）は、例えば、ファイル形式とされ、動作制御データ（ＳＤ）と、実際のプログラムが記述された（実）プログラムデータ（ＲＤ）とを含むデータである。なお、（ＭＤ）、（ＳＤ）および（ＲＤ）は、参照符号であり特別の意味を有するものではない。動作制御データ（ＳＤ）には、１または複数の付随処理を実行するか否かが規定される。
【００２３】
本開示では、３個の付随処理が例示される。それぞれの付随処理は、プログラムのバージョンを確認する処理（以下、バージョン確認処理と適宜、略称することもある）、ファイル形式の書換用プログラムデータ（ＭＤ）が改竄されたものではないかを確認する処理（以下、ファイル改竄確認処理と略称することもある）、ＥＥＰＲＯＭ１１に記憶されているユーザデータを初期化する処理（以下、初期化処理と略称することもある）として定義される。
【００２４】
上述した３つの付随処理ごとに、付随処理を実行するか否かが、例えば、フラグを使用して規定される。一例として、バージョン確認処理およびファイル改竄確認を行い、初期化処理を行わないようにする制御を想定する。この場合は、動作制御データ（ＳＤ）に、バージョン確認処理を実行するためのフラグとして論理値の１が記述され、ファイル改竄確認処理を実行するためのフラグとして論理値の１が記述される。さらに、動作制御データ（ＳＤ）には、初期化処理を実行しないようにするためのフラグとして、論理値の０が記述される。なお、付随処理を実行するためのフラグを０とし、付随処理を実行しないためのフラグを１として定義してもよい。
【００２５】
動作制御データ（ＳＤ）に、認証用のデータや他のデータが含まれてもよい。例えば、動作制御データ（ＳＤ）に、プログラムデータ（ＲＤ）が対応するモデルのＩＤや、書換用プログラムデータ（ＭＤ）のサイズ、動作制御データ（ＳＤ）が含まれる領域であるヘッダ部のサイズ、エラーチェックのためのＣＲＣ(Cyclic Redundancy Check)データ、プログラムデータ（ＲＤ）のバージョン情報が含まれるようにしてもよい。
【００２６】
ＣＰＵ１０は、ＲＯＭ１４から書換処理実行プログラムデータ（ＰＷ）を読み出し、読み出した書換処理実行プログラムデータ（ＰＷ）をＲＡＭ１５に展開する。そして、ＣＰＵ１０は、書換処理実行プログラムデータ（ＰＷ）によって、書換用のプログラムデータにおける動作制御データ（ＳＤ）を読み込むことを指示される。ＣＰＵ１０は、動作制御データ（ＳＤ）を読み込むことで、書換処理を実行するにあたり、どの付随処理を実行するか否かを認識できる。ＣＰＵ１０は、動作制御データ（ＳＤ）におけるフラグが１の付随処理と、プログラム書換処理とを含む処理を実行する。
【００２７】
プログラム書換処理により、ＲＯＭ１４の書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられる。すなわち、書換対象プログラムデータ（Ｐ）が動作制御データ（ＳＤ）およびプログラムデータ（ＲＤ）に置き換わる。プログラム書換処理が終了すると、ＲＯＭ１４には、書換処理実行プログラムデータ（ＰＷ）、動作制御データ（ＳＤ）およびプログラムデータ（ＲＤ）が記憶される。以後、コンピュータ装置１の動作は、プログラムデータ（ＲＤ）が実行されることで制御される。なお、動作制御データ（ＳＤ）が参照されることは、通常はない。
【００２８】
なお、書換対象プログラムデータ（Ｐ）が所定のプログラムの一部分とされてもよい。そして、プログラムの一部分である書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられるようにしてもよい。一つのプログラムをより細分化したマイクロコード単位でプログラム書換処理が実行されるようにしてもよい。
【００２９】
「環境に応じた書換処理の内容」
図３は、プログラム書換処理を行う環境に応じて、書換処理の内容が相違することを説明するための図である。プログラム書換処理を行う環境として、図３では、コンピュータ装置１の設計段階、コンピュータ装置１を出荷する工場段階およびコンピュータ装置１がユーザによって使用されるユーザ段階の３つの環境が例示されている。設計段階ほどセキュアレベルが高い環境であり、ユーザ段階ほどセキュアレベルが低い環境である。このため、プログラム書換処理を行うための要件が、ユーザ段階ほど厳しくなる。プログラム書換処理が行われる環境に応じて、書換用プログラムデータ（ＭＤ）が作成される。例えば、設計段階用の書換用プログラムデータ（ＭＤ）、工場段階用の書換用プログラムデータ（ＭＤ）、ユーザ段階用の書換用プログラムデータ（ＭＤ）が作成される。
【００３０】
なお、図３に例示する一連の処理を、アップデート処理と称する。アップデート処理は、プログラムのバージョンアップを行う処理のほか、コンピュータ装置の機能を拡張する処理やバグが修正されたプログラムに書き換える処理を含む。もちろん、アップデート処理に限らず、ダウンデート処理に対しても適用可能である。
【００３１】
図３では、アップデート処理において、実行される処理を○で、実行されない処理を×で示している。さらに、例示するアップデート処理では、書換用プログラムデータ（ＭＤ）は、ＵＳＢメモリを使用してコンピュータ装置１に提供されるものとして説明する。アップデート処理は、特に断らない限り、ＣＰＵ１０によって実行される。
【００３２】
始めに、設計段階におけるアップデート処理を説明する。設計段階では、書換対象プログラムデータ（Ｐ）のバージョンを確認する必要がなく、バージョン確認処理を行う必要性がない。設計段階では、改竄された書換用プログラムデータ（ＭＤ）が使用される可能性は極めて低いため、ファイル改竄確認処理を行う必要性がない。これに対して、ＥＥＰＲＯＭ１１の領域は初期化しておく必要があり、初期化処理を行う必要がある。以上から、設計段階用の書換用プログラムデータ（ＭＤ）の動作制御データ（ＳＤ）には、バージョン確認処理およびファイル改竄処理をスキップし、初期化処理を行うためのフラグの集合として、（０，０，１）が記述される。なお、フラグの集合を総称して制御フラグ群と称することもある。
【００３３】
アップデート処理が開始され、ステップＳ１においてモードイン処理が実行される。モードイン処理において、例えば、ＵＳＢメモリがコンピュータ装置１に装着される。そして、処理がステップＳ２に進む。ステップＳ２では、デバイスの一例であるＵＳＢメモリを認識する処理が実行される。そして、処理がステップＳ３に進む。
【００３４】
ステップＳ３では、ＵＳＢメモリに、ファイル形式の書換用プログラムデータ（ＭＤ）（ファイル）が記憶されているか否かを確認する処理が実行される。ここでは、ＵＳＢメモリに、設計段階用の書換用プログラムデータ（ＭＤ）が記憶されているものとして説明する。なお、ステップＳ１、ステップＳ２およびステップＳ３の各処理は、プログラム書換処理を行う環境に関係なく実行される、共通処理である。そして、処理がステップＳ４に進む。
【００３５】
ステップＳ４から書換処理が行われる。始めに、書換処理実行プログラムデータ（ＰＷ）が読み込まれ、書換処理実行プログラムデータ（ＰＷ）に記述された指示により、動作制御データ（ＳＤ）が読み込まれる。そして、動作制御データ（ＳＤ）に応じて実行すべき付随処理が認識される。
【００３６】
動作制御データ（ＳＤ）に基づいて、ステップＳ４のバージョン確認処理およびステップＳ５のファイル改竄処理がスキップされ、処理がステップＳ６に進む。ステップＳ６では、プログラム書換処理が実行される。プログラム書換処理が実行されることで、ＲＯＭ１４の書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられる。そして、処理がステップＳ７に進む。ステップＳ７では、ＥＥＰＲＯＭ１１の内容が初期化される。そして、アップデート処理が終了する。
【００３７】
次に、工場段階におけるアップデート処理について説明する。工場段階では、書換対象プログラムデータ（Ｐ）のバージョンを確認する必要があり、バージョン確認処理を行う必要性がある。工場段階では、改竄された書換用プログラムデータ（ＭＤ）が使用される可能性は極めて低いため、ファイル改竄確認処理を行う必要性がない。ＥＥＰＲＯＭ１１の領域は初期化しておく必要があり、初期化処理を行う必要がある。以上から、工場段階用の書換用プログラムデータ（ＭＤ）における動作制御データ（ＳＤ）には、バージョン確認処理を行い、ファイル改竄処理をスキップし、初期化処理を行うための制御フラグ群として、（１，０，１）が記述される。
【００３８】
アップデート処理が開始されると、ステップＳ１、ステップＳ２およびステップＳ３の処理が行われる。そして、動作制御データ（ＳＤ）に応じて、ステップＳ４でバージョン確認処理が行われる。バージョン確認処理が終了すると、ステップＳ５のファイル改竄確認処理がスキップされ、処理がステップＳ６に進む。
【００３９】
ステップＳ６では、プログラム書換処理が実行される。プログラム書換処理が実行されることで、ＲＯＭ１４の書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられる。そして、処理がステップＳ７に進む。ステップＳ７では、ＥＥＰＲＯＭ１１の内容が初期化される。そして、アップデート処理が終了する。
【００４０】
次に、ユーザ段階におけるアップデート処理について説明する。ユーザ段階では、書換対象プログラムデータ（Ｐ）のバージョンを確認する必要があり、バージョン確認処理を行う必要性がある。ユーザ段階では、改竄された書換用プログラムデータ（ＭＤ）が使用される可能性があるため、ファイル改竄確認処理を行う必要性がある。一方で、ＥＥＰＲＯＭ１１に記憶されているユーザデータを消去してはならない。すなわち、初期化処理を行う必要がない。以上から、ユーザ段階用の書換用プログラムデータ（ＭＤ）における動作制御データ（ＳＤ）には、バージョン確認処理およびファイル改竄処理を行い、初期化処理を行わないようにするための制御フラグ群として、（１，１，０）が記述される。
【００４１】
アップデート処理が開始されると、ステップＳ１、ステップＳ２およびステップＳ３の処理が行われる。そして、動作制御データ（ＳＤ）に応じて、ステップＳ４でバージョン確認処理が行われる。バージョン確認処理が終了すると、処理がステップＳ５に進み、ファイル改竄確認処理が実行される。そして処理がステップＳ６に進む。
【００４２】
ステップＳ６では、プログラム書換処理が実行される。プログラム書換処理が実行されることで、ＲＯＭ１４の書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられる。そして、ステップＳ７の初期化処理がスキップされ、アップデート処理が終了する。
【００４３】
なお、上述したアップデート処理の流れは一例であり、処理の順序は適宜、変更できる。さらに、他の共通処理や、他の付随処理が追加されてもよい。環境に応じて、付随処理を行うか否かは適宜、変更できる。上述した例では、工場段階ではファイル改竄確認処理がスキップされるように動作制御データ（ＳＤ）を規定したが、ファイル改竄確認処理のフラグを１にし、工場段階においてファイル改竄確認処理が実行されるようにしてもよい。プログラム書換処理が行われる環境が、例示した環境以外の環境でもよい。その環境に応じて、実行すべき付随処理が規定されてもよい。
【００４４】
このように、プログラム書換処理が実行される環境に応じて、処理の内容を変更できる。不必要な処理が行われないため、タクトタイム（生産工程における作業時間）を最小限にすることができる。コンピュータ装置側の書換処理実行プログラムに、複数の付随処理のそれぞれを実行するまたは実行しない全てのパターンを記述して実装する必要がない。
【００４５】
コンピュータ装置は、動作制御データに応じた書換処理を行えばよい。すなわち、コンピュータ装置側で、環境に応じた書換処理をするための書換処理実行プログラムデータを実装する必要がない。
【００４６】
「書換処理」
図４は、書換処理のフローの一例を示すフローチャートである。以下に説明するフローは、例えば、書換処理実行プログラムデータ（ＰＷ）に基づくＣＰＵ１０の制御によって実行される。
【００４７】
アップデート処理が開始され、ステップＳ１１の処理が実行される。ステップＳ１１では、ネットワークや、ＵＳＢ等の媒体から供給されたデータが書換用プログラムデータ（ＭＤ）か否かが判断される。書換用プログラムデータ（ＭＤ）でない場合は、アップデート処理が終了する。書換用プログラムデータ（ＭＤ）である場合は、処理がステップＳ１２に進む。
【００４８】
ステップＳ１２では、動作制御データ（ＳＤ）が読み込まれる。そして、処理がステップＳ１３に進む。ステップＳ１３では、動作制御データ（ＳＤ）の認証用データを使用して、書換用プログラムデータ（ＭＤ）が正規のデータであるか否かが判別される。正規のデータでない場合は、アップデート処理が終了する。正規のデータである場合は、処理がステップＳ１４に進む。
【００４９】
ステップＳ１４では、動作制御データ（ＳＤ）にビット列として記述されている制御フラグが読み取られ、各付随処理を実行するか否かが判断される。例えば、バージョン確認処理、ファイル改竄確認処理および初期化処理のそれぞれの付随処理を実行するか否かが判断される。そして、処理がステップＳ１５に進む。
【００５０】
ステップＳ１５では、バージョン確認処理を行うか否かが判断される。動作制御データ（ＳＤ）におけるバージョン確認処理のフラグが１であれば、処理がステップＳ１６に進む。動作制御データ（ＳＤ）におけるバージョン確認処理のフラグが０であれば、バージョン確認処理がスキップされ、処理がステップＳ１８に進む。
【００５１】
ステップＳ１６では、書換対象プログラムデータ（Ｐ）のバージョン情報と、書換用プログラムデータ（ＭＤ）のバージョン情報とが確認される。そして、処理がステップＳ１７に進む。ステップＳ１７では、プログラム書換処理を行う必要があるか否かが判断される。例えば、書換対象プログラムデータ（Ｐ）のバージョン情報と、書換用プログラムデータ（ＭＤ）のバージョン情報とが一致する場合は、書換対象プログラムデータ（Ｐ）のバージョン情報が最新であるため、プログラム書換処理を行う必要がない。したがって、ステップＳ１７の判定がＮｏとなり、アップデート処理が終了する。
【００５２】
なお、プログラム書換処理を行わない場合は、ファイル改竄確認処理および初期化処理の少なくとも一方のフラグが１である場合でも、アップデート処理を終了するようにしている。書換対象プログラムデータ（Ｐ）のバージョン情報が最新でない場合は、プログラム書換処理を行う必要がある。よって、処理がステップＳ１８に進む。
【００５３】
ステップＳ１８では、ファイル改竄確認処理を行うか否かが判断される。動作制御データ（ＳＤ）におけるファイル改竄確認処理のフラグが１であれば、処理がステップＳ１９に進む。動作制御データ（ＳＤ）におけるファイル改竄確認処理のフラグが０であれば、ファイル改竄確認処理がスキップされ、処理がステップＳ２１に進む。
【００５４】
ステップＳ１９では、プログラムデータ（ＲＤ）が改竄されているか否かを確認するファイル改竄確認処理が行われる。改竄を検出する方法は、公知の方法を適用できる。例えば、ハッシュ関数に基づくハッシュ値を照合することで改竄を検出するようにしてもよいし、電子透かしを検出することで改竄がされたか否かを検出するようにしてもよい。プログラムデータ（ＲＤ）が改竄されていなければ、ステップＳ２０において正規データと判別される。そして、処理がステップＳ２１に進む。
【００５５】
プログラムデータ（ＲＤ）が改竄されている場合は、ステップＳ２０において正規データでないと判別され、アップデート処理が終了する。なお、プログラムデータ（ＲＤ）が改竄されている場合は、初期化処理のフラグが１であってもアップデート処理を終了するようにしている。
【００５６】
ステップＳ２１では、プログラム書換処理が実行される。プログラム書換処理により書換対象プログラムデータ（Ｐ）が書換用プログラムデータ（ＭＤ）に書き換えられる。そして、処理がステップＳ２２に進む。
【００５７】
ステップＳ２２では、初期化処理を行うか否かが判断される。動作制御データ（ＳＤ）における初期化処理のフラグが１であれば、処理がステップＳ２３に進む。ステップＳ２３では、ＥＥＰＲＯＭ１１のデータが初期化される。すなわち、ＥＥＰＲＯＭ１１に記憶されているデータがクリアされる。初期化処理が終了して、アップデート処理が終了する。ステップＳ２２において、動作制御データ（ＳＤ）における初期化処理のフラグが０であれば、初期化処理がスキップされ、アップデート処理が終了する。
【００５８】
＜２．変形例＞
以上、本開示の一実施形態について説明したが、本開示は、上述した実施形態に限られることなく、種々の変形が可能である。以下、変形例について説明する。
【００５９】
「統合書換用プログラムデータについて」
図５に示すように、複数の書換用プログラムデータ（ＭＤ）を連結して、統合書換用プログラムデータを構成してもよい。統合書換用プログラムデータは、ｎ個（但し、ｎは１以上の自然数）の書換用プログラムデータである、書換用プログラムデータ（ＭＤ１）、書換用プログラムデータ（ＭＤ２）・・・書換用プログラムデータ（ＭＤｎ）から構成される。各書換用プログラムデータは、動作制御データ（ＳＤｎ）とプログラムデータ（ＲＤｎ）とを含む。統合書換用プログラムデータが、ＵＳＢやＣＤ−ＲＯＭなどの記憶媒体に記憶されて提供される。もちろん、ネットワークを介して、統合書換用プログラムデータが提供されてもよい。
【００６０】
各書換用プログラムデータは、コンピュータ装置のモデルに対応している。書換用プログラムデータ（ＭＤ１）はモデル１に対応し、書換用プログラムデータ（ＭＤ２）はモデル２に対応し、書換用プログラムデータ（ＭＤｎ）はモデルｎに対応している。
【００６１】
各書換用プログラムデータの動作制御データ（ヘッダ部）には、ヘッダデータの識別子、ヘッダのデータサイズ、モデルの識別子、データ連結数、データ番号、アドレステーブル、データサイズ、制御フラグ群などが記述されている。ここで、モデルの識別子が、各書換用プログラムデータが対応するモデルのＩＤである。データ連結数は、ｎの値である。データ番号は、各書換用プログラムデータに割り当てられる値である。例えば、書換用プログラムデータ（ＭＤ１）であればデータ番号１が割り当てられ、書換用プログラムデータ（ＭＤ２）であればデータ番号２が割り当てられる。
【００６２】
アドレステーブルには、動作制御データ（ＳＤ１）が記憶されているアドレスの番地、動作制御データ（ＳＤ２）が記憶されているアドレスの番地・・・動作制御データ（ＳＤｎ）が記憶されているアドレスの番地が記述されている。データサイズには、書換用プログラムデータ（ＭＤ１）のサイズ、書換用プログラムデータ（ＭＤ２）のサイズ・・・書換用プログラムデータ（ＭＤｎ）のサイズが記述されている。なお、個々の動作制御データのサイズは、上述したアドレステーブルの情報を使用して求めることができる。このため、プログラムデータが記憶されている領域を判別できる。
【００６３】
制御フラグ群は、バージョン確認処理やファイル改竄確認処理、初期化処理などを実行するか否かを規定するフラグの集合である。フラグの集合は、例えば、所定のビット列でもって表現される。モデル毎のアップデート処理において実行すべき付随処理が、制御フラグ群により規定される。
【００６４】
統合書換用プログラムデータを使用した処理の一例について説明する。ここでは、コンピュータ装置のモデルをモデル２として説明する。コンピュータ装置は、統合書換用プログラムデータを読み込む。例えば、先頭アドレスから順にデータを読み込む。動作制御データ（ＳＤ１）のモデル識別子（１）がコンピュータ装置のモデルに対応しているか否かが判断される。コンピュータ装置のモデルが２であるため、モデル識別子（１）は対応していない。コンピュータ装置は、アドレステーブルを参照して、動作制御データ（ＳＤ２）が記憶されているアドレスにジャンプする。
【００６５】
コンピュータ装置は、動作制御データ（ＳＤ２）を読み込む。動作制御データ（ＳＤ２）のモデル識別子（２）がコンピュータ装置のモデルに対応しているか否かが判断される。コンピュータ装置のモデルが２であることから、モデル識別子（２）は対応していることになる。そして、コンピュータ装置は、アドレステーブルに記述された動作制御データ（ＳＤ２）のアドレスと、データサイズとを参照し、書換用プログラムデータ（ＭＤ２）の領域を認識する。
【００６６】
そして、コンピュータ装置は、書換用プログラムデータ（ＭＤ２）を使用してアップデート処理を実行する。アップデート処理の詳細は、一実施形態と同様であるため概略的な説明にとどめる。コンピュータ装置は、動作制御データ（ＳＤ２）の制御フラグ群に基づいて所定の付随処理を実行しつつ、プログラム書換処理を実行する。
【００６７】
このように、統合書換用プログラムデータを読み込むだけで、統合書換用プログラムデータの必要な部分のデータを処理し、アップロード処理を実行することができる。ユーザは、統合書換用プログラムデータのみを入手すればよい。モデル毎に作成された膨大な書換用プログラムデータの中から、所定のモデルに対応する書換用プログラムデータを検索し、検索した書換用プログラムデータを選択する手間を省略できる。
【００６８】
「他の変形例」
本開示は、プログラム書換方法のほか、プログラムやプログラムが記録された記録媒体などにより実現することができる。さらに、本開示は、例示した処理が複数の装置によって分散して処理される、いわゆるクラウドシステムに対して適用することができる。例えば、個々の付随処理や、プログラム書換処理が異なるコンピュータ装置によって実行されるようにしてもよい。
【００６９】
なお、実施形態および変形例における構成および処理は、技術的矛盾が生じない範囲で適宜、削除または変更することができる。さらに、実施形態および変形例における構成および処理は、技術的矛盾が生じない範囲で適宜、組み合わせることができる。
【００７０】
本開示は、以下の構成をとることもできる。
（１）
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを前記書換用プログラムデータに書き換え、
前記動作制御データに応じて、前記所定の処理を実行するか否かを判断する
コンピュータ装置におけるプログラム書換方法。
（２）
前記動作制御データは、複数の前記所定の処理を実行するか否かを、前記所定の処理ごとに規定する（１）に記載のプログラム書換方法。
（３）
前記動作制御データは、前記書換対象プログラムデータを前記書換用プログラムデータに書き換える環境に応じて、前記複数の所定の処理を実行するか否かを規定する（２）に記載のプログラム書換方法。
（４）
前記所定の処理は、前記書換用プログラムデータが改ざんされているか否かを確認する処理、バージョン情報を確認する処理およびユーザデータを初期化する処理の少なくとも一つである（１）乃至（３）のいずれか１に記載のプログラム書換方法。
（５）
複数の前記書換用プログラムデータを読み込み、
前記コンピュータ装置に対応する書換用プログラムデータを判別する（１）乃至（４）のいずれか１に記載のプログラム書換方法。
（６）
プログラムデータと、所定の処理を実行するか否かを規定する動作制御データとを含む書換用プログラムデータを読み込み、
書換対象プログラムデータを前記書換用プログラムデータに書き換え、
前記動作制御データに応じて、前記所定の処理を実行するか否かを判断する
処理をコンピュータ装置に実行させるプログラム。
（７）
（６）に記載のプログラムが記録された記録媒体。
【符号の説明】
【００７１】
１・・・コンピュータ装置
１０・・・ＣＰＵ
１１・・・ＥＥＰＲＯＭ
１４・・・ＲＯＭ
１５・・・ＲＡＭ
ＰＷ・・・書換処理実行プログラムデータ
Ｐ・・・書換対象プログラムデータ
ＳＤ・・・動作制御データ
ＲＤ・・・プログラムデータ
【図１】
2013143052.tif 000003
【図２】
2013143052.tif 000004
【図３】
2013143052.tif 000005
【図４】
2013143052.tif 000006
【図５】
2013143052.tif 000007