(57)【要約】【課題】記憶媒体の読み書きチェックを定期的に実行できるようにする。【解決手段】通常処理にて実行される複数のタスクの１つに、データの読み書き可能な記憶媒体に対してデータの読み出し及び書き込みが正常に行われるか否かを判定するＲＡＭチェック処理を含める。これにより、起動処理時や終了処理時に限定することなく、ＲＡＭチェックを定期的に実行することができる。また、ＲＡＭチェック処理が実行される場合には、ＲＡＭチェック処理を含む通常タスクを除く、全てのタスクの実行を禁止するため、例えば、ＲＡＭチェックにおいて使用されるテストコードを他のタスクにおいて誤って使用することがなくなる。【選択図】        図３
2004227488.tif 000002
【特許請求の範囲】
【請求項１】
データの読み出し及び書き込みが可能な記憶手段と、
前記記憶手段へのデータの書き込み及びその書き込まれたデータの読み出し処理を含み、その読み出しデータを用いつつ所定の通常動作を行う通常処理を実行する処理手段とを備え、
前記処理手段は、前記記憶手段に対してデータの読み出し及び書き込みが正常に行われるか否かを判定する判定手段と、
前記判定手段が判定処理を実行する際、この判定処理を除く前記通常処理の実行を禁止する禁止手段を備えることを特徴とする電子装置。
【請求項２】
前記通常処理は、複数のタスクに分割され、これらタスクを実行することで所定の動作が行われ、前記判定処理は、前記複数のタスクのうち少なくとも１つのタスクに含まれる処理であることを特徴とする請求項１記載の電子装置。
【請求項３】
前記複数のタスクには優先順位が各々付与され、
前記禁止手段は、前記通常処理において判定処理を含むタスクを実行する際、このタスクに付与された優先順位をそれ以外のタスクに付与された全ての優先順位よりも高い順位に変更することにより、前記判定処理を除く前記通常処理の実行を禁止することを特徴とする請求項２記載の電子装置。
【請求項４】
前記記憶手段は、前記複数のタスクを実行する際にデータの読み出し及び書き込みに利用する第１記憶手段と、前記判定処理を実行する際に前記第１記憶手段に記憶されるデータを退避させるために利用する第２記憶手段とを備え、
前記判定手段が判定処理を行う前に、前記処理手段は前記第２記憶手段へ前記第１記憶手段に記憶されるデータを退避させることを特徴とする請求項１〜３のいずれかに記載の電子装置。
【請求項５】
データの読み出し及び書き込みが可能な記憶手段と、
複数のタスクを実行することで所定の通常動作を行う通常処理を実行する処理手段とを備え、
前記複数のタスクは複数の種類に分類され、各種類の少なくとも１つのタスクは、前記記憶手段に対してデータの読み出し及び書き込みが正常に行われるか否かを判定する判定処理を含み、
前記記憶手段は、前記複数のタスクを実行する際にデータの読み出し及び書き込みに利用する前記タスクの種類毎に割当てられた複数の記憶領域によって構成される第１記憶手段と、前記判定処理を実行する際に前記第１記憶手段に記憶されるデータを退避させるために利用する前記タスクの種類毎に割当てられた複数の記憶領域によって構成される第２記憶手段とを備え、
前記処理手段は、前記タスクに含まれる前記判定処理を実行する際、前記第１記憶手段の前記タスクの種類に対して割当てられた前記第１記憶手段の記憶領域に記憶されるデータを前記タスクの種類に対して割当てられた前記第２記憶手段の記憶領域へ退避させたうえで、前記タスクの種類に対して割当てられた前記第１記憶手段の記憶領域に対するデータの読み出し及び書き込みの判定を行うことを特徴とする電子装置。
【請求項６】
前記複数のタスクには前記タスクの種類に応じた優先順位が各々付与され、
前記処理手段は、優先順位が下位のタスクの処理を実行中に、それよりも優先順位が上位のタスクの処理要求が生じた場合、その優先順位が上位のタスクを割り込むことにより優先して実行することを特徴とする請求項５記載の電子装置。
【請求項７】
前記第１記憶手段は、前記複数の記憶領域のうち複数種類のタスクによってデータの読み出し及び書き込みに利用される記憶領域を有し、
前記通常処理において前記複数種類のタスクによって利用される記憶領域に対して前記判定処理を行う場合、前記複数種類のタスクのうち最上位のタスクにて前記判定処理を実行することを特徴とする請求項６記載の電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子装置に関するものである。
【０００２】
【従来の技術】
従来、データの読み出しと書き込みが可能な記憶媒体を有する電子装置において、この記憶媒体に対して正常に読み書き出来るか否かを確認するチェック方法がある。このチェック方法によれば、例えば、電子装置の起動処理や終了処理等において、予め用意されたテストコードを記憶媒体に書き込み、この書き込んだテストコードを記憶媒体から読出して、書き込む前のテストコードと読み出したテストコードとを照合する。これにより、記憶媒体が正常に読み書き出来るか否かを確認している。
【０００３】
【発明が解決しようとする課題】
上述した記憶媒体の読み書きチェックは、起動処理や終了処理に限り実行されるもので、電子装置が本来の機能を発揮する通常動作時には実行しないように予め設定されている。これは、例えば、テストコードが通常動作時に誤って使用され、電子装置が誤動作を引き起こさないようにするためである。しかしながら、起動処理や終了処理時に限定して読み書きチェックを実行する場合、読み書きチェックを実行する時間間隔が空き過ぎることがあり、そのため、記憶媒体の読み書きに問題が発生した場合には、その問題を早期に発見することができない。
【０００４】
本発明は、かかる問題を鑑みてなされたもので、記憶媒体の読み書きチェックを定期的に実行できる電子装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
請求項１に記載の電子装置は、データの読み出し及び書き込みが可能な記憶手段と、記憶手段へのデータの書き込み及びその書き込まれたデータの読み出し処理を含み、その読み出しデータを用いつつ所定の通常動作を行う通常処理を実行する処理手段とを備え、処理手段は、記憶手段に対してデータの読み出し及び書き込みが正常に行われるか否かを判定する判定手段と、判定手段が判定処理を実行する際、この判定処理を除く通常処理の実行を禁止する禁止手段を備えることを特徴とする。
【０００６】
このように、本発明の電子装置は、記憶手段に対してデータの読み書きが正常に行われるか否かを判定する判定処理を通常処理において実行する。これにより、データの読み書きが正常に行われるか否かの判定を通常処理中に実行することができる。また、判定処理を実行する際には、この判定処理を除く全ての通常処理の実行を禁止するため、例えば、判定処理において使用されるテストコードを通常の動作を行う通常処理において誤って使用することがない。
【０００７】
請求項２に記載の電子装置では、通常処理は、複数のタスクに分割され、これらタスクを実行することで所定の動作が行われ、判定処理は、複数のタスクのうち少なくとも１つのタスクに含まれる処理であることを特徴とする。これにより、例えば、通常処理が複数のタスクとしてのサブルーチンプログラムによって分割され、これらサブルーチンプログラムを各々実行することで所定の動作が行われる場合であっても、これらサブルーチンプログラムのうち、判定処理を実行するプログラムを少なくとも１つのサブルーチンプログラムに含めることで、データの読み書きが正常に行われるか否かの判定が定期的に実行される。
【０００８】
請求項３に記載の電子装置では、複数のタスクには優先順位が各々付与され、処理手段は、通常処理において判定処理を含むタスクを実行する際、このタスクに付与された優先順位をそれ以外のタスクに付与された全ての優先順位よりも高い順位に変更することにより、判定処理を除く通常処理の実行を禁止することを特徴とする。このように、判定処理を実行する場合に判定処理を含むタスクの優先順位を最上位に変更することで、他のタスクを実行しないようにすることができる。
【０００９】
請求項４に記載の電子装置によれば、記憶手段は、複数のタスクを実行する際にデータの読み出し及び書き込みに利用する第１記憶手段と、判定処理を実行する際に第１記憶手段に記憶されるデータを退避させるために利用する第２記憶手段とを備え、判定手段が判定処理を行う前に、処理手段は第２記憶手段へ第１記憶手段に記憶されるデータを退避させることを特徴とする。
【００１０】
これにより、第１記憶手段に一時的にデータが記憶されている場合であっても、そのデータを失うことなく、第１記憶手段に対してデータの読み書きが正常に行われるか否かの判定を実行することができる。また、判定処理を終了する場合には、第２記憶手段に退避させたデータを第１記憶手段に書き込むようにすれば、判定処理以外のタスクにおいて、誤ったデータを使用することがなくなる。
【００１１】
請求項５に記載の電子装置は、データの読み出し及び書き込みが可能な記憶手段と、複数のタスクを実行することで所定の通常動作を行う通常処理を実行する処理手段とを備え、複数のタスクは複数の種類に分類され、各種類の少なくとも１つのタスクは、記憶手段に対してデータの読み出し及び書き込みが正常に行われるか否かを判定する判定処理を含み、記憶手段は、複数のタスクを実行する際にデータの読み出し及び書き込みに利用するタスクの種類毎に割当てられた複数の記憶領域によって構成される第１記憶手段と、判定処理を実行する際に第１記憶手段に記憶されるデータを退避させるために利用するタスクの種類毎に割当てられた複数の記憶領域によって構成される第２記憶手段とを備え、処理手段は、タスクに含まれる判定処理を実行する際、第１記憶手段のタスクの種類に対して割当てられた第１記憶手段の記憶領域に記憶されるデータをタスクの種類に対して割当てられた第２記憶手段の記憶領域へ退避させたうえで、タスクの種類に対して割当てられた第１記憶手段の記憶領域に対するデータの読み出し及び書き込みの判定を行うことを特徴とする。
【００１２】
このように、通常処理における複数種類のタスクのうち少なくとも１つのタスクには、第１記憶手段に対してデータの読み書きが正常に行われるか否かを判定する判定処理が含まれている。これにより、通常処理が実行される場合に、データの読み書きが正常に行われるか否かの判定が常に行われるようになる。
【００１３】
また、判定処理が実行される際、第１記憶手段に一時的にデータが記憶されている場合であっても、実行する処理の内容や重要度等によって分けられるタスクの種類毎に割当てられた第２記憶手段へデータを退避したうえでデータの読み書きの判定が実行されるため、その一時的に記憶されたデータを失うことなくなる。さらに、判定処理を終了する場合には、第２記憶手段に退避させたデータを第１記憶手段に書き込むことで、誤ったデータを使用されることがなくなる。
【００１４】
請求項６に記載の電子装置によれば、複数のタスクにはタスクの種類に応じた優先順位が各々付与され、処理手段は、優先順位が下位のタスクの処理を実行中に、それよりも優先順位が上位のタスクの処理要求が生じた場合、その優先順位が上位のタスクを割り込むことにより優先して実行することを特徴とする。これにより、例えば、所定時間毎に実行するタスクを変更する場合であっても、実行中のタスクにおいて第１記憶手段の記憶領域に対してデータの読み書きの判定を行うことができる。
【００１５】
請求項７に記載の電子装置では、第１記憶手段は、複数の記憶領域のうち複数種類のタスクによってデータの読み出し及び書き込みに利用される記憶領域を有し、通常処理において複数種類のタスクによって利用される記憶領域に対して判定処理を行う場合、複数種類のタスクのうち最上位のタスクにて判定処理を実行することを特徴とする。
【００１６】
これにより、複数種類のタスクによって利用される記憶領域に対して、例えば、下位のタスクにおいてデータの読み書きチェックが実行されているときに、そのタスクよりも上位のタスクがチェック中のテストコードを誤って利用しないようにすることができる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態における電子装置に関して、図面に基づいて説明する。
【００１８】
（第１の実施形態）
図１は、本実施形態における電子装置１００の概略構成を示すブロック図である。同図に示すように、電子装置１００は、通常のコンピュータとして構成されており、内部には、プログラムに従って動作する周知のＣＰＵ１１０、ＣＰＵ１１０を動作させるのに必要なプログラムやデータを格納するＲＯＭ１２０、データの入出力を行う入出力部１３０、ＣＰＵ１１０の演算結果等を一時的に格納するＲＡＭ１４０、及びこれらの構成を接続するバスライン（図示せず）が備えられている。この電子装置１００は、例えば、自動車に搭載される、内燃機関型エンジンの制御を行うエンジン制御装置等に用いられるものである。
【００１９】
ＲＯＭ１２０には、電子装置１００の電源投入後にデータの初期化等を行う起動処理、エンジン制御を実行する通常処理、及び電子装置１００の電源切断時に行う終了処理等の各種のアプリケーションプログラムが書き込まれている。また、後述するＲＡＭチェックにおいて使用されるテストコードが書き込まれている。
【００２０】
ＣＰＵ１１０は、電源が供給されると、ＲＯＭ１２０内に記憶された起動処理プログラムをコールして、このプログラムを実行する。そして、起動処理が完了すると、エンジン制御を実行する通常処理プログラムをコールする。そして、この通常処理プログラムを実行する。この通常処理プログラムにおいて、ＣＰＵ１１０が実行するタスクを次に説明する。
【００２１】
図３は、通常処理プログラムにおいて、ＣＰＵ１１０が実行するサブルーチンプログラム（以下、タスクと呼ぶ）を示したものである。同図に示すように、通常処理プログラムでは、主として割り込みタスクと通常タスクを実行する。割り込みタスクは、例えば、エンジン制御に必要な信号を外部から入力したり、エンジンを制御するための信号を外部へ出力したりする、いわゆる外部割り込みのタスクである。
【００２２】
一方、通常タスクは、上述したように、エンジン制御を実行するタスクであり、エンジン制御の重要度に対応した３段階のレベル（Ｈｉｇｈ、Ｍｉｄｄｌｅ、Ｌｏｗ）にタスクが分割されている。このうち、通常タスク（Ｌｏｗレベル）には、後述するＲＡＭ１４０の第１ＲＡＭ１４１のアドレス毎にデータの読み書きが正常におこなわれるか否かを判定するＲＡＭチェックの機能が含まれており、この通常タスク（Ｌｏｗレベル）にＣＰＵ１１０の使用権が与えられた場合には、このＲＡＭチェックの機能が実行される。
【００２３】
なお、上述したＲＡＭチェックの機能は、他の通常タスク（Ｈｉｇｈレベル又はＭｉｄｄｌｅレベル）に含まれる機能であってもよいし、割り込みタスクに含まれる機能であってもよい。
【００２４】
また、図３に示すように、全てのタスクには優先順位が各々割当てられており、この優先順位に従って、上位のタスクからＣＰＵ１１０の使用権が与えられる。そして、実行中のタスクよりも上位のタスクを実行する場合には、実行中のタスクの実行を一時中断して上位のタスクを実行し、その上位のタスクの実行が終了すると、一時中断していたタスクを継続して実行する。
【００２５】
例えば、優先順位が「３」である通常タスク（Ｍｉｄｄｌｅレベル）が実行している場合に、その優先順位よりも上位である割り込みタスクを実行する場合には、それまで実行していた通常タスク（Ｍｉｄｄｌｅレベル）を一時中断して割り込みタスクを実行し、この割り込みタスクが終了すると、一時中断した通常タスク（Ｍｉｄｄｌｅレベル）を継続して実行する。
【００２６】
ＲＡＭ１４０は、データの読み書きが可能な揮発性の記憶装置等が用いられる。このＲＡＭ１４０は、図２に示すように、データを一時的に書き込んだり読み込んだりする第１ＲＡＭ１４１と、上述したＲＡＭチェックの実行時に第１ＲＡＭ１４１に記憶されるデータを一時的に退避するために用いる第２ＲＡＭ１４２とによって構成されている。
【００２７】
なお、本実施形態のように、２つの異なる記憶装置によってＲＡＭ１４０を構成するものであってもよいし、ＲＡＭ１４０の記憶領域を２つの記憶領域に分割し、この２つに分割された記憶領域により、第１ＲＡＭ１４１及び第２ＲＡＭ１４２を構成してもよい。
【００２８】
次に、本実施形態の特徴部分である、通常処理において実行される通常タスク（Ｌｏｗレベル）のＲＡＭチェック機能の処理について、図３及び図４に示すフローチャートを用いて説明する。なお、ＣＰＵ１１０の使用権が通常タスク（Ｌｏｗレベル）に与えられているとする。
【００２９】
通常タスク（Ｌｏｗレベル）にＣＰＵ１１０の使用権が与えられると、図４のステップＳ１０では、第１ＲＡＭ１４１のチェック対象となるアドレスのデータを退避用の第２ＲＡＭ１４２へコピーする。なお、ＲＡＭチェックが初めて実行される場合には、チェック対象となるアドレスは、第１ＲＡＭ１４１の先頭アドレスとなる。
【００３０】
ステップＳ１１では、通常タスク（Ｌｏｗレベル）以外の全てのタスクの割り込みを禁止する。例えば、通常タスク（Ｌｏｗレベル）に割当てられたＣＰＵ１１０使用権の優先順位を最上位に変更する。あるいは、通常タスク（Ｌｏｗレベル）以外の全てのタスクの優先順位を通常タスク（Ｌｏｗレベル）に割当てられた優先順位よりも下位の順位に変更する。これにより、通常タスク（Ｌｏｗレベル）は最上位の優先順位となるため、他のタスクの割り込みを禁止することができる。
【００３１】
ステップＳ１２では、ＲＯＭ１２０に格納されるテストコードを抽出し、この抽出したテストコードをチェック対象のアドレスへ書き込む。ステップＳ１３では、ステップＳ１２において書き込んだアドレスのコードを読み込む。
【００３２】
ステップＳ１４では、ステップＳ１３において読み込んだコードと、ＲＯＭ１２０から抽出したテストコードとが一致するか否かを判定する。ここで、両コードが一致する場合には、ステップＳ１６へ処理を移行し、両コードが一致しない場合には、ステップＳ１５へ処理を進める。
【００３３】
ステップＳ１５では、ＲＡＭＣｈｋフラグを「ＮＧ」とする。なお、このＲＡＭＣｈｋフラグの初期値は「ＯＫ」とする。ステップＳ１６では、退避用の第２ＲＡＭ１４２に書き込んだデータを読み込み、チェック対象のアドレスに書き込む。
【００３４】
ステップＳ１７では、割り込み禁止を解除する。すなわち、タスク毎に割当てられたＣＰＵ１１０使用権の優先順位を元の優先順位に変更する。ステップＳ１８では、チェック対象のアドレスを次のアドレスに更新する。ステップＳ１９では、チェック対象のアドレスが第１ＲＡＭ１４１の最終アドレスを超えたか否かを判定する。
【００３５】
ここで、肯定判定される場合には、第１ＲＡＭ１４１の全てのアドレスに対して読み書きチェックが完了しているため、ステップＳ２０にてチェック対象のアドレスを第１ＲＡＭ１４１の先頭アドレスに変更し、本処理を終了する。一方、否定判定される場合には、ステップＳ１０へ処理を移行し、上述した処理を繰り返す。
【００３６】
このように、本実施形態における電子装置１００は、データの読み書きを行う第１ＲＡＭに対してデータの読み書きが正常に行われるか否かを判定するＲＡＭチェックの機能を通常処理において実行する。これにより、データの読み書きが正常に行われるか否かの判定を定期的に実行することができる。また、このＲＡＭチェックを実行する際には、ＲＡＭチェックの機能を含むタスク以外の全てのタスクの実行を禁止するため、ＲＡＭチェックの機能において使用されるテストコードを、他のタスクが実行されるときに誤って使用することがない。
【００３７】
また、ＲＡＭチェックでは、ＲＡＭ１４０の退避用の第２ＲＡＭ１４２へ第１ＲＡＭ１４１内のチェック対象のアドレスに書き込まれたデータを退避させたうえで、第１ＲＡＭ１４１の各アドレスに対してデータの読み出し及び書き込みの判定を行うため、第１ＲＡＭ１４１に一時的にデータが格納されている場合であっても、そのデータを失うことなく、第１ＲＡＭ１４１に対してデータの読み書きが正常に行われるか否かの判定を実行することができる。また、ＲＡＭチェックを終了する場合には、退避させたデータを第１ＲＡＭ１４１の元のアドレスに書き込むため、ＲＡＭチェック以外の他のタスクにおいて誤ったデータを使用されることがなくなる。
【００３８】
なお、本実施形態におけるＲＡＭチェック機能は、第１ＲＡＭ１４１の全ての記憶領域が終了するまで処理を繰り返すものであるが、これに限定されるものではなく、例えば、ＲＡＭチェック機能を数回繰り返すことで、第１ＲＡＭ１４１の全ての記憶領域のチェックが終了するように処理してもよい。
【００３９】
（第２の実施形態）
第２の実施形態は、第１の実施形態によるものと共通するところが多いので、以下、共通部分についての詳しい説明は省略し、異なる部分を重点的に説明する。
【００４０】
第１の実施形態におけるＲＡＭチェックは、通常処理にて実行される通常タスク（Ｌｏｗレベル）に含まれ、他のタスクの割り込みを禁止したうえで実行するものであるが、本実施形態では、通常処理にて実行される各タスクにおける処理の１つとしてＲＡＭチェックが含まれており、各タスクの実行とともにＲＡＭチェックが実行される点で異なる。また、データの読み書きに使用されるＲＡＭ１４０の第１ＲＡＭ１４１がタスク種類毎に記憶領域が割当てられ、さらに、退避用の第２ＲＡＭ１４２についても、タスク種類毎に記憶領域が割当てられている点で異なる。
【００４１】
図６に、通常処理プログラムにおいてＣＰＵ１１０が実行するタスクを示す。
同図に示すように、本実施形態における通常処理プログラムは、複数種類のタスクによって分割されているとともに、各タスクにおける処理の１つとしてＲＡＭチェックの機能が含まれている。また、各タスクがＣＰＵ１１０によって実行される場合、その実行するタスクの種類にて利用されるＲＡＭ１４０の第１ＲＡＭ１４１に対して、データの読み書きチェックが行われる。
【００４２】
図７に、本実施形態におけるＲＡＭ１４０の構成を示す。同図に示すように、データを一時的に書き込んだり読み込んだりする第１ＲＡＭ１４１は、図６に示したタスクの種類毎に利用される記憶領域が割当てられている。また、ＲＡＭチェックの実行時に第１ＲＡＭ１４１に記憶されるデータを一時的に退避するために用いる退避用の第２ＲＡＭ１４２についても、タスクの種類毎に利用される記憶領域が割当てられている。
【００４３】
このように、第１ＲＡＭ１４１及び第２ＲＡＭ１４２の記憶領域をタスクの種類毎に割当てることで、各タスク間で誤ってデータの読み書きをすることがなくなる。従って、実行中のタスクを除く他のタスクの割り込みを禁止する必要がなくなる。
【００４４】
すなわち、各タスクにて実行されるＲＡＭチェックは、ＲＡＭ１４０の第１ＲＡＭ１４１のうち、実行中のタスクの種類に割当てられた記憶領域のみデータの読み書きを実行する。従って、例えば、ＣＰＵ１１０の使用権が新たなタスクに与えられ、実行中のＲＡＭチェックが一時中断されて新たなタスクが実行される場合であっても、各タスクの利用する記憶領域が予め割当てられているため、一時中断したＲＡＭチェックにて一時的に第１ＲＡＭ１４１へ記憶したテストコードを、その新たなタスクの実行によって読み込んだり上書きしたりすることがなくなる。
【００４５】
次に、通常処理のタスクの種類毎に実行されるＲＡＭチェックの機能の処理について、図８及び図９に示すフローチャートを用いて説明する。なお、各タスクにて行われるＲＡＭチェックは、データの読み書きを判定する第１ＲＡＭ１４１の記憶領域のみ異なる。
【００４６】
図８に示す処理は、第１の実施形態において説明したステップＳ１１及びステップＳ１７の割り込み禁止開始及び解除の処理を削除した点のみ異なるため、説明を省略する。
【００４７】
また、同図のステップＳ１５ａにおいて、タスクの種類毎にＲＡＭＣｈｋフラグ「割り込みタスクではＲＡＭＣｈｋ（Ｗ）フラグ、通常タスクＨｉｇｈレベルではＲＡＭＣｈｋ（Ｈ）フラグ、通常タスクＭｉｄｄｌｅレベルではＲＡＭＣｈｋ（Ｍ）フラグ、通常タスクＬｏｗレベルではＲＡＭＣｈｋ（Ｌ）フラグ」を設けた点のみ異なる。
【００４８】
各タスクにて、ＲＡＭチェックの機能が完了すると、図９に示す処理を実行する。同図に示す処理は、記憶領域１４１全体に対してデータの読み書きが正常に行われるか否かを判定するものである。この処理は、通常処理にて実行されるタスクのいずれかに含まれるものである。
【００４９】
同図のステップＳ３０では、各タスクにて判定されたＲＡＭＣｈｋ（Ｗ、Ｈ、Ｍ、Ｌ）フラグを参照し、全て「ＯＫ」であるか否かを判定する。ここで、全て「ＯＫ」である場合には、ステップＳ３１にて記憶領域１４１全体に対するＲＡＭＣｈｋフラグに［ＯＫ］を設定する。一方、各タスクにて判定されたＲＡＭＣｈｋ（Ｗ、Ｈ、Ｍ、Ｌ）フラグのうち、１つでも「ＮＧ」のフラグがある場合には、ステップＳ３２にて記憶領域１４１全体に対するＲＡＭＣｈｋフラグに［ＮＧ］を設定する。
【００５０】
このように、本実施形態では、通常処理の各タスクにおいて、エンジン制御処理や信号の入出力処理に加えてＲＡＭチェックの処理を実行することで、データの読み書きが正常に行われるか否かの判定が通常処理時において定期的に行われるようになる。
【００５１】
また、ＲＡＭチェックが実行される際、ＲＡＭ１４０の記憶領域１４１内に一時的にデータが記憶されている場合であっても、そのデータをタスクの種類毎に割当てられた退避用領域１４２内へ退避したうえでデータの読み書きの判定が実行されるため、一時的に記憶領域１４１に記憶されたデータを失うことなくなる。
【００５２】
さらに、実行中のタスクよりも優先順位が上位のタスクを割り込んで実行する場合であっても、その上位のタスクにおいてデータの読み書きの判定を行うことができる。
【００５３】
（変形例）
本実施形態では、タスクの種類毎にデータの読み書きを行う第１ＲＡＭ１４１の記憶領域が割当てられているが、複数種類のタスクで記憶領域が共有される場合もある。すなわち、複数種類のタスクで共通してデータの読み書きに利用する記憶領域も想定される。この場合には、その共有する複数種類のタスクのうち、例えば、優先順位が上位であるタスクの種類においてＲＡＭチェックを実行すればよい。
【００５４】
これにより、複数種類のタスクによって利用される記憶領域に対して、例えば、下位のタスクにおいてＲＡＭチェックが実行されているときに、そのタスクよりも上位のタスクがＲＡＭチェック中のテストコードを誤って利用しないようにすることができる。
【図面の簡単な説明】
【図１】第１の実施形態に係わる、電子装置１００の概略構成を示すブロック図である。
【図２】第１の実施形態に係わる、ＲＡＭ１４０の記憶領域を示すイメージ図である。
【図３】第１の実施形態に係わる、ＣＰＵ１１０が実行するタスクの種類とタスクを実行する優先順位を示す図である。
【図４】第１の実施形態に係わる、ＲＡＭ１４０に対するＲＡＭチェック処理の前半部分の流れを示すフローチャートである。
【図５】第１の実施形態に係わる、ＲＡＭ１４０に対するＲＡＭチェック処理の後半部分の流れを示すフローチャートである。
【図６】第２の実施形態に係わる、ＣＰＵ１１０が実行するタスクの種類とタスクを実行する優先順位を示す図である。
【図７】第２の実施形態に係わる、ＲＡＭ１４０の記憶領域を示すイメージ図である。
【図８】第２の実施形態に係わる、ＲＡＭ１４０に対するタスク毎に実行される読み書きチェック処理の流れを示すフローチャートである。
【図９】第２の実施形態に係わる、タスク毎に実行されたＲＡＭチェック結果からＲＡＭ１４０全体に対するＲＡＭチェック結果を判定する処理の流れを示すフローチャートである。
【符号の説明】
１００  電子装置
１１０  ＣＰＵ
１２０  ＲＯＭ
１３０  入出力部
１４０  ＲＡＭ
【図１】
2004227488.tif 000003
【図２】
2004227488.tif 000004
【図３】
2004227488.tif 000005
【図４】
2004227488.tif 000006
【図５】
2004227488.tif 000007
【図６】
2004227488.tif 000008
【図７】
2004227488.tif 000009
【図８】
2004227488.tif 000010
【図９】
2004227488.tif 000011