(57)【要約】【課題】エンジン制御用ソフトウェアの書き換えが可能な電子制御装置にて、学習値等の継続保存データを、初期化が必要な場合にのみ初期化でき、しかもエンジンの始動性を良好にする。【解決手段】この装置では、フラッシュメモリ内のエンジン制御用ソフトの書き換え時に、そのソフトのバージョン情報もフラッシュメモリに書き込まれる。そして、起動時には、エンジン制御用ソフトの実行と並行して、フラッシュメモリからバージョン情報を読み出すと共に（Ｓ２１０）、ＥＥＰＲＯＭから以前に記憶しておいたバージョン情報を読み出し（Ｓ２２０）、両バージョン情報が不一致ならば（Ｓ２３０：不一致）、継続保存データを初期化し（Ｓ２４０）、ＥＥＰＲＯＭ内のバージョン情報をフラッシュメモリ内のものに更新する（Ｓ２５０）。このため、異なるソフトへの書き換え後の最初の起動時にのみ継続保存データが初期化され、またエンジン制御の開始遅れもない。【選択図】図３
2008169815.tif 000002
【特許請求の範囲】
【請求項１】
電気的に記憶内容が書き換え可能であると共に、車両のエンジンを制御するためのエンジン制御用ソフトウェアが記憶された第１記憶手段を備え、
前記第１記憶手段内のエンジン制御用ソフトウェアを実行することにより前記エンジンを制御すると共に、前記エンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべきデータ（以下、継続保存データという）を、第２記憶手段に継続的に記憶させるようになっており、また、外部装置からの書換要求を受けると、前記第１記憶手段内のエンジン制御用ソフトウェアを前記外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行うように構成された電子制御装置であって、
前記第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報が記憶される特定情報記憶手段を備え、
当該装置が起動した際に、前記第１記憶手段から、その第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報を抽出して、その抽出した特定情報と、前記特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する判定処理と、
前記判定処理により不一致であると肯定判定された場合に、前記第２記憶手段内の継続保存データを初期化するデータ初期化処理と、
前記データ初期化処理により継続保存データが初期化される場合に、前記判定処理により前記第１記憶手段から今回抽出された特定情報を、前記特定情報記憶手段に更新記憶する更新処理と、を行うように構成されており、
更に、前記判定処理、前記データ初期化処理、及び前記更新処理は、前記第１記憶手段内のエンジン制御用ソフトウェアの実行と並行して実行されること、
を特徴とする電子制御装置。
【請求項２】
電気的に記憶内容が書き換え可能であると共に、車両のエンジンを制御するためのエンジン制御用ソフトウェアが記憶された第１記憶手段を備え、
前記第１記憶手段内のエンジン制御用ソフトウェアを実行することにより前記エンジンを制御すると共に、前記エンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべきデータ（以下、継続保存データという）を、第２記憶手段に継続的に記憶させるようになっており、また、外部装置からの書換要求を受けると、前記第１記憶手段内のエンジン制御用ソフトウェアを前記外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行うように構成された電子制御装置であって、
前記第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報が記憶される特定情報記憶手段を備え、
当該装置が起動した際に、前記第１記憶手段から、その第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報を抽出して、その抽出した特定情報と、前記特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する判定処理と、
前記判定処理により不一致であると肯定判定された場合に、前記第２記憶手段内の継続保存データを初期化するデータ初期化処理と、
前記データ初期化処理により継続保存データが初期化される場合に、前記判定処理により前記第１記憶手段から今回抽出された特定情報を、前記特定情報記憶手段に更新記憶する更新処理と、を行うように構成されており、
更に、前記データ初期化処理では、前記第２記憶手段内の継続保存データのうち、前記エンジンを始動させるのに使用される継続保存データ（以下、始動時使用データという）を、他の継続保存データよりも先に初期化するようになっていると共に、
前記判定処理により不一致であると肯定判定された場合には、前記始動時使用データの前記データ初期化処理による初期化が完了した時点で、前記第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、その後は、前記エンジン制御用ソフトウェアの実行と並行して前記データ初期化処理及び前記更新処理が実行されること、
を特徴とする電子制御装置。
【請求項３】
請求項１又は請求項２に記載の電子制御装置において、
前記特定情報は、前記エンジン制御用ソフトウェアのバージョン情報であると共に、前記第１記憶手段には、前記書換処理が行われる場合に、前記外部装置から送信されて来たエンジン制御用ソフトウェアのバージョン情報が書き込まれるようになっており、
前記判定処理では、前記第１記憶手段に書き込まれた前記バージョン情報を、前記特定情報として抽出すること、
を特徴とする電子制御装置。
【請求項４】
請求項１又は請求項２に記載の電子制御装置において、
前記特定情報は、前記エンジン制御用ソフトウェアのうちの特定領域のデータに対して、特定の演算を行った計算値であり、
前記判定処理では、前記第１記憶手段内のエンジン制御用ソフトウェアのうちの特定領域のデータに対して、前記特定の演算を行い、その計算値を、前記特定情報として抽出すること、
を特徴とする電子制御装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段を複数備え、
前記判定処理では、前記第１記憶手段から抽出した特定情報と、前記複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であるか否かを判定するように構成されていること、
を特徴とする電子制御装置。
【請求項６】
請求項１ないし請求項４の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段を複数備え、
前記判定処理では、前記第１記憶手段から抽出した特定情報と、前記複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であるか否かを判定するように構成されていること、
を特徴とする電子制御装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段が正常か否かを検査する検査手段を備え、
前記検査手段により正常でないと判定された特定情報記憶手段に関して、その特定情報記憶手段に記憶されている特定情報が前記第１記憶手段から抽出した特定情報と不一致であるとの前記判定処理の判定結果は、無効化されるように構成されていること、
を特徴とする電子制御装置。
【請求項８】
電気的に記憶内容が書き換え可能であると共に、車両のエンジンを制御するためのエンジン制御用ソフトウェアが記憶された第１記憶手段を備え、
前記第１記憶手段内のエンジン制御用ソフトウェアを実行することにより前記エンジンを制御すると共に、前記エンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべきデータ（以下、継続保存データという）を、第２記憶手段に継続的に記憶させるようになっており、また、外部装置からの書換要求を受けると、前記第１記憶手段内のエンジン制御用ソフトウェアを前記外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行うように構成された電子制御装置であって、
前記継続保存データは複数あり、
前記第１記憶手段に記憶されるエンジン制御用ソフトウェアのうち、前記各継続保存データにそれぞれ関与する部分（以下、保存データ関与部分という）の各々について設けられて、該当する保存データ関与部分に固有の特定情報が記憶される複数の特定情報記憶手段を備え、
当該装置が起動した際に、前記保存データ関与部分の各々について、
前記第１記憶手段から、該当する保存データ関与部分に固有の特定情報を抽出して、その抽出した特定情報と、該当する保存データ関与部分に対応した特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する判定処理と、その判定処理により不一致であると肯定判定された場合に、該当する保存データ関与部分に対応した前記第２記憶手段内の継続保存データを初期化するデータ初期化処理と、そのデータ初期化処理により前記継続保存データの初期化が行われる場合に、前記判定処理により前記第１記憶手段から今回抽出された特定情報を、該当する保存データ関与部分に対応した特定情報記憶手段に更新記憶する更新処理と、からなる初期化制御処理を実行するように構成されており、
更に、前記保存データ関与部分の各々についての前記初期化制御処理は、前記第１記憶手段内のエンジン制御用ソフトウェアの実行と並行して実行されること、
を特徴とする電子制御装置。
【請求項９】
電気的に記憶内容が書き換え可能であると共に、車両のエンジンを制御するためのエンジン制御用ソフトウェアが記憶された第１記憶手段を備え、
前記第１記憶手段内のエンジン制御用ソフトウェアを実行することにより前記エンジンを制御すると共に、前記エンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべきデータ（以下、継続保存データという）を、第２記憶手段に継続的に記憶させるようになっており、また、外部装置からの書換要求を受けると、前記第１記憶手段内のエンジン制御用ソフトウェアを前記外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行うように構成された電子制御装置であって、
前記継続保存データは複数あり、
前記第１記憶手段に記憶されるエンジン制御用ソフトウェアのうち、前記各継続保存データにそれぞれ関与する部分（以下、保存データ関与部分という）の各々について設けられて、該当する保存データ関与部分に固有の特定情報が記憶される複数の特定情報記憶手段を備え、
当該装置が起動した際に、前記保存データ関与部分の各々について、
前記第１記憶手段から、該当する保存データ関与部分に固有の特定情報を抽出して、その抽出した特定情報と、該当する保存データ関与部分に対応した特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する判定処理と、その判定処理により不一致であると肯定判定された場合に、該当する保存データ関与部分に対応した前記第２記憶手段内の継続保存データを初期化するデータ初期化処理と、そのデータ初期化処理により前記継続保存データの初期化が行われる場合に、前記判定処理により前記第１記憶手段から今回抽出された特定情報を、該当する保存データ関与部分に対応した特定情報記憶手段に更新記憶する更新処理と、からなる初期化制御処理を実行するように構成されており、
更に、前記各保存データ関与部分についての初期化制御処理は、前記第２記憶手段内の継続保存データのうち、前記エンジンを始動させるのに使用される継続保存データ（以下、始動時使用データという）に対応する保存データ関与部分についての初期化制御処理が、他の継続保存データに対応する保存データ関与部分についての初期化制御処理よりも先に実行されるようになっていると共に、
前記始動時使用データに対応する保存データ関与部分についての初期化制御処理が終了した時点で、前記第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、その後は、前記エンジン制御用ソフトウェアの実行と並行して、他の継続保存データに対応する保存データ関与部分についての初期化制御処理が実行されること、
を特徴とする電子制御装置。
【請求項１０】
請求項８又は請求項９に記載の電子制御装置において、
前記特定情報は、前記保存データ関与部分のバージョン情報であると共に、前記第１記憶手段には、前記書換処理が行われる場合に、前記外部装置から送信されて来たエンジン制御用ソフトウェアにおける前記各保存データ関与部分のバージョン情報が書き込まれるようになっており、
前記各保存データ関与部分についての初期化制御処理における判定処理では、該当する保存データ関与部分のバージョン情報を、前記第１記憶手段から前記特定情報として抽出すること、
を特徴とする電子制御装置。
【請求項１１】
請求項８又は請求項９に記載の電子制御装置において、
前記特定情報は、前記保存データ関与部分のデータに対して、特定の演算を行った計算値であり、
前記各保存データ関与部分についての初期化制御処理における判定処理では、前記第１記憶手段に記憶されている各保存データ関与部分のうち、該当する保存データ関与部分のデータに対して前記特定の演算を行い、その計算値を、前記特定情報として抽出すること、
を特徴とする電子制御装置。
【請求項１２】
請求項８ないし請求項１１の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段を、前記各保存データ関与部分について複数個ずつ備え、
前記各保存データ関与部分についての初期化制御処理における判定処理では、前記第１記憶手段から抽出した特定情報と、該当する保存データ関与部分に対応する複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であるか否かを判定するように構成されていること、
を特徴とする電子制御装置。
【請求項１３】
請求項８ないし請求項１１の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段を、前記各保存データ関与部分について複数個ずつ備え、
前記各保存データ関与部分についての初期化制御処理における判定処理では、前記第１記憶手段から抽出した特定情報と、該当する保存データ関与部分に対応する複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であるか否かを判定するように構成されていること、
を特徴とする電子制御装置。
【請求項１４】
請求項８ないし請求項１３の何れか１項に記載の電子制御装置において、
前記特定情報記憶手段が正常か否かを検査する検査手段を備え、
前記検査手段により正常でないと判定された特定情報記憶手段に関して、その特定情報記憶手段に記憶されている特定情報が前記第１記憶手段から抽出した特定情報と不一致であるとの前記判定処理の判定結果は、無効化されるように構成されていること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのオンボード書き換えが可能な電子制御装置に関し、特に、車両のエンジンを制御する電子制御装置（エンジン制御装置）に関する。
【背景技術】
【０００２】
従来より、車両（自動車）のエンジンを制御する電子制御装置として、電気的に記憶内容の書き換えが可能なフラッシュメモリやＥＥＰＲＯＭ等の不揮発性メモリ（書換可能不揮発性メモリ）に、エンジンを制御するためのプログラム及びデータからなるエンジン制御用ソフトウェアを格納しておき、このようなメモリ内のソフトウェアを、外部装置からの要求に応じて、オンボード書き換え（メモリを搭載したままのオンボード状態での書き換え）可能に構成されたものがある（例えば、特許文献１参照）。
【０００３】
また、この種の電子制御装置では、エンジン制御用ソフトウェアの実行により更新されるデータのうち、動作電源の供給が停止されても継続して保存すべき学習値や故障診断情報（いわゆるダイアグコード）等のデータ（以下、継続保存データという）を、電源がバックアップされたＲＡＭ（バックアップＲＡＭ）や他の書換可能不揮発性メモリ内に継続的に記憶させるようになっている。
【０００４】
ここで、エンジン制御用ソフトウェアが書き換えられた場合、継続保存データを使用したり更新したりする部分のアルゴリズムが変わるため、それまで記憶していた継続保存データを初期化する必要がある。
【０００５】
このため、特許文献１に記載の電子制御装置では、制御用ソフトウェアを書き換える処理において、フラッシュメモリ内の更新マークを「未更新」から「更新」に変更しておき、また、イグニッションスイッチがオンされて起動した際に、フラッシュメモリ内の更新マークをチェックして、「更新」だった場合には学習値を初期化すると共に、更新マークを「未更新」に変更するようにしている。
【０００６】
そして、このような電子制御装置によれば、制御用ソフトウェアが書き換えられた後の最初の起動時にのみ学習値を初期化することができ、２回目以降の起動時からは、それまでの学習値を継続して用いることができる。
【０００７】
しかし、制御用ソフトウェアを、例えば、それと全く同一の制御用ソフトウェアに書き換えた場合には、それまでの継続保存データ（学習値や故障診断情報）を初期化する必要はない。そして、上記特許文献１の技術では、そのような場合でも、継続使用できる継続保存データを初期化してしまうという問題がある。
【０００８】
また、こうした問題を解決可能な技術として、特許文献２に記載のものがある。
特許文献２の装置では、学習値記憶手段に学習値を記憶させる処理を実行した時に用いられていた制御プログラムに対応付けられたチェックコードを記憶する学習値側チェックコード記憶手段と、制御プログラム記憶手段の記憶する制御プログラムに対応付けられたチェックコードを記憶する制御プログラム側チェックコード記憶手段とを備えている。そして、イグニッションスイッチのオンにより電源が投入されて起動すると、学習値側チェックコード記憶手段の記憶するチェックコードと、制御プログラム側チェックコード記憶手段の記憶するチェックコードとに基づいて、学習値記憶手段の記憶する学習値が利用可能かどうかを判断し、学習値が利用不能と判断した場合には、利用不能な学習値を利用可能な学習値に更新するための初期化を行うと共に、学習値側チェックコード記憶手段の記憶するチェックコードを、制御プログラム記憶手段の記憶する制御プログラムに対応付けられたチェックコードに更新し、その後、制御プログラムの実行を開始してエンジンの制御に移るようにしている。尚、特許文献２での学習値の「更新」は、特許文献１での学習値の「初期化」と同義である。
【特許文献１】特開２００２−１４９４３２号公報
【特許文献２】特開２０００−２５９４２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、上記特許文献２では、学習値記憶手段内の学習値を初期化するための処理が全て完了してから、エンジン制御用プログラムの実行に移るため、エンジン制御の開始が遅れることとなり、エンジンを速やかに始動させることが困難となる。具体的な現象としては、イグニッションスイッチがオンされて電子制御装置が起動した直後に、スタータスイッチがオンされてスタータによるクランキングが開始されても、少し遅れてから燃料噴射等のエンジン制御が実施されることとなる。このため、スタータスイッチのオンからエンジンが始動するまでの遅れ時間が長くなってしまい、車両の運転者に違和感を与えてしまう。特に、学習値がＥＥＰＲＯＭのようにデータ書き込み時間が比較的長いメモリに格納される場合には、学習値の初期化に時間がかかるため、この問題が顕著になる。
【００１０】
そこで、本発明は、エンジン制御用ソフトウェアのオンボード書き換えが可能な電子制御装置において、学習値や故障診断情報等の継続保存データを、本当に初期化が必要な場合にのみ初期化することができ、しかも、エンジンの始動性を良好に保つことができるようにすることを目的としている。
【課題を解決するための手段】
【００１１】
請求項１の電子制御装置は、電気的に記憶内容が書き換え可能な第１記憶手段内のエンジン制御用ソフトウェアを実行することにより車両のエンジンを制御すると共に、そのエンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべきデータ（以下、継続保存データという）を、第２記憶手段に継続的に記憶させるようになっている。また、この電子制御装置は、外部装置からの書換要求を受けると、第１記憶手段内のエンジン制御用ソフトウェアを、その外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行う。
【００１２】
更に、請求項１の電子制御装置は、第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報が記憶される特定情報記憶手段を備えている。
そして、この電子制御装置は、起動した際に、第１記憶手段から、その第１記憶手段内のエンジン制御用ソフトウェアに固有の特定情報を抽出して、その抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する判定処理と、その判定処理により不一致であると肯定判定された場合に、第２記憶手段内の継続保存データを初期化するデータ初期化処理と、そのデータ初期化処理により継続保存データが初期化される場合に、前記判定処理により第１記憶手段から今回抽出された特定情報を、特定情報記憶手段に更新記憶する更新処理と、を行うように構成されている。
【００１３】
このような請求項１の電子制御装置において、第１記憶手段内のエンジン制御用ソフトウェア（以下単に、ソフトウェアともいう）が、それまでのソフトウェアとは異なるものに書き換えられたならば、特定情報記憶手段内の特定情報は、書き換え前のソフトウェアに固有の特定情報となるため、第１記憶手段内のソフトウェア（即ち、書き換え後のソフトウェア）に固有の特定情報とは異なるものとなる。
【００１４】
そして、ソフトウェアの書き換えが行われた後の起動時において、判定処理では、第１記憶手段から、書き換え後のソフトウェアに固有の特定情報を抽出することとなる。
このため、異なるソフトウェアへの書き換えが行われた後の最初の起動時において、判定処理では、第１記憶手段から抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であると肯定判定することとなる。よって、データ初期化処理により、第２記憶手段内の継続保存データが初期化される。更に、この場合、判定処理により第１記憶手段から今回抽出された特定情報（即ち、書き換え後の新ソフトウェアに固有の特定情報）が、更新処理により特定情報記憶手段に更新記憶される。
【００１５】
そして、ソフトウェアが書き換えられた後の２回目以降の起動時において、特定情報記憶手段には、書き換え後のソフトウェアに固有の特定情報が既に記憶されているため、判定処理では、第１記憶手段から抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であると判定しなくなる（一致していると判定することとなる）。よって、第２記憶手段内の継続保存データは初期化されず、また、特定情報記憶手段内の特定情報も更新されない。
【００１６】
一方、第１記憶手段内のソフトウェアが、それまでのソフトウェアと同じものに書き換えられたとすると、特定情報記憶手段内の特定情報は、書き換え前のソフトウェアに固有の特定情報であるが、それは、書き換え後のソフトウェアに固有の特定情報と同じものとなる。
【００１７】
このため、同じソフトウェアへの書き換えが行われた後の最初の起動時においても、判定処理では、第１記憶手段から抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であると判定しなくなる。よって、第２記憶手段内の継続保存データは初期化されず、また、特定情報記憶手段内の特定情報も更新されない。
【００１８】
このように請求項１の電子制御装置によれば、ソフトウェアが書き換えられた後の２回目以降の起動時のみならず、同じソフトウェアへの書き換えが行われた後の最初の起動時においても、継続保存データは初期化されず、異なるソフトウェアへの書き換えが行われた後の最初の起動時においてのみ、継続保存データが初期化されるようにすることができる。つまり、継続保存データを、本当に初期化が必要な場合にのみ初期化することができるようになる。
【００１９】
そして更に、請求項１の電子制御装置では、起動した際に、すぐに第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、前記判定処理、データ初期化処理、及び更新処理は、そのエンジン制御用ソフトウェアの実行と並行して実行される。このため、エンジン制御の開始が遅れることはなく、エンジンの始動性を良好に保つことができる。
【００２０】
一方、請求項２の電子制御装置は、請求項１の電子制御装置と同様の特定情報記憶手段を備えると共に、請求項１の電子制御装置と同様の判定処理、データ初期化処理、及び更新処理を実行するようになっている。
【００２１】
そして、請求項２の電子制御装置は、請求項１の電子制御装置と比較すると、下記の点が異なっている。
まず、データ初期化処理では、第２記憶手段内の継続保存データのうち、エンジンを始動させるのに使用される継続保存データ（以下、始動時使用データという）を、他の継続保存データよりも先に初期化するようになっている。
【００２２】
そして、判定処理により不一致であると肯定判定された場合には、始動時使用データのデータ初期化処理による初期化が完了した時点で、第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、その後は、エンジン制御用ソフトウェアの実行と並行してデータ初期化処理（即ち、始動時使用データ以外の継続保存データを初期化する処理）及び更新処理が実行されるようになっている。尚、判定処理により不一致であると肯定判定されなかった場合には、データ初期化処理及び更新処理が行われず、その判定処理の終了時点から第１記憶手段内のエンジン制御用ソフトウェアの実行が開始されることとなる。
【００２３】
このような請求項２の電子制御装置によれば、請求項１の電子制御装置と同様の効果が得られる上に、異なるエンジン制御用ソフトウェアへの書き換えが行われた後の最初の起動時においては、始動時使用データが新たなエンジン制御用ソフトウェアに適合するものに初期化されてから、その新エンジン制御用ソフトウェアの実行が開始されることとなる。よって、エンジンの始動性を良好に保ちつつ最初から適切なエンジン制御を確実に実施できるという利点がある。
【００２４】
ところで、請求項１，２の電子制御装置において、ソフトウェアに固有の特定情報としては、ソフトウェアのバージョンを示すバージョン情報が考えられる。そして、この場合、請求項３に記載のように構成することができる。
【００２５】
即ち、請求項３の電子制御装置では、特定情報が、ソフトウェアのバージョン情報であると共に、第１記憶手段には、ソフトウェアの書換処理が行われる場合に、外部装置から送信されて来たソフトウェアのバージョン情報が書き込まれるようになっている。そして、判定処理では、第１記憶手段に書き込まれたバージョン情報を特定情報として抽出し、その第１記憶手段内のバージョン情報と、特定情報記憶手段内の特定情報としてのバージョン情報とが不一致であるか否かを判定する。
【００２６】
このような請求項３の電子制御装置によれば、同じバージョンのソフトウェアへの書き換えが行われても、継続保存データは初期化されず、異なるバージョンのソフトウェアへの書き換えが行われた後の最初の起動時においてのみ、継続保存データが初期化されるようにすることができる。
【００２７】
また、ソフトウェアに固有の特定情報としては、ソフトウェアのうちの特定領域のデータに対して、特定の演算を行った計算値が考えられる。尚、特定領域としては、ソフトウェアの全部であっても一部であっても良い。そして、この場合、請求項４に記載のように構成することができる。
【００２８】
即ち、請求項４の電子制御装置では、特定情報が、ソフトウェアのうちの特定領域のデータに対して、特定の演算を行った計算値であり、判定処理では、第１記憶手段内のソフトウェアのうちの特定領域のデータに対して、特定の演算を行い、その計算値を特定情報として抽出し、更に、その計算値と、特定情報記憶手段内の特定情報としての計算値とが不一致であるか否かを判定する。
【００２９】
このような請求項４の電子制御装置によれば、仮にバージョンが同じであっても実際に内容の異なるソフトウェアへの書き換えが行われたならば、その後の最初の起動時において、継続保存データを初期化することができる。
【００３０】
次に、請求項５の電子制御装置では、請求項１〜４の電子制御装置において、特定情報記憶手段を複数備えている。そして、判定処理では、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であるか否かを判定するようになっている。尚、判定処理により不一致であると肯定判定されると、第２記憶手段内の継続保存データが初期化されると共に、判定処理により第１記憶手段から今回抽出された特定情報が、複数の特定情報記憶手段に更新記憶される。
【００３１】
この構成によれば、第１記憶手段から抽出される特定情報とは異なる特定情報が複数の特定情報記憶手段に記憶されているはずの状況で、何れかの特定情報記憶手段内の特定情報が、第１記憶手段から抽出される特定情報と一致する側にデータ化けしたとしても、判定処理により肯定判定（即ち、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であると判定）されることとなり、延いては、継続保存データを初期化することができるようになる。
【００３２】
次に、請求項６の電子制御装置では、請求項１〜４の電子制御装置において、特定情報記憶手段を複数備えている。そして、判定処理では、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であるか否かを判定するようになっている。尚、判定処理により不一致であると肯定判定されると、第２記憶手段内の継続保存データが初期化されると共に、判定処理により第１記憶手段から今回抽出された特定情報が、複数の特定情報記憶手段に更新記憶される。
【００３３】
この構成によれば、第１記憶手段から抽出される特定情報と同じ特定情報が複数の特定情報記憶手段に記憶されているはずの状況で、何れかの特定情報記憶手段内の特定情報が、第１記憶手段から抽出される特定情報と不一致の側にデータ化けしたとしても、判定処理により肯定判定（即ち、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であると判定）されず、延いては、継続保存データが誤って初期化されてしまうことを防止することができる。
【００３４】
次に、請求項７の電子制御装置では、請求項１〜６の電子制御装置において、特定情報記憶手段が正常か否かを検査する検査手段を備えている。そして、検査手段により正常でないと判定された特定情報記憶手段に関して、その特定情報記憶手段に記憶されている特定情報が第１記憶手段から抽出した特定情報と不一致であるとの判定処理の判定結果は、無効化されるようになっている。
【００３５】
この構成によれば、特定情報記憶手段が故障したことにより継続保存データが誤って初期化されてしまうことを防止することができる。
一方、請求項８の電子制御装置は、請求項１の電子制御装置と同様に、電気的に記憶内容が書き換え可能な第１記憶手段内のエンジン制御用ソフトウェアを実行することにより車両のエンジンを制御すると共に、そのエンジン制御用ソフトウェアの実行により更新されるデータのうち、当該装置への動作電源の供給が停止されても継続して保存すべき継続保存データを、第２記憶手段に継続的に記憶させるようになっている。また、この電子制御装置も、外部装置からの書換要求を受けると、第１記憶手段内のエンジン制御用ソフトウェアを、その外部装置から送信されて来るエンジン制御用ソフトウェアに書き換える書換処理を行う。
【００３６】
ここで、請求項８の電子制御装置では、継続保存データが複数あると共に、第１記憶手段に記憶されるエンジン制御用ソフトウェアのうち、各継続保存データにそれぞれ関与する部分（以下、保存データ関与部分という）の各々について、特定情報記憶手段が設けられている。そして、その各特定情報記憶手段には、該当する（即ち、それに対応する）保存データ関与部分に固有の特定情報が記憶される。尚、継続保存データに関与する部分（保存データ関与部分）とは、その継続保存データを更新したり参照したりする部分であり、その部分が変更されたならば、継続保存データの初期化が必要になる部分である。
【００３７】
更に、請求項８の電子制御装置では、起動した際に、保存データ関与部分の各々について、判定処理、データ初期化処理、及び更新処理からなる初期化制御処理を実行する。
判定処理は、第１記憶手段から、該当する保存データ関与部分に固有の特定情報を抽出して、その抽出した特定情報と、該当する保存データ関与部分に対応した特定情報記憶手段に記憶されている特定情報とが不一致であるか否かを判定する処理である。
【００３８】
また、データ初期化処理は、判定処理により不一致であると肯定判定された場合に実行され、該当する保存データ関与部分に対応した第２記憶手段内の継続保存データを初期化する処理である。
【００３９】
そして、更新処理は、データ初期化処理により継続保存データの初期化が行われる場合に、判定処理により第１記憶手段から今回抽出された特定情報を、該当する保存データ関与部分に対応した特定情報記憶手段に更新記憶する処理である。
【００４０】
つまり、請求項８の電子制御装置では、制御用ソフトウェアにおける保存データ関与部分の各々について、請求項１の電子制御装置と同様の手法を採っている。
このような請求項８の電子制御装置において、例えば、第１記憶手段内のソフトウェアが、保存データ関与部分Ｓａ，Ｓｂ，Ｓｃのうちの保存データ関与部分Ｓａだけが異なるソフトウェアに書き換えられたとする。
【００４１】
この場合、保存データ関与部分Ｓｂ，Ｓｃの各々に対応する特定情報記憶手段Ｍｂ，Ｍｃ内の各特定情報は、第１記憶手段内のソフトウェア（書き換え後の新ソフトウェア）における保存データ関与部分Ｓｂ，Ｓｃに固有の各特定情報と同じになる。ソフトウェアの書き換えが行われても、保存データ関与部分Ｓｂ，Ｓｃは新・旧ソフトウェアで同じためである。これに対して、保存データ関与部分Ｓａは変更されるため、その保存データ関与部分Ｓａに対応する特定情報記憶手段Ｍａ内の特定情報は、第１記憶手段内のソフトウェアにおける保存データ関与部分Ｓａに固有の特定情報とは異なるものとなる。
【００４２】
そして、ソフトウェアの書き換えが行われた後の起動時において、各保存データ関与部分Ｓａ〜Ｓについての初期化制御処理における判定処理では、保存データ関与部分Ｓａ〜Ｓｃの各々について、第１記憶手段から、その第１記憶手段内のソフトウェアにおける保存データ関与部分Ｓａ〜Ｓｃに固有の特定情報を抽出することとなる。
【００４３】
このため、ソフトウェアの書き換えが行われた後の最初の起動時においては、保存データ関与部分Ｓａについての初期化制御処理における判定処理でのみ、第１記憶手段から抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であると肯定判定することとなる。
【００４４】
よって、保存データ関与部分Ｓａ，Ｓｂ，Ｓｃの各々に対応する継続保存データのうち、保存データ関与部分Ｓａに対応する継続保存データだけが初期化される。更に、この場合、保存データ関与部分Ｓａについて第１記憶手段から今回抽出された特定情報（即ち、書き換え後の新たな保存データ関与部分Ｓａに固有の特定情報）が、特定情報記憶手段Ｍａに更新記憶される。
【００４５】
そして、ソフトウェアが書き換えられた後の２回目以降の起動時においては、書き換え後の新たな保存データ関与部分Ｓａに固有の特定情報が、特定情報記憶手段Ｍａに記憶されていることとなる。よって、保存データ関与部分Ｓｂ，Ｓｃの各々についての初期化制御処理だけでなく、保存データ関与部分Ｓａについての初期化制御処理においても、判定処理では、第１記憶手段から抽出した特定情報と、特定情報記憶手段に記憶されている特定情報とが不一致であると判定しなくなる（一致していると判定することとなる）。よって、保存データ関与部分Ｓａ〜Ｓｃに対応する継続保存データは全て初期化されず、また、特定情報記憶手段Ｍａ〜Ｍｃ内の特定情報も更新されない。
【００４６】
このように請求項８の電子制御装置によれば、ソフトウェアの書き換えが行われた後の最初の起動時において、複数の保存データ関与部分のうち、変更された保存データ関与部分に対応する継続保存データだけを初期化することができるようになる。つまり、初期化の必要がある継続保存データだけを初期化することができる。
【００４７】
そして更に、請求項８の電子制御装置では、起動した際に、すぐに第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、保存データ関与部分の各々についての初期化制御処理は、そのエンジン制御用ソフトウェアの実行と並行して実行される。このため、エンジン制御の開始が遅れることはなく、エンジンの始動性を良好に保つことができる。
【００４８】
一方、請求項９の電子制御装置は、保存データ関与部分の各々について、請求項８の電子制御装置と同様の特定情報記憶手段を備えている。また、起動した際には、保存データ関与部分の各々について、請求項８の電子制御装置と同様の初期化制御処理を実行するようになっている。
【００４９】
そして、請求項９の電子制御装置は、請求項８の電子制御装置と比較すると、下記の点が異なっている。
まず、各保存データ関与部分についての初期化制御処理は、第２記憶手段内の継続保存データのうち、始動時使用データ（エンジンを始動させるのに使用される継続保存データ）に対応する保存データ関与部分についての初期化制御処理が、他の継続保存データに対応する保存データ関与部分についての初期化制御処理よりも先に実行されるようになっている。
【００５０】
そして、始動時使用データに対応する保存データ関与部分についての初期化制御処理が終了した時点で、第１記憶手段内のエンジン制御用ソフトウェアの実行が開始され、その後は、エンジン制御用ソフトウェアの実行と並行して、他の継続保存データに対応する保存データ関与部分についての初期化制御処理が実行されるようになっている。
【００５１】
このような請求項９の電子制御装置によれば、請求項８の電子制御装置と同様の効果が得られる上に、第１記憶手段内のエンジン制御用ソフトウェアが始動時使用データに関与する部分の異なるものへ書き換えられた後の最初の起動時においては、始動時使用データが新たなエンジン制御用ソフトウェアに適合するものに初期化されてから、その新エンジン制御用ソフトウェアの実行が開始されることとなる。よって、エンジンの始動性を良好に保ちつつ最初から適切なエンジン制御を確実に実施できるという利点がある。
【００５２】
ところで、請求項８，９の電子制御装置において、保存データ関与部分に固有の特定情報としては、その保存データ関与部分のバージョンを示すバージョン情報が考えられる。そして、この場合、請求項１０に記載のように構成することができる。
【００５３】
即ち、請求項１０の電子制御装置では、特定情報が、保存データ関与部分のバージョン情報であると共に、第１記憶手段には、ソフトウェアの書換処理が行われる場合に、外部装置から送信されて来たソフトウェアにおける各保存データ関与部分のバージョン情報が書き込まれるようになっている。そして、各保存データ関与部分についての初期化制御処理における判定処理では、該当する保存データ関与部分のバージョン情報を、第１記憶手段から前記特定情報として抽出する。
【００５４】
このような請求項１０の電子制御装置によれば、複数の保存データ関与部分のうち、異なるバージョンに変更された保存データ関与部分に対応する継続保存データのみが初期化されるようにすることができる。
【００５５】
また、保存データ関与部分に固有の特定情報としては、その保存データ関与部分のデータに対して、特定の演算を行った計算値が考えられる。そして、この場合、請求項１１に記載のように構成することができる。
【００５６】
即ち、請求項１１の電子制御装置では、特定情報が、保存データ関与部分のデータに対して、特定の演算を行った計算値である。そして、各保存データ関与部分についての初期化制御処理における判定処理では、第１記憶手段に記憶されている各保存データ関与部分のうち、該当する保存データ関与部分のデータに対して前記特定の演算を行い、その計算値を、前記特定情報として抽出する。
【００５７】
このような請求項１１の電子制御装置によれば、ソフトウェアの書き換えによって、保存データ関与部分が、仮にバージョンが同じであっても実際に内容の異なるものに変更されたならば、その後の最初の起動時において、その保存データ関与部分に対応する継続保存データを初期化することができる。
【００５８】
次に、請求項１２の電子制御装置では、請求項８〜１１の電子制御装置において、特定情報記憶手段を、各保存データ関与部分について複数個ずつ備えている。そして、各保存データ関与部分についての初期化制御処理における判定処理では、第１記憶手段から抽出した特定情報と、該当する保存データ関与部分に対応する複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であるか否かを判定するようになっている。尚、判定処理により不一致であると肯定判定された保存データ関与部分（以下、不一致判定保存データ関与部分という）については、それに対応する継続保存データが初期化されると共に、判定処理により第１記憶手段から今回抽出された特定情報が、その不一致判定保存データ関与部分に対応した複数の特定情報記憶手段に更新記憶される。
【００５９】
この構成によれば、何れかの保存データ関与部分について、第１記憶手段から抽出される特定情報とは異なる特定情報が複数の特定情報記憶手段に記憶されているはずの状況で、仮に、何れかの特定情報記憶手段内の特定情報が、第１記憶手段から抽出される特定情報と一致する側にデータ化けしたとしても、判定処理により肯定判定（即ち、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の少なくとも１つとが不一致であると判定）されることとなり、延いては、その保存データ関与部分に対応する継続保存データを初期化することができるようになる。
【００６０】
次に、請求項１３の電子制御装置では、請求項８〜１１の電子制御装置において、特定情報記憶手段を、各保存データ関与部分について複数個ずつ備えている。そして、各保存データ関与部分についての初期化制御処理における判定処理では、第１記憶手段から抽出した特定情報と、該当する保存データ関与部分に対応する複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であるか否かを判定するようになっている。尚、判定処理により不一致であると肯定判定された保存データ関与部分（不一致判定保存データ関与部分）については、それに対応する継続保存データが初期化されると共に、判定処理により第１記憶手段から今回抽出された特定情報が、その不一致判定保存データ関与部分に対応した複数の特定情報記憶手段に更新記憶される。
【００６１】
この構成によれば、何れかの保存データ関与部分について、第１記憶手段から抽出される特定情報と同じ特定情報が複数の特定情報記憶手段に記憶されているはずの状況で、仮に、何れかの特定情報記憶手段内の特定情報が、第１記憶手段から抽出される特定情報と不一致の側にデータ化けしたとしても、判定処理により肯定判定（即ち、第１記憶手段から抽出した特定情報と、複数の特定情報記憶手段にそれぞれ記憶されている特定情報の全てとが不一致であると判定）されず、延いては、その保存データ関与部分に対応する継続保存データが誤って初期化されてしまうことを防止することができる。
【００６２】
次に、請求項１４の電子制御装置では、請求項８〜１３の電子制御装置において、特定情報記憶手段が正常か否かを検査する検査手段を備えている。そして、検査手段により正常でないと判定された特定情報記憶手段に関して、その特定情報記憶手段に記憶されている特定情報が第１記憶手段から抽出した特定情報と不一致であるとの判定処理の判定結果は、無効化されるようになっている。
【００６３】
この構成によれば、特定情報記憶手段が故障したことにより継続保存データが誤って初期化されてしまうことを防止することができる。
【発明を実施するための最良の形態】
【００６４】
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置は、車両のエンジンを制御するエンジン制御装置である。
［第１実施形態］
まず図１に示すように、第１実施形態の電子制御装置（以下、ＥＣＵという）１は、通信線１１を介して他のＥＣＵ２，３と接続されている。
【００６５】
そして、ＥＣＵ１は、通信線１１を介した通信により他のＥＣＵ２，３と情報を共有し、その情報を用いてエンジンを制御する。尚、例えば、ＥＣＵ２はトランスミッションを制御し、ＥＣＵ３はパワーウィンドウやドアロック等のボデー系機器を制御する。
【００６６】
ここで、ＥＣＵ１は、そのＥＣＵの動作を司るＣＰＵ２１と、ＣＰＵ２１によって実行されるソフトウェア（詳しくは、プログラム及びそのプログラムの実行時に参照されるデータ）が記憶されるフラッシュメモリ２２及び書換不能なＲＯＭ２３と、電源バックアップされた（電源が常時供給された）バックアップＲＡＭ２４と、フラッシュメモリ２２とは別の書換可能不揮発性メモリであるＥＥＰＲＯＭ２５とを備えている。
【００６７】
フラッシュメモリ２２には、エンジンを制御するためのソフトウェア（エンジン制御用ソフトウェア）と、そのソフトウェアのバージョン情報とが記憶される。
ＲＯＭ２３には、エンジン制御用ソフトウェア以外のソフトウェアであって、例えば、フラッシュメモリ２２の記憶内容を書き換えるためのソフトウェアが記憶されている。
【００６８】
ＥＥＰＲＯＭ２５には、継続保存データ記憶領域と、特定情報記憶領域とが設けられている。そして、継続保存データ記憶領域には、ＣＰＵ２１がエンジン制御用ソフトウェアを実行することで更新されるデータのうち、当該ＥＣＵ１への動作電源の供給が停止されても継続して保存すべき学習値や故障診断情報等の継続保存データが記憶される。尚、こうした継続保存データのうちの学習値は、エンジン制御用ソフトウェアの実行時に参照されて、エンジンの制御に使用される。また、特定情報記憶領域には、フラッシュメモリ２２内のエンジン制御用ソフトウェアに固有の特定情報として、そのエンジン制御用ソフトウェアのバージョン情報が記憶される。
【００６９】
そして、ＥＣＵ１は、車両のイグニッションスイッチがオンされると、動作電源が供給されて動作する。また、図示は省略しているが、ＥＣＵ１には、バックアップＲＡＭ２４とは別に、電源バックアップされていない通常のＲＡＭも備えられている。
【００７０】
一方、図１に示すように、通信線１１には、外部装置としてのプログラム書換ツール（以下単に、ツールという）１５がコネクタ１３を介して接続されるようになっている。そして、ＥＣＵ１は、ツール１５からの書換要求を受けると、フラッシュメモリ２２内のソフトウェアを、そのツール１５から送信されて来るソフトウェアに書き換えるようになっている。
【００７１】
そこで次に、ＥＣＵ１のＣＰＵ２１によって実行される処理について説明する。
まず図２は、エンジン制御用ソフトウェアを書き換えるための書換制御処理を表すフローチャートである。尚、この書換制御処理は、図示しない通信処理によってツール１５からの書換要求を受信したと判定された場合に実行される。また、この書換制御処理のソフトウェアは、ＲＯＭ２３内に予め格納されているが、例えば、ツール１５から受信して通常のＲＡＭ上で実行されるようになっていても良い。
【００７２】
図２に示すように、書換制御処理の実行が開始されると、まずＳ１１０にて、ツール１５からの書換要求が受信されたか否かを念のため判定する。そして、書換要求が受信されていないと判定したならば（Ｓ１１０：ＮＯ）、そのまま当該書換制御処理を終了するが、書換要求が受信されたと判定したならば（Ｓ１１０：ＹＥＳ）、Ｓ１２０に進む。
【００７３】
Ｓ１２０では、フラッシュメモリ２２内のソフトウェアを書き換えるための書換処理を行う。具体的には、ツール１５から送信されて来るエンジン制御用ソフトウェアを受信して、その受信したエンジン制御用ソフトウェアをフラッシュメモリ２２に上書きする。
【００７４】
次に、Ｓ１３０にて、フラッシュメモリ２２へ、今回書き換えた新たなエンジン制御用ソフトウェアのバージョン情報を書き込む。つまり、本実施形態において、ツール１５は、エンジン制御用ソフトウェアと共に、そのエンジン制御用ソフトウェアのバージョン情報も送信するようになっている。よって、ＥＣＵ１では、そのツール１５からのバージョン情報もフラッシュメモリ２２に更新記憶する。
【００７５】
そして、次のＳ１４０にて、ツール１５へ書換完了通知を送信し、その後、当該書換制御処理を終了する。尚、ツール１５においては、ＥＣＵ１からの書換完了通知を受信すると、ソフトウェアの書き換えが終了したと判断し、例えば、その旨を該ツール１５の表示部に表示する。
【００７６】
次に図３は、ＥＣＵ１が起動すると実行される処理を表すフローチャートである。
イグニッションスイッチのオンに伴いＥＣＵ１が起動すると、図３（Ａ）に示すように、ＣＰＵ２１がフラッシュメモリ２２内のエンジン制御用ソフトウェアの実行を開始し、これにより、以後、イグニッションスイッチがオフされてＥＣＵ１が動作を停止するまで、エンジンを制御するためのエンジン制御処理が行われる（Ｓ１００）。
【００７７】
また、ＥＣＵ１が起動すると、図３（Ｂ）に示すように、ＣＰＵ２１は初期化制御処理も実行する。つまり、初期化制御処理は、エンジン制御用ソフトウェアの実行と並行して実行される。尚、初期化制御処理のソフトウェアは、ＲＯＭ２３内に格納されていても良いし、フラッシュメモリ２２内にエンジン制御用ソフトウェアの一部として格納されていても良い。
【００７８】
そして、図３に示すように、初期化制御処理の実行が開始されると、まずＳ２１０にて、フラッシュメモリ２２から、そのフラッシュメモリ２２に記憶されているエンジン制御用ソフトウェアのバージョン情報を読み出して取得する。
【００７９】
次にＳ２２０にて、ＥＥＰＲＯＭ２５から（詳しくは、特定情報記憶領域から）、エンジン制御用ソフトウェアのバージョン情報を読み出して取得する。尚、ここで読み出されるＥＥＰＲＯＭ２５内のバージョン情報は、後述するＳ２５０で以前に記憶されたものである。
【００８０】
次に、Ｓ２３０にて、Ｓ２１０でフラッシュメモリ２２から取得したバージョン情報（フラッシュメモリ２２内のバージョン情報）と、Ｓ２２０でＥＥＰＲＯＭ２５から取得したバージョン情報（ＥＥＰＲＯＭ２５内のバージョン情報）とを比較し、その両バージョン情報が不一致であるか否かを判定する。
【００８１】
そして、フラッシュメモリ２２内のバージョン情報とＥＥＰＲＯＭ２５内のバージョン情報とが一致していると判定したならば（Ｓ２３０：一致）、そのまま当該初期化制御処理を終了する。尚、初期化制御処理が終了すると、フラッシュメモリ２２内のエンジン制御用ソフトウェアだけが実行される状態となる。
【００８２】
一方、上記Ｓ２３０にて、フラッシュメモリ２２内のバージョン情報とＥＥＰＲＯＭ２５内のバージョン情報とが不一致であると判定したならば（Ｓ２３０：不一致）、Ｓ２４０に進み、ＥＥＰＲＯＭ２５内（詳しくは、継続保存データ記憶領域内）の継続保存データを初期化する。例えば、ツール１５によってフラッシュメモリ２２内にエンジン制御用ソフトウェアの一部として書き込まれた継続保存データの初期値を、ＥＥＰＲＯＭ２５の継続保存データ記憶領域に転送して、その継続保存データ記憶領域内の継続保存データを上記初期値に書き換える。また、継続保存データによっては、そのデータ値を０にする処理でも良い。
【００８３】
そして、次のＳ２５０にて、Ｓ２１０でフラッシュメモリ２２から取得したバージョン情報を、ＥＥＰＲＯＭ２５の特定情報記憶領域に更新記憶する。つまり、ＥＥＰＲＯＭ２５内のバージョン情報を、フラッシュメモリ２２内のバージョン情報に書き換える。そして、その後、当該初期化制御処理を終了する。
【００８４】
次に、図２，図３の処理による作用について、図４を用い説明する。尚、ここでは、書き換える前のエンジン制御用ソフトウェアを、旧ソフトウェアと言い、その旧ソフトウェアのバージョン情報を、旧バージョン情報という。そして、書き換えた後のエンジン制御用ソフトウェアを、新ソフトウェアと言い、その新ソフトウェアのバージョン情報を、新バージョン情報という。
【００８５】
まず、図４の１に示すように、エンジン制御用ソフトウェアの書き換え（リプログラミング）を実施する前は、フラッシュメモリ２２に旧ソフトウェアと旧バージョン情報が記憶されており、また、ＥＥＰＲＯＭ２５には、フラッシュメモリ２２内のバージョン情報と同じ旧バージョン情報が記憶されている。
【００８６】
そして、図４の２に示すように、エンジン制御用ソフトウェアの書き換えが実施されると、フラッシュメモリ２２内のソフトウェアとバージョン情報が、新ソフトウェアと新バージョン情報に書き換えられる（Ｓ１２０，Ｓ１３０）。
【００８７】
ここで、フラッシュメモリ２２内のソフトウェアが、それまでの旧ソフトウェアとは異なるバージョンのものに書き換えられたならば、ＥＥＰＲＯＭ２５内の旧バージョン情報は、フラッシュメモリ２２内の新バージョン情報とは異なるものとなる。
【００８８】
このため、図４の３に示すように、異バージョンのソフトウェアへの書き換えが行われた後の最初の起動時において、図３（Ｂ）の初期化制御処理が実行されると、Ｓ２３０では、フラッシュメモリ２２内のバージョン情報（新バージョン情報）と、ＥＥＰＲＯＭ２５内のバージョン情報（旧バージョン情報）とが不一致であると判定される。よって、Ｓ２４０にて、ＥＥＰＲＯＭ２５における継続保存データ記憶領域内の継続保存データが初期化され、Ｓ２５０にて、ＥＥＰＲＯＭ２５内のバージョン情報が、それまでの旧バージョン情報からフラッシュメモリ２２内の新バージョン情報に更新される。
【００８９】
そして、図４の４に示すように、エンジン制御用ソフトウェアが書き換えられた後の２回目以降の起動時においては、ＥＥＰＲＯＭ２５に、フラッシュメモリ２２内のバージョン情報と同じ新バージョン情報が既に記憶されていることとなる。よって、図３（Ｂ）の初期化制御処理が実行されると、Ｓ２３０では、フラッシュメモリ２２内のバージョン情報（新バージョン情報）と、ＥＥＰＲＯＭ２５内のバージョン情報（新バージョン情報）とが一致していると判定される。このため、ＥＥＰＲＯＭ２５における継続保存データ記憶領域内の継続保存データは初期化されず、また、ＥＥＰＲＯＭ２５内のバージョン情報も更新されない。
【００９０】
一方、フラッシュメモリ２２内のソフトウェアが、それまでの旧ソフトウェアと同じバージョンのものに書き換えられたとすると、図４の２において、ＥＥＰＲＯＭ２５内の旧バージョン情報は、フラッシュメモリ２２内の書き換え後の新バージョン情報と同じものとなる。
【００９１】
このため、同バージョンのソフトウェアへの書き換えが行われた後の最初の起動時においても、２回目以降の起動時と同様に、図３（Ｂ）のＳ２３０では、フラッシュメモリ２２内のバージョン情報と、ＥＥＰＲＯＭ２５内のバージョン情報とが一致していると判定され、その結果、継続保存データは初期化されず、また、ＥＥＰＲＯＭ２５内のバージョン情報も更新されない。
【００９２】
尚、フラッシュメモリ２２にエンジン制御用ソフトウェアが最初に書き込まれた後の最初の起動時においては、ＥＥＰＲＯＭ２５にバージョン情報が記憶されていないが、この場合、図３（Ｂ）のＳ２３０で“不一致”と判定されて、Ｓ２４０で継続保存データが初期化され、更に、Ｓ２５０で、フラッシュメモリ２２に記憶されているエンジン制御用ソフトウェアのバージョン情報がＥＥＰＲＯＭ２５の特定情報記憶領域に新規に記憶されることなる。このため、次回以降の起動時には、図４の４の状態（即ち、エンジン制御用ソフトウェアが書き換えられた後の２回目以降の起動時）と同じ動作となる。
【００９３】
このように本実施形態のＥＣＵ１によれば、フラッシュメモリ２２内のエンジン制御用ソフトウェアが書き換えられた後の２回目以降の起動時のみならず、同じエンジン制御用ソフトウェアへの書き換えが行われた後の最初の起動時においても、継続保存データは初期化されず、異なるエンジン制御用ソフトウェアへの書き換えが行われた後の最初の起動時においてのみ、継続保存データが初期化されるようにすることができる。つまり、継続保存データを、本当に初期化が必要な場合にのみ初期化することができるようになる。
【００９４】
しかも、本実施形態のＥＣＵ１では、起動した際に、すぐにフラッシュメモリ２２内のエンジン制御用ソフトウェアの実行が開始され、初期化制御処理は、そのエンジン制御用ソフトウェアの実行と並行して実行される。このため、エンジン制御の開始が遅れることはなく、エンジンの始動性を良好に保つことができる。
【００９５】
尚、本第１実施形態では、フラッシュメモリ２２が第１記憶手段に相当し、ＥＥＰＲＯＭ２５の継続保存データ記憶領域が第２記憶手段に相当している。また、ＥＥＰＲＯＭ２５の特定情報記憶領域が、特定情報記憶手段に相当している。そして、図３（Ｂ）の初期化制御処理のうち、Ｓ２１０〜Ｓ２３０の処理が判定処理に相当し、Ｓ２４０の処理がデータ初期化処理に相当し、Ｓ２５０の処理が更新処理に相当している。
［第２実施形態］
次に、第２実施形態について説明する。尚、第２実施形態以降の各実施形態のＥＣＵは、ハードウェア面においては、第１実施形態と同じである。このため、第２実施形態以降の各実施形態において、構成要素の符号としては、第１実施形態と同じものを用いる。
【００９６】
第２実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、下記（１−１），（１−２）の点が異なっている。
（１−１）：図２の書換制御処理では、Ｓ１３０が削除されている。また、このため、ツール１５からＥＣＵ１へ、エンジン制御用ソフトウェアのバージョン情報は送信されない。
【００９７】
（１−２）：図３（Ｂ）の初期化制御処理に代えて、図５の初期化制御処理が実行される。
そして、図５の初期化制御処理が開始されると、まずＳ３１０にて、フラッシュメモリ２２から、エンジン制御用ソフトウェアのうちの特定領域のデータを読み出し、その特定領域のデータに対して、予め定められた特定の計算を行う。尚、本実施形態では、特定の計算として、サム値（チェックサム値）を求める計算を行う。そして、ここで求めるサム値が、フラッシュメモリ２２内のエンジン制御用ソフトウェアに固有で、且つ、そのフラッシュメモリ２２から抽出される特定情報に相当する。また、サム値の算出対象とする特定領域としては、エンジン制御用ソフトウェアの全部であることが好ましいが、例えば、先頭から所定分とか、最後尾から所定分といった具合に、一部であっても良い。
【００９８】
次にＳ３２０にて、ＥＥＰＲＯＭ２５の特定情報記憶領域から、エンジン制御用ソフトウェアの特定領域のデータについて以前に求められたサム値を読み出して取得する。尚、ここで読み出されるＥＥＰＲＯＭ２５内のサム値は、後述するＳ３５０で以前に記憶されたものである。
【００９９】
次に、Ｓ３３０にて、Ｓ３１０で算出したサム値と、Ｓ３２０でＥＥＰＲＯＭ２５から読み出したサム値（ＥＥＰＲＯＭ２５内のサム値）とを比較し、その両サム値が不一致であるか否かを判定する。
【０１００】
そして、Ｓ３１０で算出したサム値とＥＥＰＲＯＭ２５内のサム値とが一致していると判定したならば（Ｓ３３０：一致）、そのまま当該初期化制御処理を終了する。
一方、上記Ｓ３３０にて、Ｓ３１０で算出したサム値とＥＥＰＲＯＭ２５内のサム値とが不一致であると判定したならば（Ｓ３３０：不一致）、Ｓ３４０に進み、図３（Ｂ）のＳ２４０と同様に、ＥＥＰＲＯＭ２５における継続保存データ記憶領域内の継続保存データを初期化する。
【０１０１】
そして、次のＳ３５０にて、Ｓ３１０で今回算出したサム値をＥＥＰＲＯＭ２５の特定情報記憶領域に更新記憶する。つまり、ＥＥＰＲＯＭ２５内のサム値を、Ｓ３１０で今回算出したサム値に書き換える。そして、その後、当該初期化制御処理を終了する。
【０１０２】
以上のような本第２実施形態では、第１実施形態と比較すると、バージョン情報の代わりに、エンジン制御用ソフトウェアの特定領域のデータについて算出したサム値を用いている。
【０１０３】
そして、本第２実施形態の作用は、図４を用いて説明した第１実施形態の作用と比較すると、「バージョン情報」が「サム値」に置き換えられると共に、フラッシュメモリ２２内にサム値が記憶されるのではなく、ＥＥＰＲＯＭ２５内のサム値と比較されるのが、フラッシュメモリ２２内のエンジン制御用ソフトウェアから算出されるサム値となる点が異なる。
【０１０４】
つまり、フラッシュメモリ２２内のソフトウェアが、それまでの旧ソフトウェアとは異なるものに書き換えられた場合、ＥＥＰＲＯＭ２５内のサム値は、フラッシュメモリ２２内の新ソフトウェアから求められるサム値とは異なるものとなる。
【０１０５】
このため、異なるソフトウェアへの書き換えが行われた後の最初の起動時において、図５の初期化制御処理が実行されると、Ｓ３３０では、フラッシュメモリ２２内のソフトウェアから求められるサム値と、ＥＥＰＲＯＭ２５内のサム値とが不一致であると判定される。そして、Ｓ３４０にて、継続保存データが初期化され、Ｓ３５０にて、ＥＥＰＲＯＭ２５内のサム値が、フラッシュメモリ２２内の新ソフトウェアから求められたサム値に更新される。
【０１０６】
一方、エンジン制御用ソフトウェアが書き換えられた後の２回目以降の起動時、又は、フラッシュメモリ２２内のソフトウェアがそれまでの旧ソフトウェアと同じものに書き換えられた後の最初の起動時においては、ＥＥＰＲＯＭ２５内のサム値が、フラッシュメモリ２２内のソフトウェアから求められるサム値と同じになる。よって、この場合の起動時においては、図５のＳ３３０にて“一致”と判定されて、継続保存データは初期化されず、また、ＥＥＰＲＯＭ２５内のサム値も更新されない。
【０１０７】
このような第２実施形態のＥＣＵ１によれば、第１実施形態と同様の効果が得られると共に、仮にバージョンが同じであっても実際に内容の異なるエンジン制御用ソフトウェアへの書き換えが行われたならば、その後の最初の起動時において、継続保存データを初期化することができるようになる。エンジン制御用ソフトウェアの内容が異なれば、そのエンジン制御用ソフトウェアから算出されるサム値も異なると考えられるからである。
【０１０８】
尚、本第２実施形態では、図５の初期化制御処理のうち、Ｓ３１０〜Ｓ３３０の処理が判定処理に相当し、Ｓ３４０の処理がデータ初期化処理に相当し、Ｓ３５０の処理が更新処理に相当している。
［第３実施形態］
次に、第３実施形態について説明する。
【０１０９】
第３実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、下記（２−１），（２−２）の点が異なっている。
（２−１）：ＥＥＰＲＯＭ２５において、特定情報記憶領域（特定情報記憶手段に相当）が、Ｎ個（Ｎは２以上の整数）設けられている。尚、以下では、説明を簡略化するため、Ｎ＝２であるものとする。
【０１１０】
（２−２）：図３（Ｂ）の初期化制御処理に代えて、図６の初期化制御処理が実行される。
そして、図６の初期化制御処理が開始されると、まずＳ４１０にて、図３（Ｂ）のＳ２１０と同様に、フラッシュメモリ２２から、そのフラッシュメモリ２２に記憶されているエンジン制御用ソフトウェアのバージョン情報を取得する。
【０１１１】
次にＳ４２０にて、ＥＥＰＲＯＭ２５の２個の各特定情報記憶領域から、エンジン制御用ソフトウェアのバージョン情報を読み出して取得する。尚、ここで読み出される各特定情報記憶領域内のバージョン情報は、後述するＳ４５０で以前に記憶されたものである。
【０１１２】
次に、Ｓ４３０にて、Ｓ４１０で取得したフラッシュメモリ２２内のバージョン情報と、Ｓ４２０でＥＥＰＲＯＭ２５の１個目の特定情報記憶領域から取得したバージョン情報（１個目の特定情報記憶領域内のバージョン情報）とを比較し、その両バージョン情報が不一致であるか否かを判定する。
【０１１３】
そして、フラッシュメモリ２２内のバージョン情報と１個目の特定情報記憶領域内のバージョン情報とが一致していると判定したならば（Ｓ４３０：一致）、Ｓ４６０に移行する。
【０１１４】
Ｓ４６０では、Ｓ４１０で取得したフラッシュメモリ２２内のバージョン情報と、Ｓ４２０でＥＥＰＲＯＭ２５の２個目の特定情報記憶領域から取得したバージョン情報（２個目の特定情報記憶領域内のバージョン情報）とを比較し、その両バージョン情報が不一致であるか否かを判定する。
【０１１５】
そして、フラッシュメモリ２２内のバージョン情報と２個目の特定情報記憶領域内のバージョン情報とが一致していると判定したならば（Ｓ４６０：一致）、そのまま当該初期化制御処理を終了する。
【０１１６】
一方、Ｓ４３０とＳ４６０との何れかにて、フラッシュメモリ２２内のバージョン情報と特定情報記憶領域内のバージョン情報とが不一致であると判定したならば（Ｓ４３０：不一致、又は、Ｓ４６０：不一致）、Ｓ４４０に進み、図３（Ｂ）のＳ２４０と同様に、ＥＥＰＲＯＭ２５内の継続保存データを初期化する。
【０１１７】
そして、次のＳ４５０にて、Ｓ４１０でフラッシュメモリ２２から取得したバージョン情報を、図３（Ｂ）のＳ２５０と同様に、ＥＥＰＲＯＭ２５の各特定情報記憶領域に更新記憶する。つまり、各特定情報記憶領域内のバージョン情報を、フラッシュメモリ２２内のバージョン情報に書き換える。そして、その後、当該初期化制御処理を終了する。
【０１１８】
つまり、本第３実施形態では、特定情報記憶領域を複数設けると共に、フラッシュメモリ２２内のバージョン情報と、複数の特定情報記憶領域にそれぞれ記憶されているバージョン情報の少なくとも１つとが不一致であるか否かを判定するようになっている（Ｓ４１０〜Ｓ４３０，Ｓ４６０）。そして、その判定で“不一致”と肯定判定すると（Ｓ４３０：不一致、又は、Ｓ４６０：不一致）、継続保存データを初期化し（Ｓ４４０）、また、全ての特定情報記憶領域内のバージョン情報を更新するようになっている（Ｓ４５０）。
【０１１９】
このような第３実施形態によれば、フラッシュメモリ２２内のバージョン情報とは異なるバージョン情報が複数の特定情報記憶領域に記憶されているはずの状況で、何れかの特定情報記憶領域内のバージョン情報が、フラッシュメモリ２２内のバージョン情報と一致する側にデータ化けしたとしても、Ｓ４３０とＳ４６０との何れかで“不一致”と判定されることとなり、延いては、継続保存データを確実に初期化することができるようになる。
【０１２０】
尚、本第３実施形態では、図６におけるＳ４１０〜Ｓ４３０，Ｓ４６０の処理が判定処理に相当している。
一方、上記第３実施形態の手法は、第２実施形態のようにサム値を用いる場合にも同様に適用することができる。この場合、図６の処理を以下のように変形すれば良い。
【０１２１】
即ち、図６において（）内に記載しているように、Ｓ４１０では、図５のＳ３１０と同様に、フラッシュメモリ２２から、エンジン制御用ソフトウェアのうちの特定領域のデータを読み出し、その特定領域のデータに対して、サム値を求める計算を行う。また、Ｓ４２０では、ＥＥＰＲＯＭ２５における２個の各特定情報記憶領域からサム値を読み出して取得する。そして、Ｓ４３０とＳ４６０により、Ｓ４１０で算出したサム値と、２個の特定情報記憶領域にそれぞれ記憶されているサム値の少なくとも１つとが不一致であるか否かを判定し、不一致と判定したならば、Ｓ４４０にて継続保存データを初期化すると共に、Ｓ４５０にて、Ｓ４１０で算出したサム値をＥＥＰＲＯＭ２５の各特定情報記憶領域に更新記憶すれば良い。
［第４実施形態］
次に、第４実施形態について説明する。
【０１２２】
第４実施形態のＥＣＵ１は、第３実施形態のＥＣＵ１と比較すると、図６の初期化制御処理に代えて、図７の初期化制御処理が実行される点が異なっている。
そして、図７の初期化制御処理では、図６の初期化制御処理と比較すると、下記の点が異なっている。
【０１２３】
まず、Ｓ４３０にて、フラッシュメモリ２２内のバージョン情報と１個目の特定情報記憶領域内のバージョン情報とが一致していると判定したならば（Ｓ４３０：一致）、そのまま当該初期化制御処理を終了する。
【０１２４】
また、Ｓ４３０にて、フラッシュメモリ２２内のバージョン情報と１個目の特定情報記憶領域内のバージョン情報とが不一致であると判定したならば（Ｓ４３０：不一致）、Ｓ４７０に移行する。
【０１２５】
Ｓ４７０では、Ｓ４１０で取得したフラッシュメモリ２２内のバージョン情報と、Ｓ４２０でＥＥＰＲＯＭ２５の２個目の特定情報記憶領域から取得したバージョン情報（２個目の特定情報記憶領域内のバージョン情報）とを比較し、その両バージョン情報が不一致であるか否かを判定する。
【０１２６】
そして、フラッシュメモリ２２内のバージョン情報と２個目の特定情報記憶領域内のバージョン情報とが一致していると判定したならば（Ｓ４７０：一致）、そのまま当該初期化制御処理を終了する。また、フラッシュメモリ２２内のバージョン情報と２個目の特定情報記憶領域内のバージョン情報とが不一致であると判定したならば（Ｓ４７０：不一致）、Ｓ４４０に進む。
【０１２７】
つまり、本第４実施形態では、フラッシュメモリ２２内のバージョン情報と、複数の特定情報記憶領域にそれぞれ記憶されているバージョン情報の全てとが不一致であるか否かを判定するようになっている（Ｓ４１０〜Ｓ４３０，Ｓ４７０）。そして、その判定で“不一致”と肯定判定すると（Ｓ４３０：不一致、且つ、Ｓ４７０：不一致）、継続保存データを初期化し（Ｓ４４０）、また、全ての特定情報記憶領域内のバージョン情報を更新するようになっている（Ｓ４５０）。
【０１２８】
このような第４実施形態によれば、フラッシュメモリ２２内のバージョン情報と同じバージョン情報が複数の特定情報記憶領域に記憶されているはずの状況で、何れかの特定情報記憶領域内のバージョン情報が、フラッシュメモリ２２内のバージョン情報と不一致の側にデータ化けしたとしても、Ｓ４３０とＳ４７０との両方で“不一致”と判定されることはなく（換言すれば、Ｓ４３０とＳ４７０との何れかで“一致”と判定されることとなり）、延いては、継続保存データが誤って初期化されてしまうことを防止することができる。
【０１２９】
尚、本第４実施形態では、図７におけるＳ４１０〜Ｓ４３０，Ｓ４７０の処理が判定処理に相当している。
一方、上記第４実施形態の手法は、第２実施形態のようにサム値を用いる場合にも同様に適用することができる。この場合、図７の処理を以下のように変形すれば良い。
【０１３０】
即ち、図７において（）内に記載しているように、Ｓ４１０では、図５のＳ３１０と同様に、フラッシュメモリ２２から、エンジン制御用ソフトウェアのうちの特定領域のデータを読み出し、その特定領域のデータに対して、サム値を求める計算を行う。また、Ｓ４２０では、ＥＥＰＲＯＭ２５における２個の各特定情報記憶領域からサム値を読み出して取得する。そして、Ｓ４３０とＳ４７０により、Ｓ４１０で算出したサム値と、２個の特定情報記憶領域にそれぞれ記憶されているサム値の全てとが不一致であるか否かを判定し、不一致と判定したならば、Ｓ４４０にて継続保存データを初期化すると共に、Ｓ４５０にて、Ｓ４１０で算出したサム値をＥＥＰＲＯＭ２５の各特定情報記憶領域に更新記憶すれば良い。
［第５実施形態］
次に、第５実施形態について説明する。
【０１３１】
第５実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、下記（３−１），（３−２）の点が異なっている。
（３−１）：ＥＣＵ１の起動時において、フラッシュメモリ２２内のエンジン制御用ソフトウェアは、すぐに実行が開始されず、後述する初期化制御処理の実行途中で起動される。
【０１３２】
（３−２）：図３（Ｂ）の初期化制御処理に代えて、図８の初期化制御処理が実行される。そして、図８の初期化制御処理では、図３（Ｂ）の初期化制御処理と比較すると、Ｓ２４０に代えて、Ｓ２４１〜Ｓ２４５の処理が行われ、更に、Ｓ２４７の処理が追加されている。
【０１３３】
即ち、図８の初期化制御処理では、Ｓ２３０にて、フラッシュメモリ２２内のバージョン情報とＥＥＰＲＯＭ２５内のバージョン情報とが不一致であると判定したならば（Ｓ２３０：不一致）、Ｓ２４１に進み、ＥＥＰＲＯＭ２５における継続保存データ記憶領域内の継続保存データのうち、エンジンを始動させるのに使用される学習値である始動時使用データを初期化する。尚、始動時使用データとしては、例えば、燃料噴射量を補正するための噴射量学習値や、インジェクタへ燃料を送る電動ポンプへの通電電流を決定するための通電量学習値等がある。
【０１３４】
そして、次のＳ２４３にて、フラッシュメモリ２２内のエンジン制御用ソフトウェアを起動する。すると、その時点からエンジン制御用ソフトウェアの実行が開始され、以後は、エンジン制御用ソフトウェアと当該初期化制御処理の残りの部分とが、並行して実行されることとなる。
【０１３５】
次に、Ｓ２４５にて、上記継続保存データ記憶領域内の継続保存データのうち、始動時使用データ以外の継続保存データを初期化する。そして、Ｓ２５０に進み、Ｓ２１０でフラッシュメモリ２２から取得したバージョン情報を、ＥＥＰＲＯＭ２５の特定情報記憶領域に更新記憶し、その後、当該初期化制御処理を終了する。
【０１３６】
また、Ｓ２３０にて、フラッシュメモリ２２内のバージョン情報とＥＥＰＲＯＭ２５内のバージョン情報とが一致していると判定したならば（Ｓ２３０：不一致）、Ｓ２４７に進む。そして、Ｓ２４７では、Ｓ２４３と同様に、フラッシュメモリ２２内のエンジン制御用ソフトウェアを起動し、その後、当該初期化制御処理を終了する。
【０１３７】
つまり、本第５実施形態では、継続保存データを初期化する場合に（Ｓ２３０：不一致）、まず、始動時使用データだけを初期化し、その初期化が完了した時点で、エンジン制御用ソフトウェアの実行を開始するようにしている。そして、その後、初期化制御処理における残りの処理（即ち、Ｓ２４５及びＳ２５０の処理）は、エンジン制御用ソフトウェアの実行と並行して実行されるようにしている。
【０１３８】
このような第５実施形態のＥＣＵ１によれば、第１実施形態のＥＣＵ１と同様の効果が得られる。エンジン制御用ソフトウェアの実行開始タイミングを、従来装置よりも早くすることができるからである。
【０１３９】
しかも、異なるエンジン制御用ソフトウェアへの書き換えが行われた後の最初の起動時においては、継続保存データのうちの始動時使用データが新たなエンジン制御用ソフトウェアに適合するものに初期化されてから、その新エンジン制御用ソフトウェアの実行が開始されることとなる。よって、エンジンの始動性を良好に保ちつつ最初から適切なエンジン制御を確実に実施できる。
【０１４０】
尚、変形例として、本第５実施形態の手法は、図８おいて（）内に記載しているように、第２実施形態の如くサム値を用いる場合にも同様に適用することができる。また、第３実施形態又は第４実施形態に対して、第５実施形態の手法を適用しても良い。
［第６実施形態］
次に、第６実施形態について説明する。
【０１４１】
図９に示すように、フラッシュメモリ２２内のエンジン制御用ソフトウェアには、継続保存データの各々に関与する部分がある。継続保存データに関与する部分（保存データ関与部分）とは、その継続保存データを更新したり参照したりする部分であり、その部分が変更されたならば、それに対応する継続保存データの初期化が必要になる部分である。
【０１４２】
例えば、ＥＣＵ１のフラッシュメモリ２２に記憶されるエンジン制御用ソフトウェアのうち、燃料噴射量制御を行うための噴射量制御プログラムと、噴射量を算出するために参照される噴射量関係データとからなる部分Ａは、継続保存データのうち、噴射量を補正するための噴射量学習値（データＡ）に関与する。また、故障診断を行うための故障診断ロジックのプログラムと、噴射量関係データとからなる部分Ｂは、継続保存データのうち、故障診断情報（データＢ）に関与する。尚、この場合、噴射量関係データには、故障か否かを判断する際の閾値等が含まれている。また、アクセル制御（スロットル制御）を行うためのアクセル制御プログラムと、アクセル開度（スロットル開度）を算出するために参照されるアクセル関係データとからなる部分Ｃは、継続保存データのうち、アクセル開度を補正するためのアクセル学習値（データＣ）に関与する。
【０１４３】
そこで、第６実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、下記（４−１）〜（４−３）の点が異なっている。尚、ここでは、継続保存データが、図９に例示した噴射量学習値（データＡ）、故障診断情報（データＢ）、及びアクセル学習値（データＣ）の３つであるものとする。
【０１４４】
（４−１）：ＥＣＵ１のエンジン制御用ソフトウェアを書き換える際には、ツール１５からＥＣＵ１へ、エンジン制御用ソフトウェアと共に、そのエンジン制御用ソフトウェアにおける各部分Ａ〜Ｃのバージョン情報も送信されるようになっている。そして、ＥＣＵ１において、図２の書換制御処理のＳ１３０では、フラッシュメモリ２２へ、ツール１５から受信したバージョン情報であって、今回書き換えたエンジン制御用ソフトウェアにおける各部分Ａ〜Ｃのバージョン情報を書き込む。
【０１４５】
（４−２）：ＥＥＰＲＯＭ２５において、バージョン情報を記憶するための特定情報記憶領域が、部分Ａ〜Ｃの各々について設けられている。そして、部分Ｘ（ＸはＡ〜Ｃの何れか）に対応する特定情報記憶領域には、該当する部分Ｘのバージョン情報が記憶される。尚、この部分Ａ〜Ｃ毎に設けられた特定情報記憶領域（以下、部分別特定情報記憶領域という）は、部分Ａ〜Ｃに固有の特定情報がそれぞれ記憶される複数の特定情報記憶手段に相当する。
【０１４６】
（４−３）：ＥＣＵ１が起動すると、図３（Ｂ）の初期化制御処理に代えて、図１０（Ａ）の起動時処理が実行される。尚、この起動時処理も、図１０（Ｃ）に示すようにフラッシュメモリ２２内のエンジン制御用ソフトウェアと並行して実行される。
【０１４７】
そして、起動時処理の実行が開始されると、まずＳ５１０にて、部分Ａについての初期化制御処理を行い、次にＳ５２０にて、部分Ｃについての初期化制御処理を行い、次にＳ５３０にて、部分Ｂについての初期化制御処理を行う。その後、当該起動時処理が終了する。
【０１４８】
ここで、起動時処理におけるＳ５１０〜Ｓ５３０の各々で実行される部分Ｘ（ＸはＡ〜Ｃの何れか）についての初期化制御処理は、図１０（Ｂ）のような処理である。
即ち、部分Ｘについての初期化制御処理では、まずＳ６１０にて、フラッシュメモリ２２から、該当する部分Ｘのバージョン情報を読み出して取得する。尚、ここで読み出されるバージョン情報は、図２のＳ１３０でフラッシュメモリ２２に書き込まれた部分Ｘのバージョン情報であり、部分Ｘに固有で、且つ、フラッシュメモリ２２から抽出される特定情報に相当する。
【０１４９】
次にＳ６２０にて、ＥＥＰＲＯＭ２５における部分別特定情報記憶領域のうち、部分Ｘに対応する部分別特定情報記憶領域から、部分Ｘのバージョン情報を読み出して取得する。尚、ここで読み出されるバージョン情報は、後述するＳ６５０で以前に記憶されたものである。
【０１５０】
次に、Ｓ６３０にて、部分Ｘについて、Ｓ６１０でフラッシュメモリ２２から取得したバージョン情報（フラッシュメモリ２２内のバージョン情報）と、Ｓ６２０で部分別特定情報記憶領域から取得したバージョン情報（部分別特定情報記憶領域内のバージョン情報）とを比較し、その両バージョン情報が不一致であるか否かを判定する。
【０１５１】
そして、フラッシュメモリ２２内のバージョン情報と部分別特定情報記憶領域内のバージョン情報とが一致していると判定したならば（Ｓ６３０：一致）、そのまま当該初期化制御処理を終了する。
【０１５２】
また、上記Ｓ６３０にて、フラッシュメモリ２２内のバージョン情報と部分別特定情報記憶領域内のバージョン情報とが不一致であると判定したならば（Ｓ６３０：不一致）、Ｓ６４０に進み、ＥＥＰＲＯＭ２５内の継続保存データのうち、部分Ｘに対応する継続保存データ（データＸ）を初期化する。
【０１５３】
そして、次のＳ６５０にて、Ｓ６１０で部分Ｘについてフラッシュメモリ２２から取得したバージョン情報を、部分Ｘに対応する部分別特定情報記憶領域に更新記憶する。つまり、部分Ｘに対応する部分別特定情報記憶領域内のバージョン情報を、フラッシュメモリ２２に記憶されている部分Ｘのバージョン情報に書き換える。そして、その後、当該初期化制御処理を終了する。
【０１５４】
つまり、本第６実施形態の起動時処理では、エンジン制御用ソフトウェアのうち、継続保存データに関与する部分Ａ〜Ｃの各々について、第１実施形態の初期化制御処理と同様の処理を行っている。尚、部分Ｘについての初期化制御処理は、部分Ｘが変更された否かを判定して、その部分Ｘに対応するデータＸ（部分Ｘが関与する継続保存データ）を初期化する処理であるため、データＸについての初期化制御処理であるとも言える。
【０１５５】
よって、エンジン制御用ソフトウェアの書き換えが行われた後の最初の起動時において、部分Ａ〜Ｃのうち、内容が変更された部分に対応する継続保存データだけを初期化することができる。
【０１５６】
例えば、フラッシュメモリ２２内のエンジン制御用ソフトウェアが、部分Ａ〜Ｃのうちの部分Ａだけが異なるものに書き換えられたとする。
この場合、部分Ｂ，Ｃの各々に対応する部分別特定情報記憶領域内の各バージョン情報は、フラッシュメモリ２２内の書き換え後のエンジン制御用ソフトウェアにおける部分Ｂ，Ｃの各バージョン情報と同じになる。部分Ｂ，Ｃは新・旧ソフトウェアで同じためである。
【０１５７】
これに対して、部分Ａは変更されるため、その部分Ａに対応する部分別特定情報記憶領域内のバージョン情報は、フラッシュメモリ２２内の書き換え後の制御用ソフトウェアにおける部分Ａのバージョン情報とは異なるものとなる。
【０１５８】
このため、ソフトウェアの書き換えが行われた後の最初の起動時において、図１０（Ａ）の起動時処理が実行されると、部分Ａについての初期化制御処理（Ｓ５１０）においてのみ、Ｓ６３０で“不一致”と判定されることとなる。よって、部分Ａ〜Ｃのうち、部分Ａに対応する継続保存データ（噴射量学習値）だけが初期化される。また、この場合、部分Ａについての初期化制御処理（Ｓ５１０）におけるＳ６１０でフラッシュメモリ２２から取得した部分Ａのバージョン情報が、その部分Ａに対応する部分別特定情報記憶領域に更新記憶される。
【０１５９】
そして、ソフトウェアが書き換えられた後の２回目以降の起動時においては、書き換え後の新たな部分Ａのバージョン情報が、その部分Ａに対応する部分別特定情報記憶領域に記憶されていることとなる。よって、部分Ｂ，Ｃについての各初期化制御処理だけでなく、部分Ａについての初期化制御処理においても、Ｓ６３０では“一致”と判定されることとなる。よって、部分Ａ〜Ｃに対応する継続保存データは全て初期化されず、また、部分別特定情報記憶領域内のバージョン情報も更新されない。
【０１６０】
以上のように、本第６実施形態のＥＣＵ１によれば、初期化が必要な継続保存データだけを初期化することができる。
そして更に、本第６実施形態のＥＣＵ１では、第１実施形態と同様に、起動した際に、すぐにフラッシュメモリ２２内のエンジン制御用ソフトウェアの実行が開始される。そして、起動時処理（即ち、保存データ関与部分の各々についての初期化制御処理）は、そのエンジン制御用ソフトウェアの実行と並行して実行される。このため、第１実施形態と同様に、エンジン制御の開始が遅れることはなく、エンジンの始動性を良好に保つことができる。
【０１６１】
また、上記第６実施形態では、始動時使用データである噴射量学習値に対応する部分Ａについての初期化制御処理を一番先に実行し、次に、他の学習値であるアクセル学習値に対応する部分Ｃについての初期化制御処理を実行し、最後に、エンジンの制御に直接は使用されない故障診断情報に対応する部分Ｂについての初期化制御処理を実行するようにしている。このため、始動時使用データが一番先に初期化されることとなる。よって、エンジン制御用ソフトウェアの書き換えが行われた後の最初の起動時において、エンジンを始動させる際には、できるだけ早期に適切な学習値（始動時使用データ）を用いることができるようになり有利である。
【０１６２】
尚、本第６実施形態では、図１０（Ｂ）の初期化制御処理のうち、Ｓ６１０〜Ｓ６３０の処理が判定処理に相当し、Ｓ６４０の処理がデータ初期化処理に相当し、Ｓ６５０の処理が更新処理に相当している。
【０１６３】
一方、本第６実施形態は、以下のように変形しても良い。
まず、第６実施形態の手法は、図１０（Ｂ）におけるＳ６１０，Ｓ６２０，Ｓ６５０の枠内において（）内に記載しているように、第２実施形態の如くサム値を用いる場合にも同様に適用することができる。この場合、Ｓ６１０では、フラッシュメモリ２２内の部分Ｘのデータに対してサム値を求める計算を行い、Ｓ６２０では、部分Ｘに対応するＥＥＰＲＯＭ２５の部分別特定情報記憶領域から、部分Ｘについて以前に求められたサム値を読み出して取得し、Ｓ６３０で、その両サム値を比較すれば良い。そして、Ｓ６５０では、Ｓ６１０で算出した部分Ｘのサム値を、部分Ｘに対応する部分別特定情報記憶領域に更新記憶すれば良い。
【０１６４】
また、図１０（Ｂ）の初期化制御処理に、第３実施形態（図６のＳ４３０，Ｓ４６０）又は第４実施形態（図７のＳ４３０，Ｓ４７０）の手法を適用しても良い。具体的には、部分Ａ〜Ｃ毎の部分別特定情報記憶領域をＮ個ずつ設け、各部分Ａ〜Ｃについての初期化制御処理では、第３実施形態（図６）と同様の処理を行うか、第４実施形態（図７）と同様の処理を行うようにしても良い。
［第７実施形態］
次に、第７実施形態について説明する。
【０１６５】
第７実施形態のＥＣＵ１は、第６実施形態のＥＣＵ１と比較すると、下記（５−１），（５−２）の点が異なっている。
（５−１）：ＥＣＵ１の起動時において、フラッシュメモリ２２内のエンジン制御用ソフトウェアは、すぐに実行が開始されず、後述する起動時処理の実行途中で起動される。
【０１６６】
（５−２）：図１０（Ａ）の起動時処理に代えて、図１１の起動時処理が実行される。そして、図１１の起動時処理では、図１０（Ａ）の起動時処理と比較すると、Ｓ５１０とＳ５２０との間にＳ５１５の処理が追加されている。
【０１６７】
即ち、図１１の起動時処理では、Ｓ５１０で部分Ａについての初期化制御処理を行った後、Ｓ５１５にて、フラッシュメモリ２２内のエンジン制御用ソフトウェアを起動し、その後、Ｓ５２０へ進む。このため、部分Ａについての初期化制御処理が完了した時点からエンジン制御用ソフトウェアの実行が開始され、以後は、エンジン制御用ソフトウェアと当該起動時処理の残りの部分とが、並行して実行されることとなる。
【０１６８】
つまり、本第７実施形態では、始動時使用データ（上記例では、噴射量学習値）に対応する部分Ａについての初期化制御処理が、他の継続保存データに対応する部分Ｂ，Ｃについての初期化制御処理よりも先に実行されるようになっていると共に、部分Ａについての初期化制御処理が終了した時点で、フラッシュメモリ２２内のエンジン制御用ソフトウェアの実行が開始され、その後は、エンジン制御用ソフトウェアの実行と並行して、始動時使用データ以外の継続保存データに対応する部分Ｂ，Ｃについての初期化制御処理が実行されるようにしている。
【０１６９】
このような第７実施形態のＥＣＵ１によれば、起動時処理（全ての初期化制御処理）が終了する前に、エンジン制御用ソフトウェアの実行が開始されるため、第６実施形態のＥＣＵ１と同様の効果が得られる。
【０１７０】
しかも、エンジン制御用ソフトウェアが、始動時使用データに関与する部分Ａが異なるものへ書き換えられた後の最初の起動時においては、始動時使用データが新たなエンジン制御用ソフトウェアに適合するものに初期化されてから、その新エンジン制御用ソフトウェアの実行が開始されることとなる。よって、エンジンの始動性を良好に保ちつつ最初から適切なエンジン制御を確実に実施できる。
【０１７１】
尚、上記例では、始動時使用データが噴射量学習値だけであったが、始動時使用データが複数あるのであれば、図１１の起動時処理において、最初からＳ５１５までの間に、その各始動時使用データに対応する部分についての初期化制御処理を順次実行するように構成すれば良い。
【０１７２】
また、本第７実施形態についても、第６実施形態について述べた各変形と同様の変形を施すことができる。
［他の変形例］
ところで、前述した各実施形態及びその変形例において、バージョン情報又はサム値を記憶するＥＥＰＲＯＭ２５の特定情報記憶領域が正常か否かを検査する検査機能を追加し、その検査機能によって異常と判定されたならば、その異常な特定情報記憶領域から取得したバージョン情報又はサム値に関する前述の判定結果のうち、“不一致”との判定結果を無効化するように構成しても良い。そして、このように構成すれば、ＥＥＰＲＯＭ２５の特定情報記憶領域が故障したことにより継続保存データが誤って初期化されてしまうことを防止することができる。
【０１７３】
具体的に説明すると、まず、図１２の初期化制御処理は、第１実施形態の図３（Ｂ）の初期化制御処理に対して、Ｓ２３２，Ｓ２３４，Ｓ２３６の処理を追加すると共に、Ｓ２５０の処理を削除したものである。
【０１７４】
そして、図１２の初期化制御処理では、Ｓ２３０にて“不一致”と判定した場合に、Ｓ２３２に進み、図３のＳ２５０と同じ処理を行う。つまり、Ｓ２１０でフラッシュメモリ２２から取得したバージョン情報を、ＥＥＰＲＯＭ２５の特定情報記憶領域に更新記憶（上書き）する。そして、次のＳ２３４にて、ＥＥＰＲＯＭ２５からＳ２３２で書き込んだバージョン情報を読み出す。そして更に、続くＳ２３６にて、Ｓ２３２でＥＥＰＲＯＭ２５に書き込んだバージョン情報と、Ｓ２３４でＥＥＰＲＯＭ２５から読み出したバージョン情報とを比較し、両バージョン情報が一致していれば、Ｓ２４０に進んで、継続保存データを初期化し、その後、当該初期化制御処理を終了する。尚、この場合、ＥＥＰＲＯＭ２５内のバージョン情報は、Ｓ２３２の処理によって更新されることとなる。
【０１７５】
また、上記Ｓ２３６にて、両バージョン情報が不一致であると判定した場合には（Ｓ２３６：不一致）、ＥＥＰＲＯＭ２５の特定情報記憶領域が異常であると判断し、継続保存データを初期化することなく、そのまま当該初期化制御処理を終了する。つまり、この場合には、Ｓ２３０での“不一致”との判定が無効化される。
【０１７６】
次に、図１３の初期化制御処理は、第２実施形態の図５の初期化制御処理に対して、Ｓ３３２，Ｓ３３４，Ｓ３３６の処理を追加すると共に、Ｓ３５０の処理を削除したものである。
【０１７７】
そして、図１３の初期化制御処理では、Ｓ３３０にて“不一致”と判定した場合に、Ｓ３３２に進み、図５のＳ３５０と同じ処理を行う。つまり、Ｓ３１０で今回算出したサム値をＥＥＰＲＯＭ２５の特定情報記憶領域に更新記憶（上書き）する。そして、次のＳ３３４にて、ＥＥＰＲＯＭ２５からＳ３３２で書き込んだサム値を読み出す。そして更に、続くＳ３３６にて、Ｓ３３２でＥＥＰＲＯＭ２５に書き込んだサム値と、Ｓ３３４でＥＥＰＲＯＭ２５から読み出したサム値とを比較し、両サム値が一致していれば、Ｓ３４０に進んで、継続保存データを初期化し、その後、当該初期化制御処理を終了する。尚、この場合、ＥＥＰＲＯＭ２５内のサム値は、Ｓ３３２の処理によって更新されることとなる。
【０１７８】
また、上記Ｓ３３６にて、両サム値が不一致であると判定した場合には（Ｓ３３６：不一致）、ＥＥＰＲＯＭ２５の特定情報記憶領域が異常であると判断し、継続保存データを初期化することなく、そのまま当該初期化制御処理を終了する。つまり、この場合には、Ｓ３３０での“不一致”との判定が無効化される。
【０１７９】
次に、図１４の初期化制御処理は、第３実施形態の図６の初期化制御処理に対して、Ｓ４３２，Ｓ４３４，Ｓ４３６の処理と、Ｓ４６２，Ｓ４６４，Ｓ４６６の処理とを追加したものである。
【０１８０】
そして、Ｓ４３０で“不一致”と判定した場合に行われるＳ４３２〜Ｓ４３６の処理は、ＥＥＰＲＯＭ２５の１個目の特定情報記憶領域を読み書きの対象として、図１２のＳ２３２〜Ｓ２３６と同様の処理を行うものである。そして、Ｓ４３６で“不一致”と判定した場合には、ＥＥＰＲＯＭ２５の１個目の特定情報記憶領域が異常であると判断して、継続保存データを初期化することなく、Ｓ４６０へ移行する。つまり、この場合には、Ｓ４３０での“不一致”との判定が無効化される。
【０１８１】
同様に、Ｓ４６０で“不一致”と判定した場合に行われるＳ４６２〜Ｓ４６６の処理は、ＥＥＰＲＯＭ２５の２個目の特定情報記憶領域を読み書きの対象として、図１２のＳ２３２〜Ｓ２３６と同様の処理を行うものである。そして、Ｓ４６６で“不一致”と判定した場合には、ＥＥＰＲＯＭ２５の２個目の特定情報記憶領域が異常であると判断して、継続保存データを初期化することなく、そのまま当該初期化制御処理を終了する。つまり、この場合には、Ｓ４６０での“不一致”との判定が無効化される。
【０１８２】
尚、この図１４の初期化制御処理では、Ｓ４４０で継続保存データを初期化した場合、念のため、Ｓ４５０にてＥＥＰＲＯＭ２５の各特定情報記憶領域内のバージョン情報を更新する処理を行う。
【０１８３】
また、図１４において、（）内に記載しているように、第２実施形態の如くサム値を用いる場合には、Ｓ４３２〜Ｓ４３６の処理を、ＥＥＰＲＯＭ２５の１個目の特定情報記憶領域を読み書きの対象として図１３のＳ３３２〜Ｓ３３６と同様の処理を行うものに変更すれば良く、また、Ｓ４６２〜Ｓ４６６の処理を、ＥＥＰＲＯＭ２５の２個目の特定情報記憶領域を読み書きの対象として図１３のＳ３３２〜Ｓ３３６と同様の処理を行うものに変更すれば良い。
【０１８４】
次に、図１５の初期化制御処理は、第４実施形態の図７の初期化制御処理に対して、Ｓ４３２，Ｓ４３４，Ｓ４３６の処理と、Ｓ４７２，Ｓ４７４，Ｓ４７６の処理とを追加する共に、Ｓ４５０の処理を削除したものである。
【０１８５】
そして、Ｓ４３０で“不一致”と判定した場合に行われるＳ４３２〜Ｓ４３６の処理は、前述した図１４のＳ４３２〜Ｓ４３６と同じであり、Ｓ４３６で“不一致”と判定した場合には、ＥＥＰＲＯＭ２５の１個目の特定情報記憶領域が異常であると判断して、Ｓ４７０へ進むことなく、そのまま当該初期化制御処理を終了する。つまり、この場合には、Ｓ４３０での“不一致”との判定が無効化される。
【０１８６】
また、Ｓ４７０で“不一致”と判定した場合に行われるＳ４７２〜Ｓ４７６の処理は、前述した図１４のＳ４６２〜Ｓ４６６と同じであり、Ｓ４７６で“不一致”と判定した場合には、ＥＥＰＲＯＭ２５の２個目の特定情報記憶領域が異常であると判断して、継続保存データを初期化することなく、そのまま当該初期化制御処理を終了する。つまり、この場合には、Ｓ４７０での“不一致”との判定が無効化される。
【０１８７】
尚、この図１５の初期化制御処理では、Ｓ４４０で継続保存データを初期化した場合、ＥＥＰＲＯＭ２５の各特定情報記憶領域内のバージョン情報は、Ｓ４３２とＳ４７２との各処理によって更新されることとなる。
【０１８８】
また、図１５において、（）内に記載しているように、第２実施形態の如くサム値を用いる場合には、Ｓ４３２〜Ｓ４３６の処理を、ＥＥＰＲＯＭ２５の１個目の特定情報記憶領域を読み書きの対象として図１３のＳ３３２〜Ｓ３３６と同様の処理を行うものに変更すれば良く、また、Ｓ４７２〜Ｓ４７６の処理を、ＥＥＰＲＯＭ２５の２個目の特定情報記憶領域を読み書きの対象として図１３のＳ３３２〜Ｓ３３６と同様の処理を行うものに変更すれば良い。
【０１８９】
また、図示は省略するが、図１２〜図１５の各手法は、第５実施形態以降の各実施形態及びその変形例についても同様に適用することができる。
例えば、第５実施形態については、図８の初期化制御処理に対して、図３（Ｂ）から図１２への変形と同様の変形を施すことができる。また、第６，第７実施形態については、保存データ関与部分の各々についての初期化制御処理として、図１２〜図１５の何れかと同様の処理を行うように構成することができる。
【０１９０】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１９１】
例えば、継続保存データは、ＥＥＰＲＯＭに限らず、バックアップＲＡＭ等に記憶されていても良い。尚、ＥＥＰＲＯＭはデータ書き込みに要する時間が比較的長いメモリであり、そのようなＥＥＰＲＯＭに継続保存データが記憶される場合には、継続保存データの初期化に時間がかかるため、本発明が一層有効になる。
【０１９２】
また、特定の演算としては、サム値を算出するものに限らず、他の演算でも良い。
また、ＥＣＵのソフトウェアの書き換えは、外部装置との有線通信に限らず、無線通信によるものでも良い。
【図面の簡単な説明】
【０１９３】
【図１】実施形態のＥＣＵの構成を表す構成図である。
【図２】書換制御処理を表すフローチャートである。
【図３】第１実施形態のＥＣＵが起動すると実行される処理を表すフローチャートである。
【図４】第１実施形態の作用を説明する説明図である。
【図５】第２実施形態の初期化制御処理を表すフローチャートである。
【図６】第３実施形態の初期化制御処理を表すフローチャートである。
【図７】第４実施形態の初期化制御処理を表すフローチャートである。
【図８】第５実施形態の初期化制御処理を表すフローチャートである。
【図９】エンジン制御用ソフトウェアの各部と、継続保存データとの対応関係を説明する説明図である。
【図１０】第６実施形態のＥＣＵが起動すると実行される処理を表すフローチャートである。
【図１１】第７実施形態の起動時処理を表すフローチャートである。
【図１２】図３（Ｂ）の変形例を表すフローチャートである。
【図１３】図５の変形例を表すフローチャートである。
【図１４】図６の変形例を表すフローチャートである。
【図１５】図７の変形例を表すフローチャートである。
【符号の説明】
【０１９４】
１〜３…ＥＣＵ（電子制御装置）、１１…通信線、１３…コネクタ、１５…プログラム書換ツール（外部装置）、２１…ＣＰＵ、２２…フラッシュメモリ、２３…書換不能なＲＯＭ、２４…バックアップＲＡＭ、２５…ＥＥＰＲＯＭ
【図１】
2008169815.tif 000003
【図２】
2008169815.tif 000004
【図３】
2008169815.tif 000005
【図４】
2008169815.tif 000006
【図５】
2008169815.tif 000007
【図６】
2008169815.tif 000008
【図７】
2008169815.tif 000009
【図８】
2008169815.tif 000010
【図９】
2008169815.tif 000011
【図１０】
2008169815.tif 000012
【図１１】
2008169815.tif 000013
【図１２】
2008169815.tif 000014
【図１３】
2008169815.tif 000015
【図１４】
2008169815.tif 000016
【図１５】
2008169815.tif 000017