(57)【要約】【課題】書き換えデータの位置ずれによるエラー確認及び確認時間の短縮が可能になる書き換え確認装置、書き換え確認方法及び書き換え確認コンピュータプログラムを提供する。【解決手段】取得部６ａは、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するＲＯＭ４からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得する。確認部６ｂは、取得部６ａが取得した少なくとも一方のコードが、書き換えデータを書き込むべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認する。【選択図】図１
2019096200.tif 000002
【特許請求の範囲】
【請求項１】
先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得する取得部と、
前記取得部が取得した前記少なくとも一方のコードが、前記書き換えデータを書き込むべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認する確認部と、
を備える書き換え確認装置。
【請求項２】
先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得する取得部と、
前記取得部が取得した前記少なくとも一方のコードが、前記書き換えデータを書き込むべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認する確認部と、
を備える書き換え確認装置。
【請求項３】
前記先頭の特定のコードと前記末尾の特定のコードの少なくとも一方は、前記記憶装置の前記複数の領域の各々で異なる請求項１又は２に記載の書き換え確認装置。
【請求項４】
前記書き換え対象領域のデータを書き換える際に、前記書き換え対象領域を分割することによって構成される新たな複数の領域に前記先頭の特定のコード及び前記末尾の特定のコードを含むデータをそれぞれ書き込む書き込み部を更に備える請求項１〜３のいずれか一項に記載の書き換え確認装置。
【請求項５】
連続する二つ以上の前記書き換え対象領域のデータを同時に書き換える際に、連続する二つ以上の前記書き換え対象領域から構成される新たな領域に前記先頭の特定のコード及び前記末尾の特定のコードを含むデータを書き込む書き込み部を更に備える請求項１〜３のいずれか一項に記載の書き換え確認装置。
【請求項６】
書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、
前記書き換え確認装置が、取得した前記少なくとも一方のコードが、前記書き換えデータを書き込むべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認するステップと、
を備える書き換え確認方法。
【請求項７】
書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、
前記書き換え確認装置が、取得した前記少なくとも一方のコードが、前記書き換えデータを記憶すべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認するステップと、
を備える書き換え確認方法。
【請求項８】
書き換え確認コンピュータプログラムであって、当該書き換え確認コンピュータプログラムは、
書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、
前記書き換え確認装置が、取得した前記少なくとも一方のコードが、前記書き換えデータを書き込むべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認するステップと、
をコンピュータに実行させる書き換え確認コンピュータプログラム。
【請求項９】
書き換え確認コンピュータプログラムであって、当該書き換え確認コンピュータプログラムは、
先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、
前記書き換え確認装置が、取得した前記少なくとも一方のコードが、前記書き換えデータを記憶すべき前記複数の領域のうちの一つの領域の直前と直後の前記少なくとも一方における前記特定のコードと一致するか否かを確認するステップと、
をコンピュータに実行させる書き換え確認コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え確認装置、書き換え確認方法及び書き換え確認コンピュータプログラムに関する。
【背景技術】
【０００２】
市場に出た組み込み系製品のソフトウェアのバージョンアップ等のために、既にＲＯＭ領域に書き込まれたデータの一部を書き換える部分書き換え（以下、「部分リプロ」とも呼ぶ。）が行われている。部分書き換えを行う場合、データの書き換え範囲（アドレス）を指定することによって、ＲＯＭ領域の複数の領域のうちの書き換え可能な書き換え対象領域が、データの書き換え対象（更新対象）領域として指定され、書き換え対象領域のデータが書き換えられる。したがって、部分書き換えを行う場合のデータの書き換え時間は、ＲＯＭ領域の全体の書き換えを行う場合のデータの書き換え時間より短くなる。
【０００３】
従来、部分リプロの後の書き換え対象領域のデータが正確であるか否かの確認のために、ＲＯＭ領域の全体に書き込まれるべきデータとＲＯＭ領域の全体に実際に書き込まれているデータとの比較又は書き換え対象領域のデータを書き換えるための書き換えデータと書き換え対象領域に実際に書き込まれているデータとの比較がベリファイ、ＳＵＭ値チェック等によって行われていた。
【０００４】
また、チェックデータが書き込まれるチェック領域をＲＯＭ領域の一部に設け、データの書き換え前にチェックデータをチェックすることによってＲＯＭ等の異常を検出することも提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２４１２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
部分リプロの後の書き換え対象領域のデータが正確であるか否かの確認のために、ＲＯＭ領域の全体に書き込まれるべきデータとＲＯＭ領域の全体に実際に書き込まれているデータとの比較を行う場合、確認に要する時間が長くなる。
【０００７】
また、部分リプロの後の書き換え対象領域のデータが正確であるか否かの確認のために、書き換え対象領域に書き込むべきデータと書き換え対象領域に実際に書き込まれているデータとの比較を行う場合、データの書き換え範囲を誤って指定することにより生じる書き換えデータの位置ずれによるエラーを検出することができない。
【０００８】
さらに、データの書き換え前にチェックデータをチェックすることによってＲＯＭ等の異常を検出する場合、部分リプロの後の書き換え対象領域の内容の確認していないので、部分リプロの後の書き換え対象領域の内容を保証することができない。
【０００９】
本発明の目的は、書き換えデータの位置ずれによるエラー確認及び確認時間の短縮が可能になる書き換え確認装置、書き換え確認方法及び書き換え確認コンピュータプログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明による書き換え確認装置は、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得する取得部と、取得部が取得した少なくとも一方のコードが、書き換えデータを書き込むべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認する確認部と、を備える。
【００１１】
本発明による他の書き換え確認装置は、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得する取得部と、取得部が取得した少なくとも一方のコードが、書き換えデータを書き込むべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認する確認部と、を備える。
【００１２】
好適には、先頭の特定のコードと末尾の特定のコードの少なくとも一方は、記憶装置の複数の領域の各々で異なる。
【００１３】
好適には、書き換え対象領域のデータを書き換える際に、書き換え対象領域を分割することによって構成される新たな複数の領域に先頭の特定のコード及び末尾の特定のコードを含むデータをそれぞれ書き込む書き込み部を更に備える。
【００１４】
好適には、連続する二つ以上の書き換え対象領域のデータを同時に書き換える際に、連続する二つ以上の書き換え対象領域から構成される新たな領域に先頭の特定のコード及び末尾の特定のコードを含むデータを書き込む書き込み部を更に備える。
【００１５】
本発明による書き換え確認方法は、書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、書き換え確認装置が、取得した少なくとも一方のコードが、書き換えデータを書き込むべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認するステップと、を備える。
【００１６】
本発明による他の書き換え確認方法は、書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、書き換え確認装置が、取得した少なくとも一方のコードが、書き換えデータを記憶すべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認するステップと、を備える。
【００１７】
本発明による書き換え確認コンピュータプログラムは、書き換え確認装置が、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有するとともにデータを書き換えるための書き換えデータが書き換え対象領域に書き込まれた記憶装置から前記書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、書き換え確認装置が、取得した少なくとも一方のコードが、書き換えデータを書き込むべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認するステップと、をコンピュータに実行させる。
【００１８】
本発明による他の書き換え確認コンピュータプログラムは、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれた複数の領域を有する記憶装置からデータを書き換えるための書き換えデータを書き込むために指定された書き換え対象領域の直前と直後の少なくとも一方のコードを取得するステップと、書き換え確認装置が、取得した少なくとも一方のコードが、書き換えデータを記憶すべき複数の領域のうちの一つの領域の直前と直後の少なくとも一方における特定のコードと一致するか否かを確認するステップと、をコンピュータに実行させる。
【発明の効果】
【００１９】
本発明によれば、書き換えデータの位置ずれによるエラー確認及び確認時間の短縮が可能になる。
【図面の簡単な説明】
【００２０】
【図１】本発明による書き換え確認装置を含むシステムを示す図である。
【図２】図１のＲＯＭ４の複数の書き換え領域の一例を示す図である。
【図３】図１の確認部の動作を説明するための図である。
【図４】図１に示すＲＯＭ４の部分書き換え手順の一例を示すフローチャートである。
【図５】書き換え範囲が正確に指定されたか否かの確認手順を説明するための図である。
【図６】部分書き換えが正確に行われなかった書き換え領域の一例を示す図である。
【図７】図１のＰＣ１のＲＡＭに記憶されたＥＣＵ３のＲＯＭ４の全領域のデータの一部を書き換えデータに書き換えた後に書き換え対象領域が正確に指定されているか否かを確認する手順の一例を示すフローチャートである。
【図８】新たな複数の領域に先頭の特定のコード及び末尾の特定のコードを含むデータをそれぞれ書き込む例を示す図である。
【図９】連続する二つ以上の書き換え対象領域から構成される新たな領域に先頭の特定のコード及び末尾の特定のコードを含むデータを書き込む例を示す図である。
【発明を実施するための形態】
【００２１】
本発明による書き換え確認装置、書き換え確認方法及び書き換え確認プログラムを、図面を参照しながら詳細に説明する。本実施の形態では、書き換え確認装置をＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）として実現する場合について説明するが、書き換え確認装置をＥＣＵ以外の装置（例えば、パーソナルコンピュータ（ＰＣ））で実現することもできる。また、本実施の形態では、書き換え確認方法をＥＣＵによって実行する場合について説明するが、書き換え確認方法をＥＣＵ以外の装置（例えば、ＰＣ）によって実行することもできる。さらに、本実施の形態では、書き換え確認コンピュータプログラムをＥＣＵのＲＯＭに格納されたコンピュータプログラムで実現する場合について説明するが、書き換え確認プログラムを他の記憶装置（例えば、ＰＣのＲＯＭ）に格納されたコンピュータプログラムで実現することもできる。
【００２２】
図１に示すシステムにおいて、パーソナルコンピュータ（ＰＣ）１は、通信経路２を介してＥＣＵ３とデータのやり取りを行うことができる。通信経路２は、例えば、ＥＣＵ３に接続されるＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＣＡＮとＰＣ１をＵＳＢでつなぐ通信ユニットによって構成される。
【００２３】
ＥＣＵ３は、コンピュータの一例であり、各種コンピュータプログラム等を格納したＲＯＭ４と、データを一時的に格納するＲＡＭ５と、各種制御コンピュータプログラムを実行するプロセッサ６と、を有する。ＲＯＭ４は、記憶装置の一例である。
【００２４】
本実施の形態では、ＲＯＭ４は、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれている複数の領域を有する。図２は、図１のＲＯＭ４の複数の書き換え領域の一例を示す図である。図２において、先頭の特定のコード及び末尾の特定のコードを含むデータがそれぞれ書き込まれている書き換え可能な三つの書き換え領域Ａ，Ｂ，Ｃを示す。本実施の形態では、書き換え領域Ａの範囲は、Ｗ番地（Ｗは自然数）からＸ番地（ＸはＷより大きい自然数）であり、書き換え領域Ｂの範囲は、Ｘ＋１番地からＹ番地であり（ＹはＸより大きい自然数）、書き換え領域Ｃの範囲は、Ｙ＋１番地からＺ番地である（ＺはＹより大きい自然数）。また、本実施の形態では、書き換え領域Ｂが、書き換えデータを記憶すべき複数の領域のうちの一つの領域に対応する領域に対応し、書き換え領域Ａが、対応する領域の前に隣接する領域に対応し、書き換え領域Ｃが、対応する領域の後に隣接する領域に対応する。ＲＯＭ４の書き換え領域の数は三つでなくてもよく、二つ又は四つ以上の書き換え領域を有してもよい。また、ＲＯＭ４は、一つ以上の書き換え不可能な領域を更に有してもよく、書き換え不可能な領域が書き換え領域の前に隣接する場合、書き換え不可能な領域のデータは、末尾の特定のコードを有し、書き換え不可能な領域が書き換え領域の後に隣接する場合、書き換え不可能な領域のデータは、先頭の特定のコードを有する。
【００２５】
本実施の形態では、書き換え領域Ａのデータの先頭の特定のコード及び末尾の特定のコード、書き換え領域Ｂのデータの先頭の特定のコード及び末尾の特定のコード及び書き換え領域Ｃのデータの先頭の特定のコード及び末尾の特定のコードは、全て同一であり、例えば、４バイトの特定のコード（０ｘ５５ＡＡ５５ＡＡ等）である。
【００２６】
本実施の形態では、ＲＡＭ５は、書き換え領域Ｂの書き換えデータ、書き換え領域Ａのデータの末尾の特定のコード及び書き換え領域Ｃのデータの先頭の特定のコードを、書き換え領域Ｂの範囲の情報と関連付けて記憶する。ＰＣ１は、予め取得した書き換え領域Ｂの書き換えデータ、書き換え領域Ａのデータの末尾の特定のコード及び書き換え領域Ｃのデータの先頭の特定のコード並びに書き換え領域Ｂの範囲の情報を、通信経路２を介してＥＣＵ３に供給する。そして、プロセッサ６は、書き換え領域Ｂの書き換えデータ、書き換え領域Ａのデータの末尾の特定のコード及び書き換え領域Ｃのデータの先頭の特定のコード並びに書き換え領域Ｂの範囲の情報を、ＲＡＭ５に格納する。
【００２７】
本実施の形態では、プロセッサ６によって実行されるプログラムによってソフトウェア的に構成される又はプロセッサ６内の専用回路によりハードウェア的に構成される取得部６ａ、確認部６ｂ及び書き込み部６ｃを有する。
【００２８】
取得部６ａは、書き換え領域の範囲の情報において指定された書き換え範囲に対応する書き換え対象領域の直前と直後の少なくとも一方のコードをＲＯＭ４から取得してＲＡＭ５に格納する。取得部６ａが取得した少なくとも一方のコードのバイト数は、先頭の特定のコードのバイト数及び末尾の特定のコードのバイト数と同一である（例えば、４バイトである。）。
【００２９】
確認部６ｂは、書き換え対象領域が正確に指定されたかの否かの確認を、取得部６ａが取得した少なくとも一方のコードが書き換え領域Ａのデータの末尾の特定のコードと書き換え領域Ｃのデータの先頭の特定のコードのいずれか一方に一致するか否かを確認することによって行う。
【００３０】
なお、確認部６ｂは、書き換え対象領域が正確に指定されてデータの書き換えが終了した後に書き換えデータＢ’に不良個所が存在するか否かを確認するために、書き換えデータＢ’と書き換え領域Ｂに実際に書き込まれているデータとの比較をベリファイ、ＳＵＭ値チェック等によって行うこともできる。図３は、図１の確認部の動作を説明するための図である。図３に示すように書き換えデータＢ’が書き換え領域Ｂに正確に書き換えられているが書き換えデータＢ’に不良個所が存在する場合、確認部６ｂは、書き換えデータＢ’に不良個所が存在するために書き換えが正常に行われなかったことを確認する。
【００３１】
書き込み部６ｃは、書き換え対象領域が正確に指定されたことが確認部６ｂによって確認された場合には、書き換え領域の範囲の情報において指定された書き換え範囲に対応する書き換え対象領域のデータを書き換える。例えば、書き込み部６ｃは、書き換え領域Ｂの範囲の情報において指定された書き換え範囲に対応する書き換え領域Ｂのデータを書き換えデータＢ’に書き換える。
【００３２】
図４は、図１に示すＲＯＭ４の部分書き換え手順の一例を示すフローチャートである。このフローは、書き換え対象領域が正確に指定されているのを確認した後にＲＯＭ４の書き換え領域Ｂのデータを書き換えデータＢ’に書き換える処理を行うものである。このフローは、ＲＯＭ４に予め記憶されている指定範囲確認及び部分書き換えコンピュータプログラムに基づいて、主にＥＣＵ３の各要素によって実行される。書き換え領域Ｂ以外の書き換え領域のデータの書き換えを行う処理を、同様なフローを用いて行うことができる。このフローは、書き換え領域Ａのデータの末尾の特定のコード、書き換えデータＢ’及び書き換え領域Ｃのデータの先頭の特定のコード並びに書き換え領域Ｂの範囲の情報がＰＣ１からＥＣＵ３に供給される度に実行される。
【００３３】
先ず、取得部６ａは、書き換え領域Ａのデータの末尾の特定のコード、書き換えデータＢ’及び書き換え領域Ｃのデータの先頭の特定のコード並びに書き換え領域Ｂの範囲の情報をＰＣ１から取得してＲＡＭ５に格納するとともに書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前と直後の両方のコードをＲＯＭ４から取得する（ステップＳ１）。その後、確認部６ｂは、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に（この場合、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の先頭から４バイト前の領域に）書き換え領域Ａの末尾の特定のコードが存在するか否かを、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致するか否かに基づいて判断する（ステップＳ２）。書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に書き換え領域Ａの末尾の特定のコードが存在しない場合（ステップＳ２のＮｏ）、すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致しない場合、確認部６ｂは、書き換え領域Ｂを正確に指定できなかった旨の表示を、ＥＣＵ３に接続された表示部に表示する（ステップＳ３）。その後、ＥＣＵ３は、処理を終了する。
【００３４】
一方、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に書き換え領域Ａの末尾の特定のコードが存在する場合（ステップＳ２のＹｅｓ）、すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致する場合、確認部６ｂは、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に（この場合、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の末尾から４バイト後の領域に）書き換え領域Ｃの先頭の特定のコードが存在するか否かを、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致するか否かに基づいて判断する（ステップＳ４）。書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に書き換え領域Ｃの先頭の特定のコードが存在しない場合（ステップＳ４のＮｏ）、すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致しない場合、処理は、ステップＳ３に進む。
【００３５】
一方、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に書き換え領域Ｃの先頭の特定のコードが存在する場合（ステップＳ４のＹｅｓ）、すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致する場合、書き込み部６ｃは、書き換え領域Ｂのデータを書き換えデータＢ’に書き換えるために、書き換え領域Ｂのデータを消去した後に書き換えデータＢ’を書き換え領域Ｂに書き込む（ステップＳ５）。
【００３６】
図５は、書き換え範囲が正確に指定されたか否かの確認手順を説明するための図である。書き換え対象領域が正確に指定されている場合、Ｘ＋１番地からＹ番地までが書き換え領域Ｂの範囲として指定される。また、書き換え対象領域の直前にあるコードは、書き換え領域Ａのデータの末尾の特定のコードに一致し、書き換え対象領域の直後にあるコードは、書き換え領域Ｃのデータの先頭の特定のコードに一致する。
【００３７】
図６は、部分書き換えが正確に行われなかった書き換え領域の一例を示す図である。人為的なミス、データ化け等により書き換え対象領域が誤って指定される場合、書き換えデータＢ’は、書き換え領域Ｂに正確に書き込まれない。図６に示す例において、書き換えデータＢ’は、書き換え領域Ａに書き込まれ、書き換え領域Ｂ’の前後に特定のコードが存在しない。本実施の形態では、書き換え対象領域の直前にあるコードが書き換え領域Ａのデータの末尾の特定のコードに一致するか否か及び書き換え対象領域の直後にあるコードが書き換え領域Ｃのデータの先頭の特定のコードに一致するか否かを確認するので、部分書き換えが正確に行われない事態（書き換えデータの位置ずれ）を回避することができる。
【００３８】
その後、確認部６ｂは、書き換え領域Ｂの範囲の情報に含まれるデータの書き換え対象領域に書き込まれているＲＯＭ４のデータを抽出する。そして、確認部６ｂは、図３に示すような書き換えデータＢ’の不良個所が存在するか否かを確認するために、抽出したデータと書き換えデータＢ’とを比較し、これらが一致するか否かを確認する（ステップＳ６）。この場合、確認部６ｂは、書き換え領域Ｂのデータと、書き換えデータＢ’との比較をベリファイ、ＳＵＭ値チェック等によって行う。
【００３９】
確認部６ｂが抽出したＲＯＭ４のデータと書き換えデータＢ’とが一致する場合、すなわち、書き換えデータＢ’に不良個所が存在しない場合（ステップＳ６のＹｅｓ）、確認部６ｂは、書き換えが正常に行われた旨の表示を、ＥＣＵ３に接続された表示部（図示せず）に表示する（ステップＳ７）。その後、ＥＣＵ３は、処理を終了する。
【００４０】
一方、確認部６ｂが抽出したＲＯＭ４のデータと書き換えデータＢ’とが一致しない場合、すなわち、書き換えデータＢ’に不良個所が存在する場合（ステップＳ６のＮｏ）、確認部６ｂは、書き換えが正常に行われなかった旨の表示を、ＥＣＵ３に接続された表示部に表示する（ステップＳ８）。その後、ＥＣＵ３は、処理を終了する。
【００４１】
図４のフローチャートにおいて、書き換え対象領域が正確に指定されているか否かの確認をＥＣＵ３で行う場合について説明したが、書き換え対象領域が正確に指定されているか否かの確認をＰＣ１で行い、書き換え対象領域が正確に指定されている場合にはＰＣ１からの命令に基づいて書き込み部６ｃがＲＯＭ４の書き換え領域Ｂのデータを書き換えデータＢ’に書き換えてもよい。この場合、部分リプロ前のＲＯＭ４の全領域のデータが、ＥＣＵ３から通信経路２を介してＰＣ１に送信され、ＰＣ１のＲＡＭ（図示せず）に格納される。
【００４２】
ＥＣＵ３のＲＯＭ４の全領域のデータの一部を書き換えデータに書き換えた後に書き換え対象領域が正確に指定されているか否かをＰＣ１又はＥＣＵ３で確認してもよい。図７は、図１のＰＣ１のＲＡＭに記憶されたＥＣＵ３のＲＯＭ４の全領域のデータの一部を書き換えデータに書き換えた後に書き換え対象領域が正確に指定されているか否かを確認する手順の一例を示すフローチャートである。このフローは、ＰＣ１のＲＡＭに記憶されたＲＯＭ４の全領域のデータのうちの指定された書換え範囲に対応するデータを書き換えデータに書き換えた後に書き換え対象領域が正確に指定されたか否かを確認する処理を行うものである。このフローは、ＰＣ１のＲＯＭ（図示せず）に予め記憶されている部分書き換え及び部分書き換え内容確認コンピュータプログラムに基づいて、主にＰＣ１の各要素によって実行される。書き換え領域Ｂ以外の書き換え領域に対応する箇所についての書き換え後のデータが正常であるか否かの確認を行う処理を、同様なフローを用いて行うことができる。このフローは、部分リプロ前のＲＯＭ４の全領域のデータがＥＣＵ３からＰＣ１に送信される度に実行される。
【００４３】
先ず、ＰＣ１の書き換え部（図示せず）は、書き換え領域Ａのデータの末尾の特定のコード、書き換えデータＢ’及び書き換え領域Ｃのデータの先頭の特定のコード並びに書き換え領域Ｂの範囲の情報を外部から取得する（ステップＳ２１）。その後、ＰＣ１の書き換え部は、ＲＯＭの全データのうちの書き換え対象領域のデータを書き換えデータＢ’に書き換えるために、書き換え範囲のデータを消去した後に書き換えデータＢ’を書き換え範囲に書き込む（ステップＳ２２）。その後、ＰＣ１の取得部（図示せず）は、ＲＯＭ４の全データのうちの書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域に対応する箇所のデータ及び当該書き換え対象領域の直前と直後の両方のコードをＰＣ１のＲＡＭから取得する。そして、ＰＣ１の確認部（図示せず）は、ＲＯＭ４の全データのうちの書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域に対応する箇所のデータと書き換えデータＢ’とを比較し、これらが一致するか否かを確認する（ステップＳ２３）。この場合、ＰＣ１の確認部は、書き換え領域Ｂのデータと、書き換えデータＢ’との比較をベリファイ、ＳＵＭ値チェック等によって行う。
【００４４】
ＲＯＭ４の全データのうちの書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域に対応する箇所のデータと書き換えデータＢ’とが一致しない場合、すなわち、書き換えデータＢ’に不良個所が存在する場合（ステップＳ２３のＮｏ）、ＰＣ１の確認部は、書き換えが正常に行われなかった旨の表示を、ＰＣ１に接続された表示部（図示せず）に表示する（ステップＳ２４）。その後、ＰＣ１は、処理を終了する。
【００４５】
一方、ＲＯＭ４の全データのうちの書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域に対応する箇所のデータと書き換えデータＢ’とが一致する場合（ステップＳ２３のＹｅｓ）、ＰＣ１の確認部は、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に（この場合、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の先頭から４バイト前の領域に）書き換え領域Ａの末尾の特定のコードが存在するか否かを、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致するか否かに基づいて判断する（ステップＳ２５）。書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に書き換え領域Ａの末尾の特定のコードが存在しない場合（すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致しない場合）（ステップＳ２５のＮｏ）、ＰＣ１の確認部は、書き換え領域Ｂを正確に指定できなかった旨の表示を、ＰＣ１に接続された表示部に表示する（ステップＳ２６）。その後、ＰＣ１は、処理を終了する。
【００４６】
一方、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の前に書き換え領域Ａの末尾の特定のコードが存在する場合（すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直前のコードが書き換え領域Ａの末尾の特定のコードに一致する場合）（ステップＳ２５のＹｅｓ）、ＰＣ１の確認部は、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に（この場合、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の末尾から４バイト後の領域に）書き換え領域Ｃの先頭の特定のコードが存在するか否かを、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致するか否かに基づいて判断する（ステップＳ２７）。書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に書き換え領域Ｃの先頭の特定のコードが存在しない場合（すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致しない場合）（ステップＳ２７のＮｏ）、処理は、ステップＳ２６に進む。
【００４７】
一方、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の後に書き換え領域Ｃの先頭の特定のコードが存在する場合（すなわち、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域の直後のコードが書き換え領域Ｃの先頭の特定のコードに一致する場合）（ステップＳ２７のＹｅｓ）、ＰＣ１の確認部は、書き換えが正常に行われた旨の表示を、ＰＣ１に接続された表示部に表示する（ステップＳ２８）。その後、ＰＣ１は、処理を終了する。
【００４８】
図７のフローチャートにおいて、書き換えデータＢ’に不良個所がないか否かの判断を、書き換え領域Ａの末尾の特定コードが存在するか否かの判断及び書き換え領域Ｃの先頭の特定コードが存在するか否かの判断の後に行ってもよい。すなわち、図７のフローチャートにおいて、ステップＳ２５の判定、ステップＳ２７の判定及びステップＳ２３の判定の順に判定を行ってもよい。
【００４９】
図７のフローチャートにおいて、書き換え領域Ｂのデータの書き換えデータＢ’への書き換えをＰＣ１で行う場合について説明したが、書き換え領域Ｂのデータの書き換えデータＢ’への書き換えをＥＣＵ３で行ってもよい。この場合、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域が正確に指定されているか否かをＰＣ１で確認するために、部分リプロ後のＲＯＭ４の全領域のデータが、ＥＣＵ３から通信経路２を介してＰＣ１に送信され、ＰＣ１のＲＡＭに格納される。
【００５０】
本実施の形態によれば、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域が正確に指定されているか否かを、書き換えデータＢ’の前に書き換え領域Ａのデータの末尾の特定のコードが存在するか否かの判断及び書き換えデータＢ’の後に書き換え領域Ｃのデータの先頭の特定のコードが存在するか否かの判断することによって確認している。これによって、人為的なミス、データ化け等により書き換え対象領域が誤って指定されることにより生じる書き換えデータの位置ずれによるエラー確認を行うことができる。また、書き換え領域Ｂの書き換え後の書き換え領域Ｂの内容の確認を、書き換え領域Ａのデータの末尾の特定のコード、書き換えデータＢ’及び書き換え領域Ｃのデータの先頭の特定のコードを用いて行っているので、ＲＯＭ４の全データの内容を確認する場合よりもエラー確認時間を短縮することができる。さらに、書き換えデータＢ’の不良個所が存在するか否かも判断することができる。
【００５１】
上記実施の形態において、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域が正確に指定されているか否かを確認するために書き換え領域Ａのデータの末尾の特定のコードと書き換え領域Ｃのデータの先頭の特定のコードの両方を用いる場合について説明した。しかしながら、書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域が正確に指定されているか否かの確認を、書き換え領域Ａのデータの末尾の特定のコードと書き換え領域Ｃのデータの先頭の特定のコードのいずれか一方を用いて行うこともできる。
【００５２】
また、上記実施の形態において、書き換え領域Ａのデータの先頭の特定のコード及び末尾の特定のコード、書き換え領域Ｂのデータの先頭の特定のコード及び末尾の特定のコード及び書き換え領域Ｃのデータの先頭の特定のコード及び末尾の特定のコードが全て同一である場合について説明した。しかしながら、先頭の特定のコードと末尾の特定のコードの少なくとも一方がＲＯＭ４の領域ごとに異なるようにしてもよい。この場合、範囲が同一の複数の書き換え領域が存在するときにも書き換え領域Ｂの範囲の情報に含まれる書き換え対象領域が正確に指定されているか否かの確認を正確に行うことができる。例えば、書き換え領域Ｂの範囲と書き換え領域Ｃの範囲が同一であり、先頭の特定のコードが書き換え領域Ｂと書き換え領域Ｃとで異なる場合、書き換え領域Ｃの書き換えデータＣ’が誤って書き換え領域Ｂに書き込まれたとしても、書き換え領域Ｂに書き込まれた先頭の特定のコードをＰＣ１の確認部又はＥＣＵ３の確認部６ｂによって確認することによって、部分リプロ後の書き換え領域Ｃのデータが正確であるか否かの確認を正確に行うことができる。
【００５３】
また、ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃは、書き換え対象領域のデータを書き換える際に、書き換え対象領域を分割することによって構成される新たな複数の領域に先頭の特定のコード及び末尾の特定のコードを含むデータをそれぞれ書き込んでもよい。ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃによる新たな複数の領域に対するデータの書き込みは、書き換え対象領域が正確に指定されていることを確認する前と書き換え対象領域が正確に指定されていることを確認した後のいずれに行ってもよい。図８は、新たな複数の領域に先頭の特定のコード及び末尾の特定のコードを含むデータをそれぞれ書き込む例を示す図である。例えば、図８に示すように、ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃは、書き換え領域Ｂを書き換える際に、書き換え領域Ｂを分割することによって構成される新たな複数の書き換え領域Ｂ１，Ｂ２に先頭の特定のコード及び末尾の特定のコードを含むデータＢ１’，Ｂ２’をそれぞれ書き込んでもよい。この場合、ＰＣ１の書き込み部又はＥＣＵ３の確認部６ｂは、書き換え領域Ｂ１のデータが正確であるか否かの確認を、書き換え領域Ａのデータの末尾の特定のデータ、データＢ１’及びデータＢ２’の先頭の特定のデータを用いて行い、書き換え領域Ｂ２のデータが正確であるか否かの確認を、データＢ１’の末尾の特定のデータ、データＢ２’及び書き換え領域Ｃのデータの先頭の特定のデータを用いて行う。これによって、部分リプロ後の書き換え領域の範囲を変更することができるとともに書き換え領域の範囲の変更後の書き換え領域のデータが正確であるか否かの確認も可能となる。
【００５４】
また、ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃは、連続する二つ以上の書き換え対象領域のデータを同時に書き換える際に、連続する二つ以上の書き換え対象領域から構成される新たな領域に先頭の特定のコード及び末尾の特定のコードを含むデータを書き込んでもよい。ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃによる連続する二つ以上の書き換え対象領域から構成される新たな領域に対するデータの書き込みは、書き換え対象領域が正確に指定されていることを確認する前と書き換え対象領域が正確に指定されていることを確認した後のいずれに行ってもよい。図９は、連続する二つ以上の書き換え対象領域から構成される新たな領域に先頭の特定のコード及び末尾の特定のコードを含むデータを書き込む例を示す図である。例えば、図９に示すように、ＰＣ１の書き込み部又はＥＣＵ３の書き込み部６ｃは、連続する書き換え領域Ａ，Ｂのデータを同時に書き換える際に、書き換え領域Ａ，Ｂから構成される新たな書き換え領域ＡＢに先頭の特定のコード及び末尾の特定のコードを含むデータＡＢを書き込んでもよい。この場合、ＰＣ１の書き込み部又はＥＣＵ３の確認部６ｂは、書き換え領域ＡＢのデータが正確であるか否かの確認を、データＡＢ及び書き換え領域Ｃのデータの先頭の特定のデータを用いて行う。これによって、部分リプロ後の書き換え領域の範囲を変更することができるとともに書き換え領域の範囲の変更後の書き換え領域の内容の確認も可能となる。
【符号の説明】
【００５５】
１    パーソナルコンピュータ（ＰＣ）
２    通信経路
３    ＥＣＵ
４    ＲＯＭ
５    ＲＡＭ
６    プロセッサ
６ａ    取得部
６ｂ    確認部
６ｃ    書き込み部
【図１】
2019096200.tif 000003
【図２】
2019096200.tif 000004
【図３】
2019096200.tif 000005
【図４】
2019096200.tif 000006
【図５】
2019096200.tif 000007
【図６】
2019096200.tif 000008
【図７】
2019096200.tif 000009
【図８】
2019096200.tif 000010
【図９】
2019096200.tif 000011