(57)【要約】【課題】特殊プログラムを車両制御装置に常駐させつつ、特殊プログラムを確実に非活性化することができる車両制御装置を提供する。【解決手段】本発明に係る車両制御装置は、第１演算装置のみがアクセスすることができる第１記憶領域と、第２演算装置のみがアクセスすることができる第２記憶領域とを備え、特殊プログラムを起動することを許可するか否かを示す第１フラグと第２フラグのうち少なくともいずれかを、前記第１記憶領域と前記第２記憶領域のいずれかに格納する。【選択図】図２
2020101841.tif 000002
【特許請求の範囲】
【請求項１】
車両の動作を制御する車両制御装置であって、
前記車両の動作を制御する処理を実装した制御プログラムと、前記車両の動作を制御する処理以外の特殊処理を実装した特殊プログラムとを格納する第１記憶装置、
前記制御プログラムを実行する第１および第２演算装置、
を備え、
前記第１記憶装置は、前記第１演算装置のみがアクセスすることができる第１記憶領域と、前記第２演算装置のみがアクセスすることができる第２記憶領域とを有し、
前記第１記憶領域は、前記特殊プログラムを実行することを許可するか否かを示す第１フラグを格納し、
前記車両制御装置は、前記特殊プログラムを実行することを許可するか否かを示す第２フラグを、前記第１記憶領域とは異なる記憶領域に格納し、
前記第１演算装置は、前記特殊プログラムを実行することを許可する旨を前記第１フラグが示すとともに、前記特殊プログラムを実行することを許可する旨を前記第２フラグが示すときに限り、前記特殊プログラムを実行する
ことを特徴とする車両制御装置。
【請求項２】
前記車両制御装置はさらに、前記第１演算装置と前記第２演算装置が使用するデータを格納する第２記憶装置を備え、
前記第２記憶装置は、前記第１演算装置と前記第２演算装置がともにアクセスすることができるように構成されており、
前記第２記憶装置は、前記第２フラグを格納する記憶領域を有している
ことを特徴とする請求項１記載の車両制御装置。
【請求項３】
前記第２記憶領域は、前記第２フラグを格納しており、
前記第２演算装置は、前記特殊プログラムを実行することを許可する旨を前記第２フラグが示しているか否かを、前記第１演算装置に対して通知し、
前記第１演算装置は、前記特殊プログラムを実行することを許可する旨を前記第１フラグが示すとともに、前記特殊プログラムを実行することを許可する旨を前記第２フラグが示している旨の通知を前記第２演算装置から受け取ったときに限り、前記特殊プログラムを実行する
ことを特徴とする請求項１記載の車両制御装置。
【請求項４】
前記第１演算装置または前記第２演算装置は、前記車両制御装置が起動するとタイマを開始するとともに、前記タイマのカウント値を監視し、
前記第１演算装置は前記カウント値を前記第１フラグとして用い、または前記第２演算装置は前記カウント値を前記第２フラグとして用い、
前記第１演算装置または前記第２演算装置は、前記カウント値が所定閾値未満であるときは前記特殊プログラムを実行することを許可する旨を前記カウント値が示しているものとして取り扱い、前記カウント値が前記所定閾値以上であるときは前記特殊プログラムを実行することを許可しない旨を前記カウント値が示しているものとして取り扱う
ことを特徴とする請求項１記載の車両制御装置。
【請求項５】
前記第１記憶装置は、何らかのデータが書き込まれている状態と、何らのデータも書き込まれていないブランク状態とを有し、
前記第１演算装置は、前記第１記憶領域のうち前記第１フラグを格納するアドレスが前記ブランク状態である場合は、前記特殊プログラムを実行することを許可する旨を前記第１フラグが示しているものとして取り扱う
ことを特徴とする請求項１記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両を制御する装置に関する。
【背景技術】
【０００２】
車両が搭載する制御ソフトウェアは、機能安全規格であるＩＳＯ２６２６２に準拠することが求められている。ＩＳＯ２６２６２は、車両制御装置の仕様として含まれていない特殊プログラムを非活性化することを保証するよう求めている。特殊プログラムが意図せず起動すると、車両制御に対して意図しない影響を与えて車両動作が不安定になる可能性があるからである。ここでいう特殊プログラムとは、車両を制御する処理以外の処理を実装したプログラムであり、例えばリプログラム処理を実装したプログラム、出荷検査時のハードウェアチェックを実装したプログラムなどがこれに該当する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＳＯ２６２６２  Ｐａｒｔ６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特殊プログラムを非活性化する手法としては、例えば以下のようなものが考えられる。制御プログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）上に特殊プログラムを併せて書き込んでおき、さらに特殊モードプログラムを起動することを許可するか否かを示すフラグを適当な記憶装置（同じＲＯＭ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）など）に書き込む。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は同フラグが特殊プログラムを起動することを許可している場合のみ、特殊プログラムを起動する。
【０００５】
上記のような非活性化手法を用いる場合、フラグが何らかの原因により誤って書き換えられると、本来であれば特殊プログラムを起動することが禁止されているにも関わらず起動することができるとみなされる可能性がある。この場合、特殊プログラムを非活性化することが充分に保証されていないということができる。したがって特殊プログラムを実行するためには、実行するごとに特殊プログラムを車両制御装置に対して書き込み、実行し終えると車両制御装置から特殊プログラムを消去する必要がある。換言すると、特殊プログラムを車両制御装置内に常駐させておくことができない。このような構成は、作業効率の観点から望ましくない。
【０００６】
本発明は、上記のような課題に鑑みてなされたものであり、特殊プログラムを車両制御装置に常駐させつつ、特殊プログラムを確実に非活性化することができる車両制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る車両制御装置は、第１演算装置のみがアクセスすることができる第１記憶領域と、第２演算装置のみがアクセスすることができる第２記憶領域とを備え、特殊プログラムを起動することを許可するか否かを示す第１フラグと第２フラグのうち少なくともいずれかを、前記第１記憶領域と前記第２記憶領域のいずれかに格納する。
【発明の効果】
【０００８】
本発明に係る車両制御装置によれば、特殊プログラムを常に保持しつつ、特殊プログラムを確実に非活性化することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る車両制御装置１００の構成図である。
【図２】ＲＯＭ１４０が備える記憶領域について説明する模式図である。
【図３】第１ＣＰＵ１１１が特殊プログラム１４２を実行する手順を説明するフローチャートである。
【図４】実施形態２におけるＲＯＭ１４０が備える記憶領域について説明する模式図である。
【図５】実施形態３におけるＲＯＭ１４０が備える記憶領域について説明する模式図である。
【図６】車両制御装置１００を工場から出荷する際の作業手順を説明するフローチャートである。
【図７】車両制御装置１００が故障などにより市場から返却されたときの作業手順を説明するフローチャートである。
【図８】リプログラミング作業の手順を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
図１は、本発明の実施形態１に係る車両制御装置１００の構成図である。車両制御装置１００は、車両の動作を制御する装置であり、第１ＣＰＵ１１１、第２ＣＰＵ１１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、ＥＥＰＲＯＭ１３０、ＲＯＭ１４０を備える。
【００１１】
ＲＯＭ１４０は、制御プログラム１４１、特殊プログラム１４２、第１フラグ１４３、第２フラグ１４４を格納する。制御プログラム１４１は、車両の動作を制御する処理を実装したプログラムである。特殊プログラム１４２は、それ以外の処理を実装したプログラムである。例えば先に説明したように、リプログラミング処理やハードウェアチェックを実装したプログラムがこれに相当する。第１フラグ１４３と第２フラグ１４４は、特殊プログラム１４２を実行することを許可するか否かを示す値を有する。
【００１２】
第１ＣＰＵ１１１と第２ＣＰＵ１１２は、それぞれ制御プログラム１４１を実行することにより、車両の動作を制御する。第１ＣＰＵ１１１と第２ＣＰＵ１１２のうちいずれかまたは双方は、さらに特殊プログラム１４２を実行する。以下では第１ＣＰＵ１１１が特殊プログラム１４２を実行するものとして説明する。
【００１３】
ＲＡＭ１２０は、第１ＣＰＵ１１１と第２ＣＰＵ１１２が動作する際に用いるデータを一時的に記憶するメモリである。ＥＥＰＲＯＭ１３０は、第１ＣＰＵ１１１と第２ＣＰＵ１１２が動作する際に用いるデータを記憶する不揮発性記憶装置である。例えば学習済データや故障履歴などのように永続的に記憶すべきデータをＥＥＰＲＯＭ１３０に格納することができる。
【００１４】
図２は、ＲＯＭ１４０が備える記憶領域について説明する模式図である。ＲＯＭ１４０は、第１ＣＰＵ１１１のみがアクセスすることができる第１ＲＯＭ領域１４５と、第２ＣＰＵ１１２のみがアクセスすることができる第２ＲＯＭ領域１４６とを有する。第１ＲＯＭ領域１４５は、第１フラグ１４３を格納する。第２ＲＯＭ領域１４６は、第２フラグ１４４を格納する。制御プログラム１４１と特殊プログラム１４２は、これらを実行するＣＰＵがアクセスすることができる記憶領域に格納する。本実施形態１においては第１ＣＰＵ１１１がこれらを実行することとしたので、第１ＲＯＭ領域１４５がこれらプログラムを格納する。
【００１５】
第１ＣＰＵ１１１は、第１フラグ１４３と第２フラグ１４４がともに、特殊プログラム１４２を起動することを許可する旨の値を有している場合のみ、特殊プログラム１４２を実行する。フラグを２重化することにより、いずれかのフラグが特殊プログラム１４２を起動許可する旨の値に誤って書き換えられたとしても、特殊プログラム１４２を誤って起動しないようにすることができる。すなわち特殊プログラム１４２を確実に非活性化することができる。
【００１６】
さらに、第１フラグ１４３と第２フラグ１４４のうち少なくともいずれかを、第１ＲＯＭ領域１４５と第２ＲＯＭ領域１４６のいずれかに格納することにより、各ＣＰＵが誤ってフラグを書き換える可能性を抑制できる。例えば第１ＣＰＵ１１１が誤動作したとしても、第２フラグ１４４を書き換えることはできない。これにより、第１フラグ１４３と第２フラグ１４４が誤って書き換えられる可能性をさらに抑制し、特殊プログラム１４２をより確実に非活性化することができる。
【００１７】
図３は、第１ＣＰＵ１１１が特殊プログラム１４２を実行する手順を説明するフローチャートである。第１ＣＰＵ１１１は、特殊プログラム１４２を実行するよう要求するリクエストを例えば車両の外部から受け取ったとき、本フローチャートを開始する。以下図３の各ステップについて説明する。
【００１８】
（図３：ステップＳ３０１）
第１ＣＰＵ１１１は、特殊プログラム１４２を起動することを許可する旨を第２フラグ１４４が示しているか否かを判断する。例えば第１ＣＰＵ１１１から第２ＣＰＵ１１２に対して第２フラグ１４４の値を照会することにより、第２フラグ１４４の値を取得することができる。特殊プログラム１４２を起動することを第２フラグ１４４が許可している（有効）場合はステップＳ３０２へ進み、それ以外（無効）であればステップＳ３０３へ進む。
【００１９】
（図３：ステップＳ３０２）
第１ＣＰＵ１１１は、特殊プログラム１４２を起動することを許可する旨を第１フラグ１４３が示しているか否かを判断する。特殊プログラム１４２を起動することを第１フラグ１４３が許可している（有効）場合はステップＳ３０７へ進み、それ以外（無効）であればステップＳ３０５へ進む。
【００２０】
（図３：ステップＳ３０３）
第１ＣＰＵ１１１は、特殊プログラム１４２を起動することを許可するように第２フラグ１４４を書き換える（第２フラグ１４４を有効化する）コマンドを待機する。例えば特殊プログラム１４２を実行するよう要求するリクエストを発行した車外装置から、そのようなコマンドを受け取ることができる。
【００２１】
（図３：ステップＳ３０４）
第１ＣＰＵ１１１は、ステップＳ３０３において受け取ったコマンドにしたがって、第２フラグ１４４を有効化する。コマンドを待機する処理、およびそのコマンドにしたがって第２フラグ１４４を書き換える処理は、例えば制御プログラム１４１のなかに実装することができる。
【００２２】
（図３：ステップＳ３０５〜Ｓ３０６）
第１ＣＰＵ１１１は、第１フラグ１４３についてステップＳ３０３〜Ｓ３０４と同様の処理を実施する。
【００２３】
（図３：ステップＳ３０７〜Ｓ３０８）
第１ＣＰＵ１１１は、特殊プログラム１４２を起動することが許可されていると判断する（Ｓ３０７）。第１ＣＰＵ１１１は、本フローチャートを開始するリクエストにしたがって特殊プログラム１４２を実行する（Ｓ３０８）。特殊プログラム１４２の例として以下のようなものが挙げられる。車両を制御する処理以外のプログラムであれば、その他プログラムも特殊プログラム１４２として構成することができる。
【００２４】
（図３：ステップＳ３０８：特殊プログラム１４２の例その１）
特殊プログラム１４２の例として、ＲＯＭ１４０が記憶しているデータを書き換えるリプログラミング処理を実装したプログラムが挙げられる。リプログラミングとは、例えば制御プログラム１４１を新バージョンに更新する処理である。特殊プログラム１４２、第１フラグ１４３、第２フラグ１４４を書き換える処理も、リプログラミング処理として実装することができる。
【００２５】
（図３：ステップＳ３０８：特殊プログラム１４２の例その２）
特殊プログラム１４２の例として、車両制御装置１００が備えるハードウェアが故障しているか否かをチェックするプログラムが挙げられる。故障履歴をチェックする処理もこれに含まれる。
【００２６】
（図３：ステップＳ３０８：特殊プログラム１４２の例その３）
特殊プログラム１４２の例として、車両制御装置１００が内部的に保持しているデータを出力するプログラムが挙げられる。例えばＥＥＰＲＯＭ１３０が格納している内部変数を車両制御装置１００の外へ出力する処理が考えられる。
【００２７】
（図３：ステップＳ３０８：特殊プログラム１４２の例その４）
特殊プログラム１４２の例として、車両制御装置１００の外からプログラムやデータを受け取り、これをＲＡＭ１２０に格納するプログラムが挙げられる。
【００２８】
＜実施の形態２＞
図４は、本発明の実施形態２におけるＲＯＭ１４０が備える記憶領域について説明する模式図である。ＲＯＭ１４０が備える記憶領域の構成以外は実施形態１と同様なので、以下では主に差異点について説明する。
【００２９】
本実施形態２において、第２フラグ１４４はＥＥＰＲＯＭ１３０上に格納されている。第１ＣＰＵ１１１と第２ＣＰＵ１１２ともに、ＥＥＰＲＯＭ１３０に対してアクセスすることができる。
【００３０】
第１ＣＰＵ１１１は、特殊プログラム１４２を実行するよう要求するリクエストを受け取ると、実施形態１と同様に第２ＣＰＵ１１２を介して第２フラグ１４４の値を取得し、第１フラグ１４３と併せて、特殊プログラム１４２を実行することが許可されているか否かを判断する。これにより実施形態１と同様の効果を発揮することができる。
【００３１】
本実施形態２においては、第１ＣＰＵ１１１が第２フラグ１４４を誤って書き換える可能性がある点においては、特殊プログラム１４２が誤って起動される可能性がある。しかし第２ＣＰＵ１１２が第１フラグ１４３を書き換えることができない点においては実施形態１と同様である。したがって、単にフラグを２重化することと比較して、特殊プログラム１４２をより確実に非活性化することができる。
【００３２】
本実施形態２において、ＥＥＰＲＯＭ１３０を２つの記憶領域に分け、一方は第１ＣＰＵ１１１のみがアクセスできるように構成し、他方は第２ＣＰＵ１１２のみがアクセスできるように構成してもよい。これにより、実施形態１とほぼ同様の効果を発揮することができる。
【００３３】
＜実施の形態３＞
図５は、本発明の実施形態３におけるＲＯＭ１４０が備える記憶領域について説明する模式図である。ＲＯＭ１４０が備える記憶領域の構成と後述するタイマ１５０以外は実施形態１と同様なので、以下では主に差異点について説明する。
【００３４】
本実施形態３において、第２ＲＯＭ領域１４６は制御プログラム１４７を格納し、第２ＣＰＵ１１２は制御プログラム１４７を実行する。本実施形態３においては、制御プログラム１４７が実装している処理の一部を、第２フラグ１４４の代用として用いる。以下その具体的手法を説明する。
【００３５】
第１ＣＰＵ１１１または第２ＣＰＵ１１２は、車両制御装置１００が起動すると、タイマ１５０を起動する。制御プログラム１４７は、その制御処理のなかで、タイマ１５０のカウント値が所定閾値に達したか否かをチェックする条件判断処理を実装している。第２ＣＰＵ１１２は、その条件判断処理を実行する過程において、カウント値が所定閾値に達したか否かを判断する。
【００３６】
例えばカウント値が所定閾値未満である場合は特殊プログラム１４２を起動することを許可し、所定閾値以上である場合は特殊プログラム１４２を起動することを禁止することができる。これにより、車両制御装置１００が起動してから所定閾値に達するまでの間は特殊プログラム１４２を起動することを許可し、それ以降は特殊プログラム１４２を起動することを自動的に禁止できるので、第２フラグ１４４を逐一書き換えるのと比較して処理やメンテナンス作業を簡易化できる。
【００３７】
＜実施の形態４＞
本発明の実施形態４では、実施形態１〜３で説明した構成を用いて各種作業を実施する手順を説明する。以下では実施形態１の構成を前提とするが、実施形態２〜３の構成においても同様の手順を用いることができる。
【００３８】
図６は、車両制御装置１００を工場から出荷する際の作業手順を説明するフローチャートである。以下図６の各ステップについて説明する。
【００３９】
（図６：ステップＳ６０１〜Ｓ６０３）
作業者は、適当な書込装置を用いて、第１ＲＯＭ領域１４５に対して制御プログラム１４１と特殊プログラム１４２を書き込む（Ｓ６０１）。作業者はさらに、第１ＲＯＭ領域１４５に対して第１フラグ１４３を書き込むとともに（Ｓ６０２）、第２ＲＯＭ領域１４６に対して第２フラグ１４４を書き込む（Ｓ６０３）。以後のステップにおいて特殊プログラム１４２を実行するので、これらフラグはいずれも、特殊プログラム１４２を起動することを許可する旨を示す値（有効）とする。
【００４０】
（図６：ステップＳ６０２〜Ｓ６０３：補足）
書込装置は、例えば車両制御装置１００を搭載している車両のメンテナンス端子に対して接続するように構成されている。この場合、書込装置は車両制御装置１００が内部的に保持しているデータに対して必ずしも直接的にアクセスできない場合がある。そこで例えば書込装置から車両制御装置１００に対してコマンドを発行し、車両制御装置１００がそのコマンドを実行することにより、書込装置からの書込指令を実施することができる。ステップＳ３０３やＳ３０５はそのためのものである。
【００４１】
（図６：ステップＳ６０４）
作業者は、特殊プログラム１４２のうち車両制御装置１００のハードウェアをチェックする機能を実装したものを起動することにより、出荷検査を実施する。特殊プログラム１４２が複数存在し、あるいは複数の機能を実装している場合は、出荷検査機能のみを起動すれば足りる。
【００４２】
（図６：ステップＳ６０５〜Ｓ６０６）
作業者は、ステップＳ６０２〜Ｓ６０３と反対の手順により、第１フラグ１４３と第２フラグ１４４をそれぞれ、特殊プログラム１４２を起動することを禁止する値（無効）に書き換える。これにより、特殊プログラム１４２が非活性化された状態で、車両制御装置１００がユーザのもとに届けられることになる。
【００４３】
図７は、車両制御装置１００が故障などにより市場から返却されたときの作業手順を説明するフローチャートである。以下図７の各ステップについて説明する。
【００４４】
（図７：ステップＳ７０１）
作業者は、制御プログラム１４１が備える診断機能を実行することにより、ＥＥＰＲＯＭ１３０が格納している故障履歴を読み出す。特殊プログラム１４２が同診断機能を実装している場合は、本ステップの前にステップＳ７０２とＳ７０３を実施する。
【００４５】
（図７：ステップＳ７０２〜Ｓ７０６）
これらステップは、ステップＳ６０２〜Ｓ６０６と同様である。ただし第１フラグ１４３と第２フラグ１４４は既に書き込まれているので、ステップＳ７０２とＳ７０３においてはこれらフラグを上書更新することになる。
【００４６】
図８は、リプログラミング作業の手順を説明するフローチャートである。リプログラミング作業は、例えば制御プログラム１４１をバージョンアップするため、車両制御装置１００のメンテナンス作業の一環として実施される。以下図８の各ステップについて説明する。
【００４７】
（図８：ステップＳ８０１〜Ｓ８０５）
これらステップは、ステップＳ７０２〜Ｓ７０６と同様である。ただしステップＳ８０３において、第１ＲＯＭ領域１４５をリプログラミングする機能を実装した特殊プログラム１４２を起動する点のみ、図７の手順とは異なる。
【００４８】
（図８：ステップＳ８０３：補足その１）
ＲＯＭ１４０がフラッシュＲＯＭを用いて構成されている場合、書き換える記憶領域をいったん消去（ブランク状態）した上で、ある程度のサイズを有するブロック単位でリプログラミングを実施する必要がある。フラッシュＲＯＭはいったんデータを消去しないと新たなデータを書き込むことができず、またブロック単位の書き込みしかできないからである。このことを利用して、例えば特殊プログラム１４２を格納する記憶領域の一部を第１フラグ１４３のために利用することができる。例えばリプログラミングを実施する際に特殊プログラム１４２も書き換えることとし、特殊プログラム１４２の終端に続く記憶領域を第１フラグ１４３として用いる。これにより、特殊プログラム１４２の最終ブロックを書き込む際に、第１フラグ１４３を併せて書き込むことができる。
【００４９】
（図８：ステップＳ８０３：補足その２）
上記補足その１を採用した場合において、第１ＣＰＵ１１１は、第１フラグ１４３を格納するアドレスがブランク状態である場合は、特殊プログラム１４２を起動することを禁止する旨を第１フラグ１４３が示していると取り扱うこともできる。これにより、例えば第１ＲＯＭ領域１４５をいったん消去（ブランク状態）にした後、特殊プログラム１４２を起動することを禁止したい場合は特殊プログラム１４２と併せて第１フラグ１４３を書き込み、起動を許可する場合は特殊プログラム１４２のみを書き込めば足りる。したがって、リプログラミング作業を簡易化することができる。
【００５０】
（図８：ステップＳ８０３：補足その３）
上記補足その１〜その２とは異なり、ＲＯＭ１４０としてフラッシュＲＯＭを採用した上で、特殊プログラム１４２を書き込むブロックと第１フラグ１４３を書き込むブロックを分けることもできる。第１ＣＰＵ１１１はこの場合、例えば第１フラグ１４３を書き込むアドレスがブランク状態であれば特殊プログラム１４２を起動することが許可されていると取り扱うことができる。また特殊プログラム１４２を起動することを一時的に許可したい場合は、第１フラグ１４３を格納するブロックを一括消去すれば足りるので、そのための作業時間は短くて済む。
【００５１】
（図８：ステップＳ８０３：補足その４）
上記補足その２〜その３のように、第１フラグ１４３がブランク状態であるとき特殊プログラム１４２を起動することを許可する場合、以下の利点がある。リプログラミング作業が例えば電源遮断などにより途中終了した場合、改めて特殊プログラム１４２を起動することによりリプログラミングを再開する必要がある。このとき、第１フラグ１４３を格納する記憶領域は、リプログラミングの最初に消去されてブランク状態になっているので改めて第１フラグ１４３を有効化しなくともそのまま特殊プログラム１４２を起動することが許可されていることになる。したがって、リプログラミングを再開するために第１フラグ１４３を改めて有効化する必要がないので、作業効率の観点から有利である。
【００５２】
（図８：ステップＳ８０３：補足その５）
上記補足その２〜その３のように、第１フラグ１４３がブランク状態であるとき特殊プログラム１４２を起動することを許可する場合、例えば車両制御装置１００がハッキングされることにより第１フラグ１４３が消去されると、特殊プログラム１４２を不正に起動される可能性がある。しかしこの場合であっても、第１ＲＯＭ領域１４５が不正に消去されたことを第２ＣＰＵ１１２が何らかの手段によって検出できれば、例えば第１フラグ１４３が有効であっても特殊プログラム１４２を一時的に起動禁止することにより、不正起動を防止できる。
【００５３】
＜本発明の変形例について＞
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
【００５４】
以上の実施形態において、第１ＣＰＵ１１１と第２ＣＰＵ１１２がそれぞれ異なるＲＯＭ領域に対してのみアクセスできることを説明したが、同様の構成はマルチコアＣＰＵの各コアについても適用することができる。この場合、各コアは自身がアクセスすることができるフラグのみを読み取るので、本発明と同様の効果を発揮することができる。
【符号の説明】
【００５５】
１００：車両制御装置
１１１：第１ＣＰＵ
１１２：第２ＣＰＵ
１２０：ＲＡＭ
１３０：ＥＥＰＲＯＭ
１４０：ＲＯＭ
１４１：制御プログラム
１４２：特殊プログラム
１４３：第１フラグ
１４４：第２フラグ
１４５：第１ＲＯＭ領域
１４６：第２ＲＯＭ領域
【図１】
2020101841.tif 000003
【図２】
2020101841.tif 000004
【図３】
2020101841.tif 000005
【図４】
2020101841.tif 000006
【図５】
2020101841.tif 000007
【図６】
2020101841.tif 000008
【図７】
2020101841.tif 000009
【図８】
2020101841.tif 000010