(57)【要約】【課題】アプリケーションプログラムが使用する複数のドライバプログラムの起動順序を自動的に決定することによって、開発を容易化することができる制御装置及びコンピュータプログラムを提供する。【解決手段】各アプリケーションプログラムＡＰ１、２…の起動に必要なドライバ１０５、及び各ドライバ１０５の起動に必要な他のドライバ１０５についての情報をＡＰ情報として予めＥＣＵ１のＥＥＰＲＯＭに記憶しておく。ＥＣＵ１は、起動順序決定プログラム１１０の実行により、車載機器制御プログラム１００に含まれる全てのドライバ１０５の起動順序をＡＰ情報に基づいて決定し、起動情報としてＥＥＰＲＯＭに記憶する。ＡＰ情報は、各アプリケーションプログラムＡＰ１、２…の開発者がそれぞれ提供する。【選択図】図２
2010097283.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラム及び該アプリケーションプログラムからの要求に応じて機器の動作を制御する複数のドライバプログラムを実行する実行手段と、前記複数のドライバプログラムの起動順序を記憶する記憶手段と、該記憶手段が記憶した起動順序に応じて前記複数のドライバプログラムを起動する起動手段とを備える制御装置において、
各アプリケーションプログラムの起動に必要な一又は複数のドライバプログラム、及び該ドライバプログラムの起動に必要な他のドライバプログラムの情報を取得する起動情報取得手段と、
該起動情報取得手段が取得した情報に基づいて、各ドライバプログラムの起動に必要な前記他のドライバプログラムを先に起動するように、前記複数のドライバプログラムの起動順序を決定する決定手段と、
決定した起動順序を前記記憶手段に記憶させる記憶制御手段と
を備えることを特徴とする制御装置。
【請求項２】
前記決定手段は、
一のアプリケーションプログラムの起動に必要なドライバプログラムの起動順序を決定する手段と、
前記ドライバプログラムの起動に必要な他のドライバプログラムの起動順序を決定する手段と、
他のアプリケーションプログラムの起動に必要な一のドライバプログラムの起動順序が既に決定されているか否かを判定する手段と、
起動順序が決定されていないと判定された場合に、前記一のドライバプログラムの起動順序を決定する手段と、
前記一のドライバプログラムの起動に必要な他のドライバプログラムの起動順序が既に決定されているか否かを判定する手段と、
前記他のドライバプログラムの起動順序が決定されていると判定された場合に、前記他のドライバプログラム及び該ドライバプログラムの起動に必要な他のドライバプログラムを、前記一のドライバプログラムより先に起動するように、起動順序を変更する手段と
を有することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記起動情報取得手段は、各ドライバプログラムをオペレーティングシステムより先に起動すべきか否かに係る情報を取得するようにしてあり、
前記決定手段は、前記オペレーティングシステム及び前記複数のドライバプログラムの起動順序を決定するようにしてあること
を特徴とする請求項１又は請求項２に記載の制御装置。
【請求項４】
前記起動情報取得手段は、各ドライバプログラムの動作に必要であり、該ドライバプログラムより後に起動してもよい他のドライバプログラムに係る情報を取得するようにしてあり、
前記決定手段が決定した起動順序に、前記他のドライバプログラムの起動順序が含まれているか否かを判定する判定手段と、
該判定手段により含まれていないと判定された場合に、エラー処理を行うエラー処理手段と
を更に備えることを特徴とする請求項１乃至請求項３のいずれか１つに記載の制御装置。
【請求項５】
複数のアプリケーションプログラム、及び前記アプリケーションプログラムからの要求に応じて機器の動作を制御する複数のドライバプログラムを有する機器制御プログラムについて、コンピュータに、前記複数のドライバプログラムの起動順序を決定させるコンピュータプログラムにおいて、
各アプリケーションプログラムの起動に必要なドライバプログラム、及び該ドライバプログラムの起動に必要な他のドライバプログラムの情報に基づいて、
コンピュータに、
一のアプリケーションプログラムの起動に必要なドライバプログラムの起動順序を決定させるステップと、
前記ドライバプログラムの起動に必要な他のドライバプログラムの起動順序を決定させるステップと、
他のアプリケーションプログラムの起動に必要な一のドライバプログラムの起動順序が既に決定されているか否かを判定させるステップと、
決定されていないと判定された場合に、前記一のドライバプログラムの起動順序を決定させるステップと、
前記一のドライバプログラムの起動に必要な他のドライバプログラムの起動順序が既に決定されているか否かを判定させるステップと、
決定されていると判定された場合に、前記他のドライバプログラム及び該ドライバプログラムの起動に必要な他のドライバプログラムを、前記一のドライバプログラムより先に起動するように、起動順序を変更させるステップと
を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載機器などの種々の機器の制御を行うことができると共に、開発及び変更等を容易に行うことができる制御装置及びこの制御装置にて実行されるコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、車輌には多種多様な電子機器（以下、車載機器という）が搭載され、車輌の高機能化が進んでいる。車輌の高機能化が進むほど車載機器の搭載数は増加するため、多数の車載機器を制御するためのＥＣＵ（Electronic Control Unit）などの制御装置とこの制御装置上で実行されるコンピュータプログラムとは巨大化及び複雑化し、制御装置及びコンピュータプログラムの開発の困難化、開発期間の増大及び開発コストの増大等が生じるという問題があった。
【０００３】
特許文献１においては、車輌のエンジン制御プログラムにオブジェクト指向設計されたプログラムを適用することで、ハードウェアの変更に伴うソフトウェアの開発工数を低減できる車輌用制御装置が提案されている。この車輌用制御装置においては、エンジン制御プログラムを、アプリケーションレイヤ（ＡＰレイヤ）と、プラットフォームレイヤ（ＰＦレイヤ）とに階層化し、ＡＰレイヤはハードウェアに依存しないオブジェクト指向設計されたプログラムで記述される。またＰＦレイヤは、ハードウェアに依存するオブジェクト指向設計されたプログラムで記述され、上位のセンサ・アクチュエータレイヤ、中位のデバイス・ドライバレイヤ、及び下位のバーチャルＭＰＵ（Micro Processing Unit）レイヤの３つのレイヤに階層化されている。
【０００４】
この特許文献１に記載の車輌用制御装置は、ＡＰレイヤとハードウェアとの間にＰＦレイヤを設けることによって、ＰＦレイヤにてハードウェアからの物理的な情報を論理的な情報に変換することができ、情報を抽象化することができるため、ハードウェアが変更された場合であってもＰＦレイヤを変更するのみでよく、ＡＰレイヤを変更する必要はない。よって、プログラムの開発を容易化することができ、開発期間及び開発コスト等の増大という上述の問題を改善することができる。
【特許文献１】特開２０００−９７１０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の車輌用制御装置は、ハードウェアが変更された場合にＰＦレイヤの変更のみで対応することができるが、ＡＰレイヤに含まれるアプリケーションプログラムの変更、追加又は削除等が行われた場合には、ＡＰレイヤ及びＰＦレイヤの両方を変更する必要がある。例えば、各アプリケーションプログラムは動作のために必要なドライバプログラムがそれぞれ存在し、アプリケーションプログラムをＡＰレイヤに追加した場合には、これに必要なドライバプログラムをＰＦレイヤに追加する必要がある。
【０００６】
また、これらのドライバプログラムは制御装置の電源投入時などにオペレーティングシステムなどと共に起動されるが、各ドライバプログラムは起動のために他のドライバプログラムの情報を必要とする場合があるなどの依存関係を有しているため、適切な順序で起動を行う必要がある。このため、アプリケーションプログラムの追加によってドライバプログラムを追加する場合には、その起動順序についても開発者が適切に設定しなければならない。
【０００７】
一方、近年においては車載機器を制御するプログラムの標準化が進められており、複数のドライバプログラムなどをまとめた標準化プラットフォーム（特許文献１のＰＦレイヤに相当）がアプリケーションプログラムの開発者に提供され、共通のインタフェース及びモジュール等を用いて開発者はアプリケーションプログラムを開発することができる。これにより、複数の開発者が同等の機能を有するアプリケーションプログラムを開発することができ、複数の開発者がそれぞれ開発した複数のアプリケーションプログラムから、制御装置の開発者がいずれかのアプリケーションプログラムを選択して制御装置に搭載することができる。また、制御装置の開発者は、異なるアプリケーションプログラムの開発者が開発したアプリケーションプログラムを組み合わせて、制御装置に搭載することができる。
【０００８】
しかし、上述のように各アプリケーションプログラムの動作に必要なドライバプログラムは起動順序を適切に設定しなければならないが、アプリケーションプログラムの開発者は他のアプリケーションに必要なドライバプログラムについての情報を知ることはなく、また、制御装置の開発者は搭載するアプリケーションプログラムの詳細な情報を知ることはないため、制御装置に搭載された多数のドライバプログラムの起動順序を適切に設定することは困難である。このため、多数のドライバプログラムが不適切な順序で起動され、制御装置のフリーズ又は誤動作等が発生する虞があった。
【０００９】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、制御装置に搭載された複数のドライバプログラムの起動順序を自動的に決定することによって、制御装置の開発者がアプリケーションプログラムから利用されるドライバプログラムの起動順序に関する情報を知ることなく、複数のアプリケーションプログラムを制御装置に搭載して容易に開発を行うことができる制御装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る制御装置は、複数のアプリケーションプログラム及び該アプリケーションプログラムからの要求に応じて機器の動作を制御する複数のドライバプログラムを実行する実行手段と、前記複数のドライバプログラムの起動順序を記憶する記憶手段と、該記憶手段が記憶した起動順序に応じて前記複数のドライバプログラムを起動する起動手段とを備える制御装置において、各アプリケーションプログラムの起動に必要な一又は複数のドライバプログラム、及び該ドライバプログラムの起動に必要な他のドライバプログラムの情報を取得する起動情報取得手段と、該起動情報取得手段が取得した情報に基づいて、各ドライバプログラムの起動に必要な前記他のドライバプログラムを先に起動するように、前記複数のドライバプログラムの起動順序を決定する決定手段と、決定した起動順序を前記記憶手段に記憶させる記憶制御手段とを備えることを特徴とする。
【００１１】
また、本発明に係る制御装置は、前記決定手段が、一のアプリケーションプログラムの起動に必要なドライバプログラムの起動順序を決定する手段と、前記ドライバプログラムの起動に必要な他のドライバプログラムの起動順序を決定する手段と、他のアプリケーションプログラムの起動に必要な一のドライバプログラムの起動順序が既に決定されているか否かを判定する手段と、起動順序が決定されていないと判定された場合に、前記一のドライバプログラムの起動順序を決定する手段と、前記一のドライバプログラムの起動に必要な他のドライバプログラムの起動順序が既に決定されているか否かを判定する手段と、前記他のドライバプログラムの起動順序が決定されていると判定された場合に、前記他のドライバプログラム及び該ドライバプログラムの起動に必要な他のドライバプログラムを、前記一のドライバプログラムより先に起動するように、起動順序を変更する手段とを有することを特徴とする。
【００１２】
また、本発明に係る制御装置は、前記起動情報取得手段が、各ドライバプログラムをオペレーティングシステムより先に起動すべきか否かに係る情報を取得するようにしてあり、前記決定手段は、前記オペレーティングシステム及び前記複数のドライバプログラムの起動順序を決定するようにしてあることを特徴とする。
【００１３】
また、本発明に係る制御装置は、前記起動情報取得手段が、各ドライバプログラムの動作に必要であり、該ドライバプログラムより後に起動してもよい他のドライバプログラムに係る情報を取得するようにしてあり、前記決定手段が決定した起動順序に、前記他のドライバプログラムの起動順序が含まれているか否かを判定する判定手段と、該判定手段により含まれていないと判定された場合に、エラー処理を行うエラー処理手段とを更に備えることを特徴とする。
【００１４】
また、本発明に係るコンピュータプログラムは、複数のアプリケーションプログラム、及び前記アプリケーションプログラムからの要求に応じて機器の動作を制御する複数のドライバプログラムを有する機器制御プログラムについて、コンピュータに、前記複数のドライバプログラムの起動順序を決定させるコンピュータプログラムにおいて、各アプリケーションプログラムの起動に必要なドライバプログラム、及び該ドライバプログラムの起動に必要な他のドライバプログラムの情報に基づいて、コンピュータに、一のアプリケーションプログラムの起動に必要なドライバプログラムの起動順序を決定させるステップと、前記ドライバプログラムの起動に必要な他のドライバプログラムの起動順序を決定させるステップと、他のアプリケーションプログラムの起動に必要な一のドライバプログラムの起動順序が既に決定されているか否かを判定させるステップと、決定されていないと判定された場合に、前記一のドライバプログラムの起動順序を決定させるステップと、前記一のドライバプログラムの起動に必要な他のドライバプログラムの起動順序が既に決定されているか否かを判定させるステップと、決定されていると判定された場合に、前記他のドライバプログラム及び該ドライバプログラムの起動に必要な他のドライバプログラムを、前記一のドライバプログラムより先に起動するように、起動順序を変更させるステップとを含むことを特徴とする。
【００１５】
本発明においては、アプリケーションプログラムの起動に必要なドライバプログラム、及び各ドライバプログラムの起動に必要な他のドライバプログラムの情報を、制御装置が取得する。これらの情報は、各アプリケーションプログラムの開発者が有する情報であるため、アプリケーションプログラムと共に開発者がこの情報を例えばデータファイルなどの形式で提供すればよい。
制御装置は、アプリケーションプログラムと共に提供された上記の情報を取得し（データファイルを読み込み）、この情報に基づいて、各ドライバプログラムの起動に必要な他のドライバプログラムを先に起動するように、複数のドライバプログラムの起動順序を決定する。
また制御装置は、デバイスドライバなどの起動順序をメモリなどの記憶手段に記憶しており、電源投入時などにはこの記憶手段に記憶された起動順序に従ってブート用のプログラムがデバイスドライバなどの起動を行う。よって、制御装置は、アプリケーションプログラムの追加及び削除等によって、ドライバプログラムの起動順序を決定した場合には、これを起動手段に記憶させることにより、ドライバプログラムの起動を適切に行うことができる。
これにより、ドライバプログラムの起動順序が、アプリケーションプログラムと共に与えられる情報に基づいて、制御装置により自動的に決定されるため、制御装置の開発者はドライバプログラムの起動順序を設定する必要がなく、制御装置へのアプリケーションプログラムの搭載を容易に行うことができる。
【００１６】
また本発明においては、ドライバプログラムの起動順序の決定手順として、まず、一のアプリケーションプログラムの起動に必要なドライバプログラムを調べ、更にこのドライバプログラムの起動に必要な他のドライバプログラムを調べて、他のドライバプログラムを優先的に起動する起動順序とする。
次に、他のアプリケーションプログラムの起動に必要な一のドライバプログラムを調べ、既に一のドライバプログラムの起動順序が決定されているか否かを判定し、起動順序が未決定であれば一のドライバプログラムの起動順序を決定する。更に、一のドライバプログラムの起動に必要な他のドライバプログラムの起動順序が既に決定されているか否かを判定し、起動順序が決定されている場合には、他のドライバプログラム及び更にこれの起動に必要な他のドライバプログラムの起動順序を、一のドライバプログラムより先に起動するように変更する。
これを全てのアプリケーションプログラムについて行うことによって、複数のドライバプログラム間の依存関係を考慮して、全ドライバプログラムの起動順序を決定することができる。
【００１７】
また制御装置には、アプリケーションプログラム及びドライバプログラム等の他に、オペレーティングシステムが搭載されている場合がある。このような場合には、ドライバプログラムの起動と、オペレーティングシステムの起動との順序を適切に設定する必要がある。そこで本発明においては、アプリケーションプログラムの起動に必要なドライバプログラムをオペレーティングシステムより先に起動すべきか否かに係る情報を制御装置が取得し、この情報に基づいてドライバプログラム及びオペレーティングシステムの起動順序を決定する。オペレーティングシステムより先に起動すべきか否かに係る情報は、アプリケーションプログラムの開発者が有する情報であるため、アプリケーションプログラムと共に開発者がこの情報を提供すればよい。
【００１８】
また、ドライバプログラムの動作に必要であるが、必ずしもこのドライバプログラムより先に起動する必要のない他のドライバプログラムが存在する場合がある。そこで本発明においては、各ドライバプログラムの動作に必要であるが、これより後に起動してもよい他のドライバプログラムに係る情報を制御装置が取得する。これらの他のドライバプログラムは、適宜に起動順序を決定することができる。全てのドライバプログラムの起動順序を決定した後、制御装置は取得した情報に含まれる他のドライバプログラムの起動順序が決定した起動順序に含まれているか否かを判定し、含まれていなければ警告メッセージの出力などのエラー処理を行う。これにより、アプリケーションプログラムの動作に必要な全てのドライバプログラムを制御装置が起動することができる。
【００１９】
上述のように制御装置が自らドライバプログラムの起動順序を決定して記憶する構成としてもよいが、本発明においては、上述の処理を行うコンピュータプログラムをコンピュータ（開発用のＰＣ（Personal Computer）又はＷＳ（Work Station）等）にて実行することによって、ドライバプログラムの起動順序の決定を行う構成とする。制御装置の開発者は、コンピュータプログラムの実行により得られたドライバプログラムの起動順序を制御装置に記憶させることによって、制御装置にドライバプログラムの起動を適切な順序で行わせることができる。
【発明の効果】
【００２０】
本発明による場合は、制御装置が、アプリケーションプログラムの起動に必要なドライバプログラム、及び各ドライバプログラムの起動に必要な他のドライバプログラムに係る情報を取得し、ドライバプログラムの起動順序を決定して記憶する構成とすることにより、制御装置はドライバプログラムの起動を適切な順序で行うことができる。これにより、制御装置の開発者は、各アプリケーションプログラムが必要とするドライバプログラムの起動に関する詳細な知識を有することなく、制御装置にアプリケーションプログラムを搭載することができる。よって、制御装置の開発を容易化することができ、開発期間の短縮及び開発コストの低減等を実現することができる。
【発明を実施するための最良の形態】
【００２１】
（実施の形態１）
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、本発明に係る制御装置の構成を示すブロック図である。図において１は、車輌に搭載された各種のセンサ５、アクチュエータ６及びその他の車載機器７の制御を行うＥＣＵであり、本発明に係る制御装置に相当するものである。ＥＣＵ１は、センサ５、アクチュエータ６及びその他の車載機器７にケーブルを介して接続される入出力Ｉ／Ｆ(インタフェース）部１１を備えており、入出力Ｉ／Ｆ部１１がセンサ５、アクチュエータ６及び車載機器７との間で信号の授受を行って、センサ５から各種の検知結果を取得し、アクチュエータ６へ動作指示を与え、車載機器７とデータの授受を行うことができる。
【００２２】
またＥＣＵ１は、各種の演算処理及びＥＣＵ１内の各部の制御処理等を行うＣＰＵ（Central Processing Unit）１２を備えている。入出力Ｉ／Ｆ部１１は、センサ５の検知結果及びその他の車載機器７からのデータ等をＣＰＵ１２へ与えると共に、ＣＰＵ１２からのデータをアクチュエータ６及びその他の車載機器７へ与える。ＣＰＵ１２は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）１４に予め記憶された車載機器制御プログラム１００を読み出して実行することにより、演算処理及び制御処理等を行い、処理過程にて発生した一時的なデータをＲＡＭ（Random Access Memory）１３に記憶しながら処理を進める。ＲＡＭ１３は、ＳＲＡＭ（Static RAM）又はＤＲＡＭ（Dynamic RAM）等のメモリ素子で構成されている。
【００２３】
ＥＥＰＲＯＭ１４は不揮発性のメモリ素子であり、ＣＰＵ１２はＥＥＰＲＯＭ１４に種々のデータの書き込み及び読み出しを行うことができる。ＥＥＰＲＯＭ１４には、車載機器制御プログラム１００及びＯＳ（Operating System）（図示は省略する）等の種々のプログラムと、起動情報１５０及びアプリケーションプログラムに関する情報（以下、ＡＰ情報１６０という）等の種々のデータとが記憶されている。ＣＰＵ１２は、ＥＥＰＲＯＭ１４に記憶された車載機器制御プログラム１００を読み出して実行することによって、車載機器の制御処理を行うことができる。
【００２４】
ＥＥＰＲＯＭ１４に記憶された起動情報１５０は、車載機器制御プログラム１００に含まれる複数のドライバプログラム（以下、単にドライバという）の起動順序についての情報であり、ＣＰＵ１２は起動情報１５０の起動順序に従ってドライバプログラムを起動する。ＡＰ情報１６０は、車載機器制御プログラム１００に含まれるアプリケーションプログラムが使用するドライバプログラムに関する情報であり、起動情報１５０の生成に必要な情報である。起動情報１５０及びＡＰ情報１６０の詳細については後述する。
【００２５】
また、ＥＣＵ１は、車輌に搭載されたその他の複数のＥＣＵ３にＣＡＮ（Controller Area Network）などのネットワークを介して接続されており、ネットワークを介してその他のＥＣＵ３とデータの送受信を行うための通信部１５を備えている。ＥＣＵ１は、通信部１５にて他のＥＣＵ３との間でデータの送受信を行うことによって、他のＥＣＵ３に接続された車載機器からのデータを取得することができると共に、他のＥＣＵ３に接続された車載機器の動作を制御することができる。
【００２６】
図２は、車載機器制御プログラム１００のソフトウェア構成を示す模式図である。車載機器制御プログラム１００は、ＥＣＵ１などのハードウェア資源の管理及び制御等を行う複数のドライバ１０５を有するプラットフォーム１０１と、このプラットフォーム１０１上で動作する複数のアプリケーションプログラム（図中においては単にＡＰ１、２…と示す）とを備えて構成されている。プラットフォーム１０１は、ＥＣＵ１などのハードウェアとの間で信号又はデータ等の入出力を行って、ハードウェアから得られた情報をアプリケーションプログラムＡＰ１、２…へ与えると共に、アプリケーションプログラムＡＰ１、２…の要求に基づいてハードウェアを動作させるプログラムである。プラットフォーム１０１がハードウェア及びアプリケーションプログラムＡＰ１、２…の間に介在し、これらの間で授受されるデータを適切な形式に変換することによって、プラットフォーム１０１はアプリケーションプログラムＡＰ１、２…に対してハードウェアを抽象化することができる。
【００２７】
アプリケーションプログラムＡＰ１、２…は、予め定められた要求仕様などに従って、センサ５及びその他の車載機器７等からプラットフォーム１０１を介して与えられたデータに基づいて、アクチュエータ６及びその他の車載機器７等の動作を決定する処理を行う。アプリケーションプログラムＡＰ１、２…は、例えば車輌のドアのロックを制御するプログラム、車輌のライトの点灯を制御するプログラム又は車輌のウインドウの開閉を制御するプログラム等である。アプリケーションプログラムＡＰ１、２…は、アクチュエータ６及びその他の車載機器７等に対する動作指示を出力データとしてプラットフォーム１０１へ与える。
【００２８】
また、プラットフォーム１０１は複数のドライバ１０５を有している。ドライバ１０５は、アプリケーションプログラムＡＰ１、２…から与えられた動作指示に基づいて、ＥＣＵ１のハードウェア資源の制御又は管理等を行い、またこれによりＥＣＵ１に接続されたセンサ５、アクチュエータ６及びその他の車載機器７等の制御を行うプログラムである。１つのアプリケーションプログラムＡＰ１、２…に対して１つのドライバ１０５が対応しているわけではなく、１つのアプリケーションプログラムＡＰ１、２…は複数のドライバ１０５との間でデータの授受を行って処理を行い、また、１つのドライバ１０５は複数のアプリケーションプログラムＡＰ１、２…との間でデータの授受を行っている。また、ドライバ１０５は、プラットフォーム１０１の他のドライバ１０５との間でデータの授受を行って処理を行う場合もある。
【００２９】
車輌のイグニッションスイッチがオンされてＥＣＵ１に電力供給が開始された場合などにおいて、ＥＣＵ１ではＣＰＵ１２がＥＥＰＲＯＭ１４から車載機器制御プログラム１００を読み出して実行することにより動作が開始される。このとき、車載機器制御プログラム１００はアプリケーションプログラムＡＰ１、２…及びドライバ１０５等の複数のプログラムで構成されているため、ＣＰＵ１２はＥＥＰＲＯＭ１４の起動情報１５０に記憶された起動順序に従ってドライバ１０５の起動を行う。
【００３０】
上述のようにアプリケーションプログラムＡＰ１、２…は、ドライバ１０５から与えられるデータにより処理を行うため、アプリケーションプログラムＡＰ１、２…の起動に必要なデータを有するドライバ１０５は、アプリケーションプログラムＡＰ１、２…を起動する前に起動していなければならない。また、ドライバ１０５は他のドライバ１０５が有するデータを用いて処理を行う場合があり、ドライバ１０５の起動に必要なデータを有する他のドライバ１０５は先に起動していなければならない。よって、ＥＥＰＲＯＭ１４の起動情報１５０は、これらの複数のドライバ１０５の起動に係る依存関係を考慮した適切な起動順序が記憶されていなければならない。
【００３１】
各アプリケーションプログラムＡＰ１、２…を異なる開発者が開発した場合、各開発者は自らが開発したアプリケーションプログラムＡＰ１、２…が必要とするドライバ１０５に関する情報（特に、起動順序に関する情報）を知ることができるが、他の開発者が開発したアプリケーションプログラムＡＰ１、２…が必要とするドライバ１０５に関する情報を知ることはできない。また、ＥＣＵ１又は車載機器制御プログラム１００の開発者が、自らが開発していないアプリケーションプログラムＡＰ１、２…を車載機器制御プログラム１００に組み込むことで開発を行う場合、この開発者は各アプリケーションプログラムＡＰ１、２…が必要とするドライバ１０５に関する情報を知ることができない。よって、車載機器制御プログラム１００を複数の開発者が分担して開発した場合、複数のドライバ１０５の起動順序をいずれかの開発者が適切に決定することは容易ではない。
【００３２】
そこで、本発明に係るＥＣＵ１においては、車載機器制御プログラム１００のプラットフォーム１０１に、複数のドライバ１０５の起動順序を決定して起動情報１５０を出力する起動順序決定プログラム１１０が搭載されている。起動順序決定プログラム１１０は、ＥＣＵ１の動作中に常時動作するわけではなく、例えばＥＣＵ１の開発工程若しくは製造工程、ＥＣＵ１を搭載する車輌の製造工程、車輌のメンテナンス時、又はその他のアプリケーションプログラムＡＰ１、２…の追加若しくは削除等が行われた時などに、動作させるプログラムである。このため、ＥＣＵ１に対する特別の操作がなされた場合などにのみ、ＣＰＵ１２は起動順序決定プログラム１１０を実行するようにしてある。
【００３３】
起動順序決定プログラム１１０は、ドライバ１０５の起動順序の決定処理を行うために、入力情報としてＥＥＰＲＯＭ１４のＡＰ情報１６０を必要とする。ＡＰ情報１６０には、車載機器制御プログラム１００に含まれる全てのアプリケーションプログラムＡＰ１、２…について、各アプリケーションプログラムＡＰ１、２…が必要とするドライバ１０５と、このドライバ１０５の起動に必要な他のドライバ１０５についての情報が記憶されている。
【００３４】
図３は、ＡＰ情報１６０の一例を示す模式図である。ＡＰ情報１６０は、各アプリケーションプログラムＡＰ１、２…について、起動に必要な一又は複数のドライバ１０５と、このドライバ１０５をＯＳの起動前に起動する必要があるか否かを示すフラグと、このドライバを起動するために必要な他のドライバ１０５と、起動には必要でないが起動後に使用するなどの関連する他のドライバ１０５とが記憶されている。
【００３５】
例えば、アプリケーションプログラムＡＰ１はドライバ”ＡＤＣ”を必要とし、ドライバ”ＡＤＣ”は、ＯＳの起動前に起動する必要はなく、起動のためにドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”を必要とし、関連する他のドライバに”ＣＡＮ”及び”ＭＣＵ”がある。
【００３６】
また例えば、アプリケーションプログラムＡＰ２はドライバ”ＰＷＭ”、”ＮＶＭ”及び”ＥＥＰＲＯＭ”を必要とする。ドライバ”ＰＷＭ”は、ＯＳの起動前に起動する必要はなく、起動のためにドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”を必要とし、関連する他のドライバに”ＣＡＮ”及び”ＭＣＵ”がある。ドライバ”ＮＶＭ”は、ＯＳの起動前に起動する必要はなく、起動のためにドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”を必要とし、関連する他のドライバに”ＥＥＰＲＯＭ”がある。ドライバ”ＥＥＰＲＯＭ”は、ＯＳの起動前に起動する必要があり、起動のためにドライバ”ＴＩＭＥＲ”及び”ＮＶＭ”を必要とし、関連する他のドライバに”ＣＡＮ”及び”ＭＣＵ”がある。
【００３７】
なお、図中の各ドライバの詳細な機能などは説明を省略するが、”ＡＤＣ”はＥＣＵ１のＡ／Ｄコンバータ用のドライバであり、”ＲＡＭ”はＲＡＭ１３用のドライバであり、”ＴＩＭＥＲ”はタイマ用のドライバであり、”ＣＡＮ”は通信部１５にてＣＡＮのプロトコルで通信を行うためのドライバであり、”ＭＣＵ”はメモリコントロールユニット用のドライバである。また、”ＰＷＭ”はパルス幅変調ユニット用のドライバであり、”ＥＥＰＲＯＭ”はＥＥＰＲＯＭ１４用のドライバであり、”ＮＶＭ”はＥＥＰＲＯＭ１４を含む不揮発性メモリ制御用のドライバである。
【００３８】
ＡＰ情報１６０に含まれる各アプリケーションプログラムＡＰ１、２…の情報は、これらの開発者が有する情報であるため、各開発者がアプリケーションプログラムＡＰ１、２…と共にこれらの情報を提供することができる。ＥＣＵ１又は車載機器制御プログラム１００の開発者は、各アプリケーションプログラムＡＰ１、２…の開発者から提供された情報をまとめてＡＰ情報１６０を作成し、ＥＣＵ１のＥＥＰＲＯＭ１４に予め記憶させておく。その後、ＥＣＵ１にて車載機器制御プログラム１００の起動順序決定プログラム１１０を実行することにより、ＥＥＰＲＯＭ１４に起動情報１５０が生成されて記憶される。
【００３９】
図４は、本発明に係るＥＣＵ１が行う処理の手順を示すフローチャートであり、ＥＥＰＲＯＭ１４に記憶された車載機器制御プログラム１００をＣＰＵ１２にて実行することにより行われる処理である。まず、ＥＣＵ１のＣＰＵ１２は、ＥＣＵ１に対する特別な操作などによって、車載機器制御プログラム１００の起動順序決定プログラム１１０の実行要求操作がなされたか否かを判定し（ステップＳ１）、実行要求操作がなされていない場合（Ｓ１：ＮＯ）、実行要求操作がなされるまで待機する。
【００４０】
起動順序決定プログラム１１０の実行要求操作がなされた場合（Ｓ１：ＹＥＳ）、ＣＰＵ１２は起動順序決定プログラム１１０を実行することによって、車載機器制御プログラム１００のドライバ１０５の起動順序を決定する起動順序決定処理を行い（ステップＳ２）、処理結果として得られる起動順序をＥＥＰＲＯＭ１４に起動情報１５０として記憶する（ステップＳ３）。これにより、ＥＥＰＲＯＭ１４に記憶されていた起動情報１５０が更新されるため、ＣＰＵ１２は、更新された起動情報１５０をＥＥＰＲＯＭ１４から読み出し（ステップＳ４）、読み出した起動情報１５０に従ってドライバ１０５の起動を行い（ステップＳ５）、処理を終了する。
【００４１】
図５及び図６は、起動順序決定プログラム１１０が行う起動順序決定処理の手順を示すフローチャートであり、図４に示すフローチャートのステップＳ２にて行われる処理である。なお、本図においては、アプリケーションプログラムを単にＡＰと記してある。起動順序決定プログラム１１０は、まず、ＥＥＰＲＯＭ１４のＡＰ情報１６０から一のアプリケーションプログラムＡＰ１、２…についての情報を取得する（ステップＳ２１）。
【００４２】
起動順序決定プログラム１１０は、取得した情報に基づいて、一のアプリケーションプログラムＡＰ１、２…の起動に必要な一の必要ドライバを調べ、この必要ドライバの起動順序が既に決定済みであるか否かを判定する（ステップＳ２２）。必要ドライバの起動順序が決定済みでない場合（Ｓ２２：ＮＯ）、起動順序決定プログラム１１０は、この必要ドライバがＯＳの起動前に起動する必要があるか否かのフラグに応じて、ＯＳの起動前（直前）又は決定済みの起動順序の最後のいずれかに、この必要ドライバの起動順序を決定し（ステップＳ２３）、ステップＳ２５へ進む。
【００４３】
また、必要ドライバの起動順序が決定済みの場合（Ｓ２２：ＹＥＳ）、起動順序決定プログラム１１０は、この必要ドライバがＯＳの起動前に起動する必要があるか否かのフラグに応じて、必要ドライバとＯＳとの起動順序の調整を行う（ステップＳ２４）。即ち、起動情報１５０のフラグではＯＳの起動前に起動する必要があると設定されているにもかかわらず、すでに決定されている起動順序がＯＳの起動後であれば、起動順序決定プログラム１１０は必要ドライバの起動順序をＯＳの起動前へ変更する。起動順序の調整を行った起動順序決定プログラム１１０は、ステップＳ２５へ進む。
【００４４】
次いで、起動順序決定プログラム１１０は、上記の一の必要ドライバの起動に必要な他のドライバの起動順序が既に決定済みであるか否かを判定し（ステップＳ２５）、起動順序が未決定の場合（Ｓ２５：ＮＯ）、他のドライバの起動順序が必要ドライバより先となるように、起動順序を決定する。また、他のドライバの起動順序が決定済みの場合（Ｓ２５：ＹＥＳ）、他のドライバと、更に他のドライバの起動に必要な他のドライバとの起動順序を、必要ドライバの起動順序より先となるように変更する（ステップＳ２７）。
【００４５】
次いで、起動順序決定プログラム１１０は、一の必要ドライバに関連する他のドライバの起動順序を、適宜に決定する（ステップＳ２８）。例えば、関連する他のドライバの起動順序は、決定済みの起動順序の最後とすることができる。なお、関連する他のドライバの起動順序が既に決定されている場合には、起動順序を変更しなくてもよい。
【００４６】
一の必要ドライバ及びこれに伴う他のドライバの起動順序を決定した後、起動順序決定プログラム１１０は、ステップＳ２１にて情報を取得した一のアプリケーションプログラムＡＰ１、２…の全ての必要ドライバについて上記の処理を終了したか否かを調べ（ステップＳ２９）、終了していない場合には（Ｓ２９：ＮＯ）、ステップＳ２２へ戻り、全ての必要ドライバ及びこれに伴う他のドライバの起動順序を決定するまで上記の処理を繰り返し行う。
【００４７】
一のアプリケーションプログラムＡＰ１、２…の全ての必要ドライバについて処理を終了した場合（Ｓ２９：ＹＥＳ）、起動順序決定プログラム１１０は、ＡＰ情報１６０に含まれる全てのアプリケーションプログラムＡＰ１、２…について処理を終了したか否かを調べる（ステップＳ３０）。いずれかのアプリケーションプログラムＡＰ１、２…について処理を終了していない場合（Ｓ３０：ＮＯ）、起動順序決定プログラム１１０は、ステップＳ２１へ戻り、全てのアプリケーションプログラムＡＰ１、２…について上記の処理を繰り返し行う。
【００４８】
全てのアプリケーションプログラムＡＰ１、２…について処理を終了した場合（Ｓ３０：ＹＥＳ）、起動順序決定プログラム１１０は、決定した起動順序に、ＡＰ情報１６０に含まれる全てのドライバ１０５が含まれているか否かを判定する（ステップＳ３１）。起動順序決定プログラム１１０は、決定した起動順序に含まれていないドライバ１０５がある場合には（Ｓ３１：ＮＯ）、警告メッセージの出力などのエラー処理を行い（ステップＳ３２）、また、決定した起動順序に全てのドライバ１０５が含まれている場合には（Ｓ３１：ＹＥＳ）、エラー処理を行うことなく、起動順序決定処理を終了して、図４に示したフローチャートへ戻る。
【００４９】
図７は、起動順序決定処理の一例を説明するための模式図であり、図３に示したＡＰ情報１６０に基づいて各ドライバ１０５及びＯＳの起動順序を決定した場合の処理過程を（１）〜（１２）に時系列で示してある。まず、起動順序決定プログラム１１０は、ＡＰ情報１６０から一のアプリケーションプログラムＡＰ１に係る情報を取得し、このアプリケーションプログラムＡＰ１の必要ドライバ”ＡＤＣ”はＯＳ起動前に起動する必要がないため、起動順序を最後に決定する（図７（１）参照）。次いで、起動順序決定プログラム１１０は、ドライバ”ＡＤＣ”の起動に必要な他のドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”の起動順序をドライバ”ＡＤＣ”より先に決定すると共に（図７（２）参照）、関連するドライバ”ＣＡＮ”及び”ＭＣＵ”の起動順序を”ＡＤＣ”の後に決定する（図７（３）参照）。
【００５０】
アプリケーションプログラムＡＰ１について処理を終了した後、起動順序決定プログラム１１０は、ＡＰ情報１６０から次の一のアプリケーションプログラムＡＰ２に係る情報を取得し、３つの必要ドライバ”ＰＷＭ”、”ＥＥＰＲＯＭ”及び”ＮＶＭ”の一の必要ドライバ”ＰＷＭ”について同様の処理を行う。即ち、起動順序決定プログラム１１０は、必要ドライバ”ＰＷＭ”はＯＳ起動前に起動する必要がないため、起動順序を最後に決定する（図７（４）参照）。次いで、起動順序決定プログラム１１０は、必要ドライバ”ＰＷＭ”の起動に必要な他のドライバ”ＣＡＮ”及び”ＭＣＵ”の起動順序を決定するが、ドライバ”ＣＡＮ”及び”ＭＣＵ”は既に起動順序が決定されており、必要ドライバ”ＰＷＭ”より先に起動されるため、起動順序は変更しない（図７（５）参照）。また、起動順序決定プログラム１１０は、必要ドライバ”ＰＷＭ”に関連する他のドライバ”ＣＡＮ”及び”ＭＣＵ”の起動順序を決定するが、ドライバ”ＣＡＮ”及び”ＭＣＵ”は既に起動順序が決定されているため、起動順序は変更しない（図７（６）参照）。
【００５１】
アプリケーションプログラムＡＰ２の一の必要ドライバ”ＰＷＭ”について処理を終了した後、起動順序決定プログラム１１０は、次の一の必要ドライバ”ＮＶＭ”について同様の処理を行う。即ち、起動順序決定プログラム１１０は、必要ドライバ”ＮＶＭ”はＯＳ起動前に起動する必要はないため、起動順序を最後に決定する（図７（７）参照）。次いで、起動順序決定プログラム１１０は、必要ドライバ”ＮＶＭ”の起動に必要な他のドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”の起動順序を決定するが、ドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”は既に起動順序が決定されており、ドライバ”ＮＶＭ”より先の起動順序であるため、起動順序は変更しない（図７（８）参照）。また、起動順序決定プログラム１１０は、必要ドライバ”ＮＶＭ”に関連する他のドライバ”ＥＥＰＲＯＭ”の起動順序を、ドライバ”ＮＶＭ”の後に決定する（図７（９）参照）。
【００５２】
アプリケーションプログラムＡＰ２の必要ドライバ”ＮＶＭ”について処理を終了した後、起動順序決定プログラム１１０は、次の一の必要ドライバ”ＥＥＰＲＯＭ”について同様の処理を行う。即ち、起動順序決定プログラム１１０は、必要ドライバ”ＥＥＰＲＯＭ”はＯＳ起動前に起動する必要があるため、起動順序をＯＳ起動の前に決定する（図７（１０）参照）。次いで、起動順序決定プログラム１１０は、必要ドライバ”ＥＥＰＲＯＭ”の起動に必要な他のドライバ”ＴＩＭＥＲ”及び”ＮＶＭ”の起動順序を決定するが、ドライバ”ＴＩＭＥＲ”及び”ＮＶＭ”は既に起動順序が決定されているため、この起動順序を変更してドライバ”ＴＩＭＥＲ”及び”ＮＶＭ”の起動順序を必要ドライバ”ＥＥＰＲＯＭ”より先とする。このとき、上述のようにドライバ”ＮＶＭ”の起動にはドライバ”ＲＡＭ”及び”ＴＩＭＥＲ”が必要であるため、ドライバ”ＲＡＭ”についても起動順序を変更し、ドライバ”ＮＶＭ”より先とする（図７（１１）参照）。また、起動順序決定プログラム１１０は、必要ドライバ”ＥＥＰＲＯＭ”に関連する他のドライバ”ＣＡＮ”及び”ＭＣＵ”の起動順序を決定するが、ドライバ”ＣＡＮ”及び”ＭＣＵ”は既に起動順序が決定されているため、起動順序は変更しない（図７（１２）参照）。
【００５３】
このように、起動順序決定プログラム１１０は、ＡＰ情報１６０に含まれる全てのアプリケーションプログラムＡＰ１、２…について同様の処理を繰り返し行い、各アプリケーションプログラムＡＰ１、２…に含まれる全てのドライバ１０５について起動順序を決定する。起動順序決定プログラム１１０が決定したドライバ１０５の起動順序は、起動情報１５０としてＥＥＰＲＯＭ１４に記憶される。
【００５４】
図８は、起動情報１５０の一例を示す模式図であり、図３に示したＡＰ情報１６０に対応する起動情報１５０である。起動情報１５０には、車載機器制御プログラム１００に含まれる全てのドライバ１０５と、ＥＣＵ１にて動作するＯＳとの起動順序が記憶されている。また起動情報１５０には、ＯＳ起動前に起動するドライバ１０５の起動順序が記憶された部分と、ＯＳ起動後に起動するドライバ１０５の起動順序が記憶された部分とを含んでいる。それぞれには、ドライバ１０５のドライバ名又はドライバ１０５が記憶されたＥＥＰＲＯＭ１４のアドレス等が、ドライバ１０５の起動順序に従って順に記憶されている。ＥＣＵ１の電源投入後などにおいては、ブート用のプログラムなどを実行することにより、ＣＰＵ１２は、ＥＥＰＲＯＭ１４から起動情報１５０を読み出して、起動情報１５０に記憶された起動順序に従ってドライバ１０５及びＯＳの起動を行うことができる。
【００５５】
以上の構成の実施の形態１に係るＥＣＵ１は、起動順序決定プログラム１１０の実行により車載機器制御プログラム１００に含まれる全てのドライバ１０５の起動順序をＡＰ情報１６０に基づいて決定し、起動情報１５０としてＥＥＰＲＯＭ１４に記憶する構成とすることにより、車載機器制御プログラム１００のアプリケーションプログラムＡＰ１、２…が使用する全てのドライバ１０５について起動順序を自動的に決定することができるため、ＥＣＵ１又は車載機器制御プログラム１００の開発を容易化することができる。よって、ＥＣＵ１又は車載機器制御プログラム１００の開発期間の短縮及び開発コストの低減等を実現することができる。
【００５６】
また、アプリケーションプログラムＡＰ１、２…の起動に必要なドライバ１０５、及び各ドライバ１０５の起動に必要な他のドライバ１０５についての情報を各アプリケーションプログラムＡＰ１、２…の開発者が提供してＡＰ情報１６０として予めＥＥＰＲＯＭ１４に記憶しておき、これに基づいて起動順序決定プログラム１１０が処理を行う構成とすることにより、アプリケーションプログラムＡＰ１、２…の各開発者から得られる正確な情報に基づいてドライバ１０５の起動順序を決定することができる。
【００５７】
また、ＡＰ情報１６０から、一のアプリケーションプログラムＡＰ１、２…の起動に必要な必要ドライバを調べて起動順序を決定し、この必要ドライバの起動に必要な他のドライバを調べて、起動順序が必要ドライバより先となるように他のドライバの起動順序を決定する。次いで、他のアプリケーションプログラムＡＰ１、２…の一の必要ドライバの起動順序が未決定であればこの起動順序を決定し、決定済みであれば起動順序を変更すると共に、この必要ドライバの起動に必要な他のドライバの起動順序が決定済みであれば、他のドライバと更にこれの起動に必要な他のドライバとの起動順序を変更する。これらにより、起動順序決定プログラム１１０は、複数のドライバ１０５間の依存関係を考慮した正確な起動順序の決定を行うことができる。
【００５８】
また、ＡＰ情報１６０には各ドライバ１０５をＯＳ起動前に起動する必要があるか否かを示すフラグを設け、このフラグに応じて起動順序決定プログラム１１０がドライバ１０５の起動順序を決定することにより、ＯＳの起動を考慮したドライバ１０５の起動順序の決定を自動的に行うことができる。また、ＡＰ情報１６０には各ドライバ１０５の動作に関連する他のドライバ１０５についての情報を記憶しておき、起動順序決定プログラム１１０が関連する他のドライバ１０５の起動順序を決定すると共に、この他のドライバ１０５を含むＡＰ情報１６０の全てのドライバ１０５が、決定した起動順序に含まれているか否かを判定し、含まれていないドライバ１０５がある場合にはエラー処理を行う構成とすることにより、ＡＰ情報１６０に誤りが含まれている場合などに開発者へ警告を与えることができる。
【００５９】
なお、本実施の形態においては、車載機器制御プログラム１００、起動情報１５０及びＡＰ情報１６０等をＥＥＰＲＯＭ１４０に記憶する構成としたが、これに限るものではなく、フラッシュメモリなどの他の不揮発性の記憶手段に記憶する構成であってもよい。また、起動順序決定プログラム１１０は、車載機器制御プログラム１００のプラットフォーム１０１内に設ける構成としたが、これに限るものではなく、プラットフォーム１０１外に設けてもよく、車載機器制御プログラム１００とは独立した別のプログラムとしてＥＣＵ１に搭載してもよい。また、起動順序決定プログラム１１０は、ドライバ１０５及びＯＳの起動順序を決定する構成としたが、これに限るものではなく、全てのドライバ１０５をＯＳの起動より前に起動させる必要がある場合などにおいては、起動順序決定プログラム１１０がＯＳ起動順序を考慮することなくドライバ１０５の起動順序を決定する構成としてもよい。また、本実施の形態においては、ＯＳが存在するシステムの例を示したが、これに限るものでなく、ＯＳが存在しないシステムについても同様である。また、図３に示したＡＰ情報１６０、図７に示した起動順序決定処理の過程、及び図８に示した起動情報１５０は一例であって、これに限るものではない。
【００６０】
上述の実施の形態１においては、起動順序決定プログラム１１０をＥＣＵ１内に搭載する構成としたが、これに限るものではない。
（実施の形態２）
図９は、本発明の実施の形態２に係る起動順序決定プログラム１１０を用いたドライバ１０５の起動順序決定処理を説明するための模式図である。実施の形態２に係る起動順序決定プログラム１１０は、ＥＣＵ１に搭載されるのではなく、例えばＥＣＵ１の開発者が使用するＰＣ２００に予めインストールされて実行することができるようにしてある。開発者は、ＥＣＵ１に搭載する車載機器制御プログラム１００に含まれるアプリケーションプログラムＡＰ１、２…についてのＡＰ情報１６０を例えばデータファイルなどとして用意し、ＡＰ情報１６０を入力情報として与えて起動順序決定プログラム１１０をＰＣ２００にて実行する。
【００６１】
起動順序決定プログラム１１０の実行により、図５及び図６に示した起動順序決定処理が行われ、起動情報１５０が出力ファイルなどとして生成される。開発者は、生成された起動情報１５０を、車載機器制御プログラム１００と共に、ＥＣＵ１のＥＥＰＲＯＭ１４に記憶する。これによりＥＣＵ１は、電源投入時などにおいて、ブートプログラムなどを実行したＣＰＵ１２がＥＥＰＲＯＭ１４から起動情報１５０を読み出し、起動情報１５０に記憶された起動順序に従って車載機器制御プログラム１００に含まれる全てのドライバ１０５を起動することができる。
【００６２】
以上のように、起動順序決定プログラム１１０をＥＣＵ１にて実行するのではなく、その他のＰＣ２００にて実行する構成とした場合であっても、実行結果として得られる起動情報１５０をＥＣＵ１に記憶させることによって、実施の形態１と同様の効果を得ることができる。
【００６３】
なお、実施の形態２に係る起動順序決定プログラム１１０のその他の構成は、実施の形態１に係る起動順序決定プログラム１１０の構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【図面の簡単な説明】
【００６４】
【図１】本発明に係る制御装置の構成を示すブロック図である。
【図２】車載機器制御プログラムのソフトウェア構成を示す模式図である。
【図３】ＡＰ情報の一例を示す模式図である。
【図４】本発明に係るＥＣＵが行う処理の手順を示すフローチャートである。
【図５】起動順序決定プログラムが行う起動順序決定処理の手順を示すフローチャートである。
【図６】起動順序決定プログラムが行う起動順序決定処理の手順を示すフローチャートである。
【図７】起動順序決定処理の一例を説明するための模式図である。
【図８】起動情報の一例を示す模式図である。
【図９】本発明の実施の形態２に係る起動順序決定プログラムを用いたドライバの起動順序決定処理を説明するための模式図である。
【符号の説明】
【００６５】
１  ＥＣＵ（制御装置）
３  ＥＣＵ
５  センサ（機器）
６  アクチュエータ（機器）
７  車載機器（機器）
１１  入出力Ｉ／Ｆ部
１２  ＣＰＵ（実行手段、起動手段、起動情報取得手段、決定手段、記憶制御手段、エラー処理手段）
１３  ＲＡＭ
１４  ＥＥＰＲＯＭ（記憶手段）
１５  通信部
１００  車載機器制御プログラム（起動手段、記憶制御手段）
１０１  プラットフォーム
１０５  ドライバ（ドライバプログラム）
１１０  起動順序決定プログラム（コンピュータプログラム、起動情報取得手段、決定手段、エラー処理手段）
１５０  起動情報
１６０  ＡＰ情報
２００  ＰＣ（コンピュータ）
ＡＰ１〜３  アプリケーションプログラム
【図１】
2010097283.tif 000003
【図２】
2010097283.tif 000004
【図３】
2010097283.tif 000005
【図４】
2010097283.tif 000006
【図５】
2010097283.tif 000007
【図６】
2010097283.tif 000008
【図７】
2010097283.tif 000009
【図８】
2010097283.tif 000010
【図９】
2010097283.tif 000011