(57)【要約】  【課題】  マルチタスクシステムにおいて、システムのリソース消費量を抑制しつつ、検査時等の特殊処理時における作業効率の向上を実現することを目的とする。  【解決手段】  タスク管理部４６は、複数のタスク各々に各アプリケーション４１，４２，４３，４４…のいずれか１つ又は複数を割り当て、タスク毎に起動タイミングを管理する。タスク管理部４６は、タスク起動方式管理テーブル４７に書き込まれたタスク毎の起動方式に従って各タスクを起動させる。タスクが起動されると、ＲＴＯＳ４０は当該タスクを実行可能状態とし、優先度が最高ならばそれを実行させる。一方、外部検査ツールから検査モード移行信号が入力されると、検査用プログラム４５が実行され、起動方式の変更要求がなされる。これを受けたタスク管理部４６は、変更要求のあったタスクにつき、タスク起動方式管理テーブル４７の内容（起動方式）を変更要求に従って更新する。【選択図】  図２
2009251663.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクのいずれかを選択的に実行するマルチタスクシステムにおけるタスク制御方法であって、
前記複数のタスクの各々に、該タスクの起動方式を予め設定しておき、
前記タスク毎に、該タスクに設定されている前記起動方式に従って該タスクを起動させることにより該タスクを実行可能な状態にするタスク起動手順と、
該タスク起動手順にて起動されたタスクを所定の規則に従って実行するタスク実行手順と、
所定の条件が成立したときに、前記各タスクのうち１又は複数の変更対象タスクに対し、該タスクに設定されている前記起動方式の変更要求を行う変更要求手順と、
前記変更要求手順により前記変更要求がなされた場合に、対応するタスクに設定されている前記起動方式を該変更要求に応じた起動方式に変更するタスク起動方式変更手順と、
を備えることを特徴とするタスク制御方法。
【請求項２】
請求項１記載のタスク制御方法であって、
前記起動方式として、一定の周期で起動させる絶対周期起動方式を含む複数の起動方式を有し、
前記変更要求手順では、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記絶対周期起動方式へ変更すべき旨の要求を行う
ことを特徴とするタスク制御方法。
【請求項３】
請求項１又は２記載のタスク制御方法であって、
前記起動方式として、前回実行時における実行終了後から一定時間経過後に起動させる相対周期起動方式を含む複数の起動方式を有し、
前記変更要求手順では、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記相対周期起動方式へ変更すべき旨の要求を行う
ことを特徴とするタスク制御方法。
【請求項４】
請求項１〜３いずれかに記載のタスク制御方法であって、
前記起動方式として、所定のイベントが発生したときに起動させるイベント起動方式を含む複数の起動方式を有し、
前記変更要求手順では、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記イベント起動方式へ変更すべき旨の要求を行う
ことを特徴とするタスク制御方法。
【請求項５】
複数のタスクのいずれかを選択的に実行するマルチタスクシステムであって、
前記複数のタスクの各々に、該タスクの起動方式が予め設定されており、
前記タスク毎に、該タスクに設定されている前記起動方式に従って該タスクを起動させることにより該タスクを実行可能な状態とするタスク起動手段と、
該タスク起動手段にて起動されたタスクを所定の規則に従って実行するタスク実行手段と、
所定の条件が成立したときに、前記各タスクのうち１又は複数の変更対象タスクに対し、該タスクに設定されている前記起動方式の変更要求を行う変更要求手段と、
前記変更要求手段により前記変更要求がなされた場合に、対応するタスクに設定されている前記起動方式を該変更要求に応じた起動方式に変更するタスク起動方式変更手段と、
を備え、
前記タスク起動手段は、前記タスク起動方式変更手段によりタスクの起動方式が変更された場合、該変更されたタスクについては、該変更後の起動方式に従って起動させる
ことを特徴とするマルチタスクシステム。
【請求項６】
請求項５記載のマルチタスクシステムであって、
前記起動方式を変更すべき旨の指令を外部から入力できるよう構成されており、
前記所定の条件は、外部から前記指令が入力されることである
ことを特徴とするマルチタスクシステム。
【請求項７】
請求項５又は６記載のマルチタスクシステムであって、
前記起動方式として、一定の周期で起動させる絶対周期起動方式を含む複数の起動方式を有し、
前記変更要求手段は、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記絶対周期起動方式へ変更すべき旨の要求を行う
ことを特徴とするマルチタスクシステム。
【請求項８】
請求項５〜７いずれかに記載のマルチタスクシステムであって、
前記起動方式として、前回実行時における実行終了後から一定時間経過後に起動させる相対周期起動方式を含む複数の起動方式を有し、
前記変更要求手段は、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記相対周期起動方式へ変更すべき旨の要求を行う
ことを特徴とするマルチタスクシステム。
【請求項９】
請求項５〜８いずれかに記載のマルチタスクシステムであって、
前記起動方式として、所定のイベントが発生したときに起動させるイベント起動方式を含む複数の起動方式を有し、
前記変更要求手段は、前記変更要求として、少なくとも、所定の前記変更対象タスクに対する前記イベント起動方式へ変更すべき旨の要求を行う
ことを特徴とするマルチタスクシステム。
【請求項１０】
請求項５〜９いずれかに記載のマルチタスクシステムであって、
当該マルチタスクシステムの動作開始時に、前記各タスクに対して前記予め設定されている前記起動方式が、該タスク毎に対応付けられて記憶される、記憶手段を備え、
前記タスク起動手段は、前記タスク毎に、該タスクに対応付けられて前記記憶手段に記憶されている起動方式に従って、該タスクを起動させ、
前記タスク起動方式変更手段は、前記記憶手段に記憶されている起動方式を更新することにより、前記起動方式の変更を行う
ことを特徴とするマルチタスクシステム。
【請求項１１】
請求項５〜１０いずれかに記載のマルチタスクシステムであって、
マイクロコンピュータと、
前記マイクロコンピュータを、前記タスク起動手段、前記タスク実行手段、前記変更要求手段、及び前記タスク起動方式変更手段、として機能させるためのプログラムと、
を備えることを特徴とするマルチタスクシステム。
【請求項１２】
請求項５〜１０いずれかに記載のマルチタスクシステムであって、
前記タスク起動手段は、
前記タスク毎に、該タスクに設定された前記起動方式に従い、該タスクを起動させるための要求を出力する起動要求出力手段と、
前記起動要求出力手段による要求がなされたとき、対応するタスクを起動させることにより該タスクを実行可能な状態にする実行可能状態設定手段と、を備え、
前記タスク実行手段は、
前記実行可能状態設定手段により実行可能な状態にされたタスクの実行タイミングを前記規則に従って設定する実行タイミング設定手段と、
前記実行タイミング設定手段により設定された実行タイミングにてタスクを実行する実行手段と、を備えている
ことを特徴とするマルチタスクシステム。
【請求項１３】
請求項１２記載のマルチタスクシステムであって、
マイクロコンピュータと、
該マイクロコンピュータにより実行されるプログラムと、を備え、
前記プログラムは、
前記各タスクに対応した処理を実行させることにより前記実行手段としての機能を前記マイクロコンピュータに実現させるタスクプログラムと、
少なくとも前記実行可能状態設定手段及び前記実行タイミング設定手段としての機能を前記マイクロコンピュータに実現させるためのリアルタイムオペレーティングシステムと、
前記変更要求手段としての機能を前記マイクロコンピュータに実現させるための変更要求プログラムと、
少なくとも前記起動要求出力手段及び前記タスク起動方式変更手段としての機能を前記マイクロコンピュータに実現させるためのタスク制御プログラムと、
を備えることを特徴とするマルチタスクシステム。
【請求項１４】
請求項１３又は１４いずれかに記載のマルチタスクシステムであって、
当該マルチタスクシステムは車両に搭載されており、
前記タスクとして、該車両に搭載された所定の制御対象を制御するための車両制御用タスクを有する
ことを特徴とするマルチタスクシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクのいずれかを選択的に実行するマルチタスクシステムにおけるタスク制御方法、及びマルチタスクシステムに関する。
【背景技術】
【０００２】
従来、車両に搭載されて車両の各種制御を行う電子制御装置では、制御の広範囲化・高度化・高精度化が進むにつれて制御ソフトウェアの規模も増加の一途を辿っている。そのため、そういった大規模な制御システムの信頼性向上や開発コストの削減等を図るべく、複数タスクのリアルタイム処理能力に優れたリアルタイムオペレーティングシステム（以下「リアルタイムＯＳ」という）の導入が必須となりつつある。リアルタイムＯＳが導入された電子制御装置では、マイクロコンピュータ（以下「マイコン」という）が、リアルタイムＯＳの管理下で複数のタスクを並列に実行していくことにより、車両における所定の制御対象を制御する。
【０００３】
リアルタイムＯＳの管理下で複数のタスクが実行されるマルチタスクシステムでは、タスク毎に予め優先度が設定されていると共に、タスク毎にその起動方式（即ち、リアルタイムＯＳに対して実行（起床）を要求するタイミング）も予め設定されている。そして、タスクを管理するタスク管理部が、タスク毎にその起動方式に従ってタスクを起動させる（即ち、リアルタイムＯＳに対して実行を要求する）。起動されたタスクは、リアルタイムＯＳの管理下で実行可能状態となり、レディーキューに格納される。このとき、リアルタイムＯＳがレディーキューを走査し、現在実行されているタスクよりも優先度の高いタスクが存在していれば、ディスパッチを行ってその優先度の高いタスクを実行させる。
【０００４】
ところで、車両においてマルチタスクシステムを実現するよう構成されたマイコンに対しては、限られたリソースの中で複数のタスクが正常に動作できるか否かを、種々の方法で検証する必要がある。その一つとして、例えば、所定時間内におけるアイドルタスクの累積実行時間と定期実行タスクの実行回数とに基づいてシステムの負荷率・過負荷率を計測し、この計測結果を用いてプログラムの構築を好適化する技術が知られている（例えば、特許文献１参照。）。
【０００５】
これ以外にも、例えば車両出荷時等においてその動作性能の検査が行われるが、この検査で、通常動作時の設定内容で正常に動作するか否かを検査するのみならず、品質確認のために、種々の設定で動作させて性能検査を行う場合もある。具体的には、複数のタスクを種々のタイミングで動作させ、そのときの処理を検証するのである。
【０００６】
このように複数のタスクをある特定のタイミングで動作させてその処理を確認したいという状況（以下「特殊処理時」という）は、上述した検査時に限らず、今後も種々生じることが予想される。この特殊処理時には、各タスクを、上記予め設定された起動方式とは異なる起動方式で起動・実行させる必要がある。
【０００７】
しかし、上述したように、タスクの起動方式はタスク毎に予め設定されている。そこで、特殊処理時における動作確認を実現するために、従来は、例えば数個のタスクの設定を静的に何度も変更して、変更する度にコンパイルを実施し、マイコンに実行させるようにしていた。また例えば、予め、同じタスクを異なる起動方式毎に静的に多数設定し、それらのタスクを一斉に動作させることも行われていた。
【特許文献１】特許第３３７６９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特殊処理時の動作を確認すべく、タスクの起動方式を変えて動作確認をしようとする度に再度コンパイルを実施してマイコンに動作させることを繰り返す方法だと、作業効率が非常に悪い。即ち、例えば起動方式Ａが予め設定されているタスクについて、特殊処理時に起動方式Ａとは異なる起動方式Ｂ，Ｃ，・・・で動作させてみたい場合、その起動方式毎にコンパイルを実施する必要があり、作業負担が増大する。
【０００９】
一方、同じタスクを起動方式毎に多数用意しておいてそれらを一斉に動作させる方法は、再度コンパイルを繰り返す必要はないため、作業効率の悪化は避けられるものの、リソース不足の問題が生じるおそれがある。即ち、この方法では、本来必要なタスクとは別に、特殊処理時にしか実行されないタスクを相当数用意しておく必要があり、その分のリソースが必要となる。そのため、リソース消費量が増大し、リソース消費量をなるべく抑えたいような小リソースのシステムにおいては、リソースが不足してしまうという問題が生じるおそれがあるのである。
【００１０】
本発明は上記課題に鑑みなされたものであり、マルチタスクシステムにおいて、システムのリソース消費量を抑制しつつ、検査時等の特殊処理時における作業効率の向上を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するためになされた請求項１記載の発明は、複数のタスクのいずれかを選択的に実行するマルチタスクシステムにおけるタスク制御方法であって、複数のタスクの各々に、該タスクの起動方式を予め設定しておく。そして、タスク毎に、該タスクに設定されている起動方式に従って該タスクを起動させることにより該タスクを実行可能な状態にするタスク起動手順と、該タスク起動手順にて起動されたタスクを所定の規則に従って実行するタスク実行手順と、所定の条件が成立したときに、各タスクのうち１又は複数の変更対象タスクに対し、該タスクに設定されている起動方式の変更要求を行う変更要求手順と、この変更要求手順により変更要求がなされた場合に、対応するタスクに設定されている起動方式を該変更要求に応じた起動方式に変更するタスク起動方式変更手順とを備える。
【００１２】
即ち、各タスクは、通常は、タスク毎に予め設定されている起動方式に従って起動される（実行可能な状態となる）。しかし、本発明（請求項１）では、各タスクの起動方式が上記予め設定されている起動方式に静的に固定されておらず、起動方式の変更要求がなされた場合は、その変更要求がなされたタスクに設定されている起動方式が、その変更要求に応じて変更される。つまり、変更要求によってタスクの起動方式を動的に切り換えることができるのである。
【００１３】
従って、請求項１記載のタスク制御方法によれば、変更要求に応じてタスクの起動方式を動的に切り換えることができるため、例えば検査時等の特殊処理時において所定のタスクを異なる起動方式にて起動・動作させてその処理を確認するといった作業を行う必要がある場合に、システムのリソース消費量を抑制しつつ、その作業効率を向上させることが可能となる。
【００１４】
なお、どのタスクを変更対象タスクとするか、また、変更要求の内容、即ち変更対象タスクに対してその起動方式をどの起動方式へ変更するかは、適宜決めることができる。また、変更要求を行う所定の条件についても、種々考えられ、例えば、あるタスクの処理の一部として明示的に変更要求を出すことや、当該マルチタスクシステムの外部から入力される信号をトリガ（上記所定の条件）として変更要求を出すこと等が考えられる。
【００１５】
ここで、予め設定される起動方式や変更可能な起動方式の具体例としては、例えば請求項２〜４に記載のようなものが考えられる。
請求項２記載の発明は、請求項１記載のタスク制御方法であって、起動方式として、一定の周期で起動させる絶対周期起動方式を含む複数の起動方式を有する。そして、変更要求手順では、変更要求として、少なくとも、所定の変更対象タスクに対する絶対周期起動方式へ変更すべき旨の要求を行う。
【００１６】
この請求項２記載のタスク制御方法によれば、予め設定されている起動方式が絶対周期起動方式ではないタスクについて、必要に応じてそのタスクの起動方式を絶対周期起動方式に動的に切り換えて動作させ、その際の当該タスクの動作の検証やシステム全体の動作の検証を行うことが可能となる。
【００１７】
請求項３記載の発明は、請求項１又は２記載のタスク制御方法であって、起動方式として、前回実行時における実行終了後から一定時間経過後に起動させる相対周期起動方式を含む複数の起動方式を有する。そして、変更要求手順では、変更要求として、少なくとも、所定の変更対象タスクに対する相対周期起動方式へ変更すべき旨の要求を行う。
【００１８】
この請求項３記載のタスク制御方法によれば、予め設定されている起動方式が相対周期起動方式ではないタスクについて、必要に応じてそのタスクの起動方式を相対周期起動方式に動的に切り換えて動作させ、その際の当該タスクの動作の検証やシステム全体の動作の検証を行うことが可能となる。
【００１９】
請求項４記載の発明は、請求項１〜３いずれかに記載のタスク制御方法であって、起動方式として、所定のイベントが発生したときに起動させるイベント起動方式を含む複数の起動方式を有する。そして、変更要求手順では、変更要求として、少なくとも、所定の変更対象タスクに対するイベント起動方式へ変更すべき旨の要求を行う。
【００２０】
この請求項４記載のタスク制御方法によれば、予め設定されている起動方式がイベント起動方式ではないタスクについて、必要に応じてそのタスクの起動方式をイベント起動方式に動的に切り換えて動作させ、その際の当該タスクの動作の検証やシステム全体の動作の検証を行うことが可能となる。
【００２１】
次に、請求項５記載の発明は、複数のタスクのいずれかを選択的に実行するマルチタスクシステムであって、複数のタスクの各々に、該タスクの起動方式が予め設定されており、タスク毎に、該タスクに設定されている起動方式に従って該タスクを起動させることにより該タスクを実行可能な状態とするタスク起動手段と、このタスク起動手段にて起動されたタスクを所定の規則に従って実行するタスク実行手段と、所定の条件が成立したときに、各タスクのうち１又は複数の変更対象タスクに対し、該タスクに設定されている起動方式の変更要求を行う変更要求手段と、この変更要求手段により変更要求がなされた場合に、対応するタスクに設定されている起動方式を該変更要求に応じた起動方式に変更するタスク起動方式変更手段とを備える。そして、タスク起動手段は、タスク起動方式変更手段によりタスクの起動方式が変更された場合、該変更されたタスクについては、該変更後の起動方式に従って起動させる。
【００２２】
このように構成されたマルチタスクシステムでは、各タスクの起動方式が上記予め設定されている起動方式に静的に固定されておらず、変更要求手段により起動方式の変更要求がなされた場合は、その変更要求がなされたタスクに設定されている起動方式が、その変更要求に応じて変更される。つまり、変更要求によってタスクの起動方式を動的に切り換えることができるのである。
【００２３】
従って、請求項５記載のマルチタスクシステムによれば、変更要求に応じてタスクの起動方式を動的に切り換えることができるため、請求項１のタスク制御方法が実現され、請求項１と同様の効果が得られる。
【００２４】
請求項６記載の発明は、請求項５記載のマルチタスクシステムであって、外部から、起動方式を変更すべき旨の指令を入力できるよう構成されている。そして、上記所定の条件は、外部からその指令が入力されることである。
【００２５】
即ち、変更要求手段は、外部から指令が入力されたときに、起動方式の変更要求を行うのである。そのため、例えば通常時は各タスクを上記予め設定された起動方式で起動させ、必要に応じて、外部から指令を入力することによって特定のタスク（変更対象タスク）の起動方式を異なる起動方式に切り換えて動作させる、といったことが可能となる。
【００２６】
従って、請求項６記載のマルチタスクシステムによれば、起動方式の変更要求を行うタイミングを外部からの指令によって自由に設定できるため、無駄なリソースの消費をより低減させることができ、且つ、特殊処理時の作業効率をより向上させることができる。
【００２７】
請求項７記載の発明は、請求項５又は６記載のマルチタスクシステムであって、起動方式として、一定の周期で起動させる絶対周期起動方式を含む複数の起動方式を有する。そして、変更要求手段は、変更要求として、少なくとも、所定の変更対象タスクに対する絶対周期起動方式へ変更すべき旨の要求を行う。
【００２８】
このように構成された請求項７記載のマルチタスクシステムによれば、請求項２記載のタスク制御方法が実現され、請求項２と同様の効果が得られる。
また、請求項８記載の発明は、請求項５〜７いずれかに記載のマルチタスクシステムであって、起動方式として、前回実行時における実行終了後から一定時間経過後に起動させる相対周期起動方式を含む複数の起動方式を有する。そして、変更要求手段は、変更要求として、少なくとも、所定の変更対象タスクに対する相対周期起動方式へ変更すべき旨の要求を行う。
【００２９】
このように構成された請求項８記載のマルチタスクシステムによれば、請求項３記載のタスク制御方法が実現され、請求項３と同様の効果が得られる。
また、請求項９記載の発明は、請求項５〜８いずれかに記載のマルチタスクシステムであって、起動方式として、所定のイベントが発生したときに起動させるイベント起動方式を含む複数の起動方式を有する。そして、変更要求手段は、変更要求として、少なくとも、所定の変更対象タスクに対するイベント起動方式へ変更すべき旨の要求を行う。
【００３０】
このように構成された請求項９記載のマルチタスクシステムによれば、請求項４記載のタスク制御方法が実現され、請求項４と同様の効果が得られる。
請求項１０記載の発明は、請求項５〜９いずれかに記載のマルチタスクシステムであって、当該マルチタスクシステムの動作開始時に、前記各タスクに対して前記予め設定されている前記起動方式が、該タスク毎に対応付けられて記憶される、記憶手段を備える。そして、タスク起動手段は、タスク毎に、該タスクに対応付けられて記憶手段に記憶されている起動方式に従って、該タスクを起動させ、タスク起動方式変更手段は、記憶手段に記憶されている起動方式を更新することにより、起動方式の変更を行う。
【００３１】
このように構成された請求項１０記載のマルチタスクシステムでは、各タスクの起動方式は記憶手段に記憶され、この記憶された起動方式に従って各タスクが起動される。そして、起動方式の変更要求に対しては、この記憶手段に記憶されている内容が更新される。
【００３２】
そのため、起動方式の変更要求がなされた場合にその要求内容を確実に反映させることができる。しかも、起動方式を元の方式（予め設定された方式）に戻したいときは当該マルチタスクシステムを再起動させることで実現できる。
【００３３】
請求項５〜１０いずれかに記載のマルチタスクシステムは、例えば請求項１１に記載のように、マイクロコンピュータと、このマイクロコンピュータを、タスク起動手段、タスク実行手段、変更要求手段、及びタスク起動方式変更手段、として機能させるためのプログラムとにより実現可能である。
【００３４】
また、請求項５〜１０いずれかに記載のマルチタスクシステムにおける、タスク起動手段及びタスク実行手段は、より具体的には、例えば請求項１２に記載のように構成することができる。
【００３５】
即ち、タスク起動手段は、タスク毎に、該タスクに設定された起動方式に従い、該タスクを起動させるための要求を出力する起動要求出力手段と、起動要求出力手段による要求がなされたとき、対応するタスクを起動させることにより該タスクを実行可能な状態にする実行可能状態設定手段と、を備えている。また、タスク実行手段は、実行可能状態設定手段により実行可能な状態にされたタスクの実行タイミングを上記規則に従って設定する実行タイミング設定手段と、この実行タイミング設定手段により設定された実行タイミングにてタスクを実行する実行手段と、を備えている。
【００３６】
そして、このように構成された請求項１２記載のマルチタスクシステムは、例えば請求項１３に記載のように、マイクロコンピュータと、このマイクロコンピュータにより実行されるプログラムとを備えたものとして実現できる。プログラムとしては、より具体的には、各タスクに対応した処理を実行させることにより実行手段としての機能をマイクロコンピュータに実現させるタスクプログラムと、少なくとも実行可能状態設定手段及び実行タイミング設定手段としての機能をマイクロコンピュータに実現させるためのリアルタイムオペレーティングシステムと、変更要求手段としての機能をマイクロコンピュータに実現させるための変更要求プログラムと、少なくとも起動要求出力手段及びタスク起動方式変更手段としての機能をマイクロコンピュータに実現させるためのタスク制御プログラムとを備えている。
【００３７】
また、請求項１４記載の発明は、請求項１３又は１４いずれかに記載のマルチタスクシステムであって、当該マルチタスクシステムは車両に搭載されており、タスクとして、該車両に搭載された所定の制御対象を制御するための車両制御用タスクを有する。
【００３８】
マイクロコンピュータによって車両を制御するにあたっては、制御の広範囲化・高度化・高精度化に伴い、限られたリソースを有効に利用することが要求されるが、本発明（請求項１４）によれば、タスクの起動方式を動的に切り換えることができるため、例えば検査時等の特殊処理時において所定のタスクを異なる起動方式にて起動・動作させてその処理を確認するといった作業を行う必要があっても、限られたリソースを有効に活用することができる。
【発明を実施するための最良の形態】
【００３９】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
図１は、本発明が適用された実施形態の車載電子制御装置（ＥＣＵ）１の構成を表す説明図である。図１に示す如く、本実施形態のＥＣＵ１は、車両における所定の制御対象（例えばエンジン）を制御するための各種処理を実行するマイコン１０と、制御対象の動作状態（例えばエンジン回転数、冷却水温度等）を検出する様々なセンサ２２からの信号を入力して波形整形やＡ／Ｄ変換等を行うことにより、それら各信号をマイコン１０に取り込ませる入力インタフェース１８と、マイコン１０からの制御信号に応じて、制御対象を動作させるための各種アクチュエータ２１へ駆動信号を出力する出力インタフェース１７と、マイコン１０の動作（ひいてはＥＣＵ１の動作）を検査する際に外部検査ツール３０が接続され、この外部検査ツール３０とマイコン１０との間で各種検査信号の入出力を行う検査信号入出力インタフェース１９と、を備えている。
【００４０】
マイコン１０は、本発明のマルチタスクシステムとしての機能を実現するものであり、プログラムを実行する周知のマイクロプロセッサユニット（ＭＰＵ）１１と、このＭＰＵ１１により実行されるプログラムが予め記憶されたＲＯＭ１２と、ＭＰＵ１１による演算結果や後述するタスク起動方式が記憶されるＲＡＭ１３と、後述するタスク起動周期チェック処理（図７）の実行タイミング決定に用いられるタイマ１４と、各インタフェース１７，１８，１９との間で信号のやりとりをするための入出力ポート（Ｉ／Ｏ）１５とが備えられ、これらがバス１６を介して接続されている。
【００４１】
外部検査ツール３０は、例えばマイコン１０の開発段階での動作検証時、車両搭載前のＥＣＵ１の動作検証時、或いは車両出荷前の最終段階におけるＥＣＵ１が車両に搭載された状態での動作検証時など、マイコン１０の動作を検証・確認する際に、マイコン１０の検査信号入出力インタフェース１９に接続して用いられるものである。
【００４２】
外部検査ツール３０がマイコン１０に接続された状態で、この外部検査ツール３０からマイコンへ所定の信号を送信すると、マイコン１０はその信号に従って検査モード（特殊処理モード）に移行し、その信号に応じた所定の処理（特殊処理）を実行する。そして、処理の内容に応じて、マイコン１０からも外部検査ツール３０へ各種信号が出力される。このマイコン１０からの各種信号を外部検査ツール３０が受信・処理することで、マイコン１０の動作状態を検証することができる。
【００４３】
次に、マイコン１０のソフトウェア構成を、図２を用いて説明する。図２は、ＭＰＵ１１により実行される各種ソフトウェア（プログラム）の構成を示す説明図である。図２に示すように、ＭＰＵ１１により実行されるソフトウェアとして、少なくとも、リアルタイムＯＳ（ＲＴＯＳ）４０と、特定の処理を実行する複数のアプリケーション（ＡＰ）であるＡＰ−ａ４１，ＡＰ−ｂ４２，ＡＰ−ｃ４３，ＡＰ−ｄ４４・・・と、マイコン１０を検査モードに移行させるための検査用プログラム４５と、後述する各タスクの管理を行うタスク管理部４６とが備えられている。
【００４４】
なお、タスク管理部４６は、その実体はソフトウェア（プログラム）であるが、以下の説明では、適宜、このタスク管理部４６を主体として「・・・実行する」といった類の表現も用いる。その場合、実際にはマイコン１０がタスク管理部４６としての各種プログラムを実行することによって実現されるものであることを意味する。
【００４５】
複数のアプリケーションＡＰ−ａ４１，ＡＰ−ｂ４２，ＡＰ−ｃ４３，ＡＰ−ｄ４４・・・としては、制御対象を制御するための各種処理、他のＥＣＵとの通信処理、マイコン１０の動作チェック処理、ＲＯＭ１２やＲＡＭ１３のチェック処理、故障時の通信処理など、各種の処理を行うものが適宜用意されている。
【００４６】
タスク管理部４６は、各アプリケーション４１，４２，４３，４４・・・をそれぞれ複数のタスクのいずれかに割り当てると共に、各タスクを、それぞれ設定されている起動方式に従って起動させ、ＲＴＯＳ４０に対してタスクの実行（起床）や終了を要求する。
【００４７】
なお、ここでいうタスクの「起動」とは、ＲＴＯＳ４０に対して当該タスクを実行可能な状態（Ｒｅａｄｙ状態）に遷移させるよう要求することを意味する。つまり、タスク管理部４６があるタスクを起動させると、ＲＴＯＳ４０は、当該タスクを実行可能な状態に遷移させる。このとき、ＲＴＯＳ４０は、周知の如く、この実行可能状態となったタスクをレディーキューに格納する。そして、レディーキューを走査して、現在実行されているタスクを含めて最も優先度の高いタスクを探し、現在実行中のタスクが最も優先度が高ければそのままそのタスクの実行を継続させ、現在実行中のタスクよりも優先度の高いタスクがあれば、ディスパッチを行ってその優先度の高いタスクを実行させる。なお、この優先度は本発明の所定の規則に相当するものである。
【００４８】
本実施形態では、図３に示すように、各アプリケーションがそれぞれ各タスクＡ，Ｂ，Ｃ，Ｄ，Ｅ・・・のいずれかに割り当てられている。具体的には、タスクＡにはＡＰ−ａ４１とＡＰ−ｃ４３が割り当てられており、タスクＢにはＡＰ−ｂ４２が割り当てられており、タスクＣにはＡＰ−ｄ４４が割り当てられている。他のタスクＤ，Ｅ・・・にも、それぞれ、図示しない１又は複数のアプリケーションが割り当てられている。
【００４９】
そして、各タスクには、それぞれ起動方式が設定されている。即ち、タスク管理部４６は、マイコン１０の動作開始が開始されると、当該タスク管理部４６の処理の一つとして、ＲＡＭ１３における所定の領域に設定されたタスク起動方式管理テーブル４７に、各タスクの起動方式を書き込む。そして、このタスク起動方式管理テーブル４７の内容に基づいて、タスク毎にその起動方式を周期的にチェックする。そして、起動すべきタスクがあれば、そのタスクを起動させ、ＲＴＯＳ４０に対してそのタスクを実行させるよう要求する。
【００５０】
タスクの起動方式として、本実施形態では、主として絶対周期起動方式、相対周期起動方式、及びイベント起動方式、の３種類の起動方式が用意されている。そして、図４に例示するように、各タスクＡ，Ｂ，Ｃ，Ｄ，Ｅ・・・のそれぞれに対し、上記３種類のうちいずれかの起動方式がデフォルトで設定されている。
【００５１】
絶対周期起動方式は、処理遅れに関係なく、一定周期で起動される方式である。図５（ａ）に、絶対周期起動方式にて起動され動作する（実行される）タスクの動作例を示す。図５（ａ）に例示するように、絶対周期起動方式では、タスクは一定周期（本例では２００ｍｓ毎）に起動される。
【００５２】
なお、図５（ａ）では、いずれの起動タイミングにおいても自身の優先度が最も高くて即座に実行された場合が例示されているが、これはあくまでも一例であり、起動されて実行可能な状態になっても、他に優先度の高いタスクが実行中であれば、少なくともそのタスクが終了するまで実行されないことはいうまでもない。図５（ｂ），図５（ｃ），及び後述する図１０についても同様である。
【００５３】
相対周期起動方式は、前回実行時における実行終了後、一定時間経過後に起動される方式である。つまり、タスクを起動させるタイミングの基準となるのはあくまでも前回実行した際におけるその終了時であり、前回の終了時から一定時間経過後に起動される。図５（ｂ）に、相対周期起動方式にて起動され動作するタスクの動作例を示す。図５（ｂ）に例示するように、相対周期起動方式では、タスクの動作が終了してから一定時間（本例では１００ｍｓ）経過後に起動される。
【００５４】
イベント起動方式は、外部からのイベントをトリガにして起動される方式である。図５（ｃ）に、イベント起動方式にて起動され動作するタスクの動作例を示す。図５（ｃ）に例示するように、イベント起動方式では、時間には関係なく、起動させるべき何らかのイベントが発生した場合に起動される。
【００５５】
本実施形態では、マイコン１０が動作を開始する初期状態では、既述の通り、各タスクの起動方式（図４参照）がそれぞれタスク毎に対応付けられてタスク起動方式管理テーブル４７に書き込まれる。そして、タスク管理部４６が、タスク起動方式管理テーブル４７に書き込まれた各タスクの起動方式を周期的にチェックし、起動させるべきタスクがあればそれを起動させる。そのため、通常は、各タスクはそれぞれデフォルトで設定されている起動方式（図４参照）に従って起動されることになる。
【００５６】
しかし、本実施形態では、各タスクの起動方式が図４に示したデフォルトでの起動方式に静的に設定（固定）されているわけではなく、必要に応じていずれか１つ又は複数のタスクについてその起動方式を変更することができる。具体的には、本実施形態では、外部検査ツール３０を用いてマイコン１０の動作を検証する際に、所定のタスクの起動方式が変更される。
【００５７】
即ち、マイコン１０の動作を検証すべく、マイコン１０に外部検査ツール３０を接続して、外部検査ツール３０からマイコン１０へ検査モード移行信号を出力すると、マイコン１０では、割り込み処理により検査用プログラム４５が実行される。検査用プログラム４５は、マイコン１０を検査モードに移行させるためのプログラムであり、主として、タスク管理部４６に対してタスク起動方式の変更要求を行うものである。この変更要求は、変更対象のタスクを指定すると共に、その変更対象のタスク毎にどの起動方式へ変更すべきかを指定するものである。
【００５８】
図６に、検査用プログラム４５による検査モード移行処理の内容を示す。外部検査ツール３０からの検査モード移行信号によってこの検査モード移行処理が開始されると、タスク管理部４６に対する、タスク起動方式の変更要求がなされる（Ｓ３１０）。
【００５９】
なお、複数のタスクのうち、起動方式を変更する対象となるタスクをどれにするか、或いは、どのタスクをどの起動方式に変更するかについては、タスクの種類や検査の目的等に応じて適宜設定することができる。
【００６０】
このように、検査用プログラム４５の実行によってタスク起動方式の変更要求がなされると、タスク管理部４６は、指定された変更対象のタスクそれぞれについて、指定された起動方式への変更（切り換え）を行う。具体的には、変更対象のタスクに対応付けられてタスク起動方式管理テーブル４７（ＲＡＭ１３）に書き込まれている起動方式を、変更要求により指定されている起動方式に更新する。これにより、その変更対象タスクは、以後、変更された起動方式にて起動されることとなる。
【００６１】
次に、タスク管理部４６の具体的処理内容について説明する。まず、図７は、マイコン１０にて実行されるタスク管理部４６としての処理内容の１つである、タスク起動周期チェック処理を示すフローチャートである。このタスク起動周期チェック処理は、マイコン１０の動作開始後、タイマ１４の値を基に、所定の周期で繰り返し実行されるものである。
【００６２】
このタスク起動周期チェック処理が開始されると、まず、全てのタスクのうち１つがチェック対象タスクとして選択される（Ｓ１１０）。そして、その選択されたタスクの起動方式が判断される（Ｓ１２０）。この起動方式の判断は、既述の通り、タスク起動方式管理テーブル４７に書き込まれたタスク毎の起動方式を参照して行われる。
【００６３】
ここで、起動方式がイベント起動方式ならば、イベントが発生しているか否かが判断され（Ｓ１３０）、イベントが発生している場合は（Ｓ１３０：ＹＥＳ）、当該タスクを起動させ、ＲＴＯＳ４０に対してその実行を要求する（Ｓ１４０）。これにより当該タスクは、とりあえず実行可能な状態となり、他に優先度の高い実行可能状態のタスク或いは実行中のタスクがなければ、実行されることとなる。Ｓ１４０によるタスクの起動後、又はＳ１３０の判断時においてイベントが発生していなかった場合は、Ｓ２２０に移行する。
【００６４】
一方、Ｓ１２０の判断処理において、チェック対象タスクの起動方式が絶対周期起動方式ならば、当該タスクに対応した周期計測カウンタに基づき、起動周期時間が経過しているか否か、即ち、前回の起動時から所定の起動周期時間（図５（ａ）の例では２００ｍｓ）が経過しているか否かが判断される（Ｓ１５０）。
【００６５】
ここで、周期計測カウンタは、タスク管理部４６としてのプログラムに組み込まれ、絶対周期起動方式のタスク及び相対周期起動方式のタスクの各々に対して設定されるものであり、絶対周期起動方式のタスクの場合は、対応する周期計測カウンタは当該タスクが起動される度にクリアされ、相対周期起動方式のタスクの場合は、対応する周期計測カウンタは当該タスクの実行終了時にクリアされる。
【００６６】
Ｓ１５０の判断処理において、まだ起動周期時間が経過していないと判断された場合は、周期計測カウンタのカウント値をカウントアップして（Ｓ１８０）、Ｓ２２０に移行する。起動周期時間が経過していると判断された場合は（Ｓ１５０：ＹＥＳ）、周期計測カウンタをクリアした上で（Ｓ１６０）、Ｓ１４０と同様、当該タスクを起動させてＲＴＯＳ４０に対してその実行を要求し（Ｓ１７０）、Ｓ２２０に移行する。
【００６７】
また、Ｓ１２０の判断処理において、チェック対象タスクの起動方式が相対周期起動方式ならば、当該タスクに対応した周期計測カウンタに基づき、起動周期時間が経過しているか否か、即ち、前回の実行終了時から所定の起動周期時間（図５（ｂ）の例では１００ｍｓ）が経過しているか否かが判断される（Ｓ１９０）。
【００６８】
そして、まだ起動周期時間が経過していないと判断された場合は（Ｓ１９０：ＮＯ）、周期計測カウンタのカウント値をカウントアップして（Ｓ２１０）、Ｓ２２０に移行する。起動周期時間が経過していると判断された場合は（Ｓ１９０：ＹＥＳ）、当該タスクを起動させてＲＴＯＳ４０に対してその実行を要求し（Ｓ１７０）、Ｓ２２０に移行する。
【００６９】
相対周期起動方式の場合、タスクの起動タイミングの決定基準となるのはあくまでも実行終了時である。そのため、図示は省略したものの、Ｓ２００でタスクが起動された後も、当該タスクの実行が終了するまでは、周期計測カウンタのカウントアップは継続される。
【００７０】
Ｓ２２０では、全てのタスクについてチェック完了したか否かが判断される。このとき、全てチェック完了していれば一旦このタスク起動周期チェック処理を終了するが、未チェックのタスクがまだあれば（Ｓ２２０：ＮＯ）、再びＳ１１０以下の処理が繰り返される。つまり、全てのタスクについて、Ｓ１１０以下の処理（起動させるべきか否かのチェック）が行われるのである。
【００７１】
次に、検査モード移行時、即ち外部検査ツール３０からの検査モード移行信号によって、検査用プログラム４５が実行され（図６参照）、タスク起動方式の変更要求がなされたときに、タスク管理部４６が実行するタスク起動方式変更処理について、図８に基づいて説明する。
【００７２】
このタスク起動方式変更処理が開始されると、まず、変更対象タスクのうち１つが選択される（Ｓ４１０）。そして、その選択された変更対象タスクに対してどの起動方式への変更が要求されているかが判断される（Ｓ４２０）。ここで、イベント起動方式への変更が要求されているならば、ＲＡＭ１３のタスク起動方式管理テーブル４７における、当該変更対象タスクに対応付けられて書き込まれている起動方式を、イベント起動方式に変更（更新）する（Ｓ４４０）。
【００７３】
一方、要求されている起動方式が相対周期起動方式又は絶対周期起動方式ならば、当該変更対象タスクに対応した周期計測カウンタをクリアした上で（Ｓ４３０）、起動方式管理テーブル４７における当該変更対象タスクに対応付けられて書き込まれている起動方式を、その要求されている起動方式に変更する（Ｓ４４０）。Ｓ４４０による起動方式の変更後は、全ての変更対象タスクについて起動方式の変更が完了したか否かが判断され（Ｓ４５０）、全て完了していれば（Ｓ４５０：ＹＥＳ）、このタスク起動方式変更処理を終了するが、まだ変更していない変更対象タスクがあれば（Ｓ４５０：ＮＯ）、再びＳ４１０以下の処理が実行される。
【００７４】
このように、検査用プログラム４５の実行によるタスク起動方式の変更要求によって、変更対象タスクの起動方式が変更されると、タスク起動方式管理テーブル４７における各変更対象タスクの起動方式はその変更後の起動方式に書き換えられた状態となる。そのため、これら変更対象タスクについては、以後、その変更後の起動方式に従って起動されることとなる。
【００７５】
次に、起動されて実行可能な状態になったタスクが、ＲＴＯＳ４０のタスクスケジューリング・ディスパッチによって実際に実行されるときは、タスク管理部４６は、図９に示すタスク実行処理を実行する。
【００７６】
このタスク実行処理が開始されると、まず、その実行対象のタスクに割り当てられているアプリケーションに対する、処理の実施タイミングが通知され、これにより、当該アプリケーションの処理が実行される（Ｓ５１０）。このＳ５１０の処理は、実行対象のタスクに割り当てられている全てのアプリケーションに対し、プログラムで記述されている流れに従って順次行われる。
【００７７】
そして、実行対象のタスクの処理が完了すると、このタスクの起動方式が判断される（Ｓ５２０）。ここで、絶対周期起動方式又はイベント起動方式ならば、ＲＴＯＳ４０に対して当該タスクが終了した旨のシステムコールが行われ（Ｓ５４０）、このタスク実行処理が終了する。一方、起動方式が相対周期起動方式ならば、Ｓ５４０のシステムコールの前に、当該タスクに対応した周期計測カウンタがクリアされる（Ｓ５３０）。
【００７８】
つまり、本実施形態のＥＣＵ１では、通常時は、マイコン１０の動作開始時にデフォルトで設定（タスク起動方式管理テーブル４７に書き込まれる）起動方式に従って、タスク管理部４６が、図７のタスク起動周期チェック処理を周期的に行うと共に、ＲＴＯＳ４０によって実際にいずれかのタスクが実行される際は、図９のタスク実行処理を行う。
【００７９】
一方、外部検査ツール３０が接続され、検査モードに移行する際は、検査用プログラム４５の実行によりタスク起動方式の変更要求がなされる。この場合、タスク管理部４６は、変更要求されたタスクについて、そのタスクに対応付けられてタスク起動方式管理テーブル４７に書き込まれている当該タスクの起動方式を、変更要求に応じた起動方式に変更する。
【００８０】
そのため、例えば、あるタスクについて、通常処理時は絶対周期起動方式にて動作させるものの検査モード時にはイベント起動方式に変更して起動させたい、という場合には、検査用プログラム４５を、そのタスクについては検査モード時にイベント起動方式に変更されるように構成すれば、そのように変更することが可能となる。そしてその場合、具体的には、図１０に例示するような動作が実現される。
【００８１】
図１０は、通常処理時は絶対周期起動方式にて動作させるものの検査モード時にはイベント起動方式で起動させたいタスクについて、その動作例を示すものである。図１０に示すように、時刻ｔ１より前の通常処理時では、起動方式が絶対周期起動方式に設定されているため、予め設定された一定周期（本例では１００ｍｓ毎）に起動される。
【００８２】
そして、時刻ｔ１において、外部検査ツール３０からの検査モード移行信号によって検査モードに移行すると、起動方式がイベント起動方式に変更される。そのため、時刻ｔ１以後の特殊処理時は、定期的な起動は行われなくなり、対応するイベントが発生した場合にのみタスクが起動されるようになる。
【００８３】
以上説明したように、本実施形態のＥＣＵ１では、各タスクの起動方式がタスク毎に予めデフォルトで設定されており、ＲＡＭ１３のタスク起動方式管理テーブル４７に書き込まれることによって管理されている。また、検査モード時に所定のタスクについてその起動方式を異なる起動方式に動的に切り換えて動作させることができるよう、検査用プログラム４５が用意されている。
【００８４】
そのため、検査モード時にタスクの起動方式を切り換えるために再度コンパイルなどをする手間を省くことができるようになり、検査モード時の作業効率を向上させることが可能となる。しかも、起動方式の切り換えが必要なタスクを起動方式毎に複数用意しておく必要もないため、限られたリソースを有効に活用することができる。
【００８５】
また、本実施形態では、起動方式が３種類設定されており、例えば、絶対周期起動方式とは異なる起動方式にデフォルト設定されているタスクに対し、検査モード時には絶対周期起動方式に切り換えて動作させ、その際のマイコン１０の動作やＥＣＵ１全体の動作を検証することができる。また同様に、例えば、相対周期起動方式とは異なる起動方式にデフォルト設定されているタスクに対し、検査モード時には相対周期起動方式に切り換えて動作させ、その際のマイコン１０の動作やＥＣＵ１全体の動作を検証することもできる。また同様に、例えば、イベント起動方式とは異なる起動方式にデフォルト設定されているタスクに対し、検査モード時にはイベント起動方式に切り換えて動作させ、その際のマイコン１０の動作やＥＣＵ１全体の動作を検証することもできる。
【００８６】
また、例えば通常処理時はイベント起動方式で起動するよう設定されたタスクの場合、検査モード移行後はイベントが発生しなくなって動作できなくなる可能性もあるが、そのような場合、検査モード時にイベント起動方式から例えば絶対周期起動方式へ変更することで、検査モード時であってもそのタスクを動作させることが可能となる。これは、イベント起動方式から相対周期起動方式へ変更することによっても実現可能である。
【００８７】
更に、通常処理時はイベント起動方式で起動するよう設定されたタスクであって、通常はあまりイベントの発生頻度が多くはないタスクにつき、イベントが多発した場合を想定して検査を行いたい場合もある。その場合も、イベント起動方式から例えば絶対周期起動方式に変更することで、イベント多発を想定したタスクの動作検証を行うことが可能となる。これについても、イベント起動方式から相対周期起動方式へ変更することによっても実現可能である。
【００８８】
また、本実施形態では、マイコン１０の動作開始時に各タスクの起動方式（デフォルトで設定されている起動方式）がＲＡＭ１３にタスク起動方式管理テーブル４７として書き込まれ、マイコン１０の動作中はこのタスク起動方式管理テーブル４７の内容に従って各タスクが起動される。そして、起動方式の変更要求に対しては、このタスク起動方式管理テーブル４７の内容が書き換えられる。そのため、起動方式の変更要求がなされた場合にその要求内容を確実に反映させることができる。しかも、起動方式を元のデフォルトでの方式に戻したいときは、マイコン１０を初期化するだけで実現できる。
【００８９】
なお、本実施形態において、検査用プログラム４５は本発明の変更要求プログラムに相当し、各タスクＡ，Ｂ，Ｃ，Ｄ，Ｅ・・・は本発明のタスクプログラムに相当し、タスク管理部４６は本発明のタスク制御プログラムに相当する。また、図７のタスク起動周期チェック処理において、Ｓ１４０，Ｓ１７０，Ｓ２００の各処理はいずれも本発明の起動要求出力手段が実行する処理に相当し、図８のタスク起動方式変更処理におけるＳ４４０の処理は本発明のタスク起動方式変更手段が実行する処理に相当する。
【００９０】
［変形例］
以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
【００９１】
例えば、上記実施形態では、タスクの起動方式として、絶対周期起動方式、相対周期起動方式、及びイベント起動方式の３種類が設定されているものとして説明したが、起動方式がこれら３種類であることはあくまでも一例であり、これらとは異なる起動方式を設定するようにしてもよい。また、起動方式が何種類存在するかについても特に限定されるものではない。
【００９２】
また、上記実施形態では、検査モード時におけるタスク起動方式の変更として、上記３種類の起動方式の相互間で異なる起動方式へ変更（切り換え）することについて説明したが、これに限らず、例えば、絶対周期起動方式であること自体は変更しないもののその起動周期を変更する、或いは、相対周期起動方式であること自体は変更しないもののその起動周期を変更する、ということも、起動方式の変更の一態様とすることができる。
【００９３】
更に、上記実施形態では、検査用プログラム４５を１つ用意し、外部検査ツール３０からの検査モード移行信号によってこの検査用プログラム４５を動作させて、タスク起動方式の変更を行うようにしたが、検査用プログラムを含め（或いはこれとは別に）、タスクの起動方式を変更するためのプログラムを用意して、外部からの信号によって適宜所望のタスクを所望の起動方式に変更できるようにしてもよい。
【００９４】
更にまた、外部からの信号に応じて起動方式が変更されるようにする以外にも、例えば、マイコン１０により実行されるプログラムの中で、ある特定の条件が成立したときに起動方式を変更させるようにすることもできる。
【００９５】
例えば、車両のＥＣＵにおいては、ＲＯＭやＲＡＭのチェックを行うためのソフトウェアが搭載されることが多い。このＲＯＭ／ＲＡＭチェック用のソフトウェアは、通常は、最も優先度の低い絶対周期起動方式にて起動されるタスクに割り当てられており、他のタスクが実行されていないときのみ動作するようにされている。しかし、ＥＣＵに何らかの異常が発生した場合には、所定のイベント発生に対してすぐに動作することが望ましい。このような場合、本発明を適用すれば、絶対周期起動方式のタスクをイベント起動方式に変更して、イベント発生に対してすぐに動作するようにすることができる。これにより、あるタイミングで即座に動作させることができるようになる。
【００９６】
このように、各タスクの起動方式をデフォルトでの起動方式とは異なる方式に変更して動作させるべき状況（特殊動作時）は、種々考えられるが、各特殊動作毎に、必要に応じて所望のタスクの起動方式を変更するよう構成することが可能である。
【００９７】
また、上記実施形態では、ＲＴＯＳ４０とタスク管理部４６をそれぞれ異なるソフトウェアモジュールとして説明したが、必ずしもそのような構成に限定されるわけではなく、例えば、ＲＴＯＳ４０の機能の一部としてタスク管理部４６の機能を組み込むようにし、ＲＴＯＳ４０が各タスク（各アプリケーション）を直接管理するようにしてもよい。
【図面の簡単な説明】
【００９８】
【図１】実施形態のＥＣＵの構成を表す説明図である。
【図２】ＭＰＵにより実行される各種ソフトウェアの構成を示す説明図である。
【図３】各アプリケーションと各タスクとの対応（割り当て）関係を示す説明図である。
【図４】各タスクに設定される起動方式を示す説明図である。
【図５】起動方式毎のタスクの起動タイミングを示すタイムチャートである。
【図６】検査モード移行処理を示すフローチャートである。
【図７】タスク起動周期チェック処理を示すフローチャートである。
【図８】タスク起動方式変更処理を示すフローチャートである。
【図９】タスク実行処理を示すフローチャートである。
【図１０】起動方式が変更される前後のタスクの動作状態の一例を示すタイムチャートである。
【符号の説明】
【００９９】
１…ＥＣＵ、１０…マイコン、１１…ＭＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…タイマ、１５…Ｉ／Ｏ、１６…バス、１７…出力インタフェース、１８…入力インタフェース、１９…検査信号入出力インタフェース、２１…アクチュエータ、２２…センサ、３０…外部検査ツール、４０…ＲＴＯＳ、４１〜４４…アプリケーション（ＡＰ−ａ〜ＡＰ−ｄ）、４５…検査用プログラム、４６…タスク管理部、４７…タスク起動方式管理テーブル
【図１】
2009251663.tif 000003
【図２】
2009251663.tif 000004
【図３】
2009251663.tif 000005
【図４】
2009251663.tif 000006
【図５】
2009251663.tif 000007
【図６】
2009251663.tif 000008
【図７】
2009251663.tif 000009
【図８】
2009251663.tif 000010
【図９】
2009251663.tif 000011
【図１０】
2009251663.tif 000012