"自動車の制御を行うアプリケーションと、前記アプリケーションの要求を受け付けてマイクロコンピュータを制御する、複数の階層に階層化されたデバイスドライバとを有する自動車用制御装置のソフトウエアを、計算機を用いて作成するためのソフトウエア作成方法において、前記計算機は、前記デバイスドライバのソースコードと、前記デバイスドライバの各階層の変数名または前記マイクロコンピュータの入出力信号名を表す識別子の階層間の対応関係を、前記自動車用制御装置の仕様に基づいてソースコードで記述された階層構成記述部と、呼び出し処理を表す文字列によりある識別子を他の識別子に置換して単一のものであるとコンパイラに認識させる連結処理がソースコードで記述された識別子展開部と、を記憶手段から読み出し、前記階層構成記述部に記述された対応関係に基づいて、前記識別子展開部に記述された連結処理により異なる層の対応する識別子を単一の識別子に置換して、階層化された前記デバイスドライバのソースコードを1つの階層のソースコードにマクロ展開し、マクロ展開された前記デバイスドライバのソースコードと、前記アプリケーションのソースコードとから、コンパイラを用いて、前記デバイスドライバと前記アプリケーションそれぞれのオブジェクト形式ファイルを作成し、前記オブジェクト形式ファイルをリンカによってリンクして前記ソフトウエアを作成することを特徴とする自動車用制御装置のソフトウエア作成方法。請求項1において、前記階層構成記述部は、前記マイクロコンピュータの出力端子名の記述を含むことを特徴とする自動車用制御装置のソフトウエア作成方法。請求項1又は2において、前記識別子展開部は、プログラミング言語の識別子連結命令の記述を含むことを特徴とする自動車用制御装置のソフトウエア作成方法。請求項1~3のいずれかにおいて、ハードウエアデバイスとマイクロコンピュータを含むコントロールユニットの入出力端子の対応を記載した入出力端子一覧表に基いて前記階層構成記述部を生成するステップを備えたことを特徴とする自動車用制御装置のソフトウエア作成方法。請求項1~3のいずれかにおいて、前記階層構成記述部を作成するステップは、自動車用制御装置の仕様書に記載されている入出力端子一覧表に基いて階層構成記述部を作成するステップを含むことを特徴とする自動車用制御装置のソフトウエア作成方法。請求項1~5のいずれかにおいて、自動車用制御装置のコントロールユニットで実行させるソフトウエアを構成するアプリケーションプログラムのソースコードを作成するステップと、このアプリケーションソースコードをオブジェクト形式ファイルに変換するステップと、展開された前記第2の処理記述部をオブジェクト形式ファイルに変換するステップと、これらオブジェクト形式ファイルに変換されたアプリケーション及び第2の処理記述部を結合して前記マイクロコンピュータの記憶装置に制御用ソフトウエアとして書き込むステップとを備えたことを特徴とする自動車用制御装置のソフトウエア作成方法。しかしながら、一般に用いられるC言語等のマクロ処理を行うプリプロセッサは、逐次処理による文字列置換処理であることから、複数の階層から構成される処理を高速化することが不可能である。このため、これらの従来技術では、階層を経るたびに発生する処理のオーバーヘッドを抑制することができない。例えば、三階層で構成されたデバイスドライバの場合、一つの入出力処理を行うために、三つの階層の呼び出し処理を行うプログラムとなり、プログラムの実行時間の遅延とサイズの増大とを招く。自動車などの制御に好適なリアルタイム制御を実現するためには、演算、入出力処理などの各処理を最適なタイミングで行う必要があり、数マイクロ秒の遅延も許されない場合も多い。階層型ソフトウエアを通常の実装方法で実装した場合、それぞれの階層間で関数呼び出しやシステムコール呼び出しが生じ、これらは無視できない遅延となる。また、これらはマイコン上のコンパイラなどを用いて機械語命令に変換すると、1~8命令からなる呼び出し処理に変換され、数マイクロ秒から数十マイクロ秒の実行時間を要する。また、階層間の接続に対応するデータが、ROM、RAM、あるいはディスクなどの記憶手段上に必要となり、必要メモリ容量が増大する。自動車エンジン制御装置などの組み込みシステムは、コストに直接影響のあるROM、RAM容量の削減要求や、リアルタイム制御であることから応答速度に対する要求も厳しいため、これらのオーバーヘッドは実用上の大きな障害となる。本発明の目的は、ハードウエアや制御方法の変更時におけるソフトウエアの変更工数を削減し、アプリケーションの実行速度と、記憶装置の必要容量を削減することである。本発明はその一面において、自動車の制御を行うアプリケーションと、前記アプリケーションの要求を受け付けてマイクロコンピュータを制御する、複数の階層に階層化されたデバイスドライバとを有する自動車用制御装置のソフトウエアを、計算機を用いて作成するためのソフトウエア作成方法において、前記計算機は、前記デバイスドライバのソースコードと、前記デバイスドライバの各階層の変数名または前記マイクロコンピュータの入出力信号名を表す識別子の階層間の対応関係を、前記自動車用制御装置の仕様に基づいてソースコードで記述された階層構成記述部と、呼び出し処理を表す文字列によりある識別子を他の識別子に置換して同一のものであるとコンパイラに認識させる連結処理がソースコードで記述された識別子展開部と、を記憶手段から読み出し、前記階層構成記述部に記述された対応関係に基づいて、前記識別子展開部に記述された連結処理により異なる層の対応する識別子を同一の識別子に置換して、階層化された前記デバイスドライバのソースコードを1つの階層のソースコードにマクロ展開し、マクロ展開された前記デバイスドライバのソースコードと、前記アプリケーションのソースコードとから、コンパイラを用いて、前記デバイスドライバと前記アプリケーションそれぞれのオブジェクト形式ファイルを作成し、前記オブジェクト形式ファイルをリンカによってリンクして前記ソフトウエアを作成することを特徴とする。本発明によれば、複数階層で設計したソフトウエアをコンパイルした結果として、一つの階層のみのソフトウエアとすることにより、階層間オーバーヘッドのないソフトウエアを得ることができる。本発明によるその他の目的と特徴は、以下に述べる実施例の説明で明らかにする。以下、本発明の実施例を図面を参照して説明する。図1は、本発明の一実施例によるデバイスドライバ開発時におけるデバイスドライバとアプリケーション及びハードウエアの構成図である。ここでは、各種センサから得られた入力を、マイコン130の入出力ポート131~133をもとに、吸入空気量演算と、吸気温度演算を実行するデバイスドライバ120の例を示している。その詳細に入る前に、制御対象とする自動車エンジン制御システムの概要から先に説明する。図2は、本発明の一実施例の対象とする自動車エンジン制御システムの構成図である。コントロールユニット200は、CPU201、割込みコントローラ202、タイマパルスコントローラ203、AD変換器204、ROM205、RAM206を備えている。これらは、バス207で結ばれ、入出力ポート208から外部とアクセスする。これらの各要素202~208は、一つの素子上に内蔵する場合と、別素子を用いて接続する場合がある。210は、コントロールユニット200の電源部である。コントロールユニット200には、入出力ポート208を介して、その制御対象であるセンサアクチュエータ220が接続されている。センサアクチュエータ220は、エアフローセンサ221、電制スロットル222、インジェクタ223、点火プラグ224、LAFセンサ等の空燃比センサ225、及びクランク角センサ226等からなり、コントロールユニット200がこれらの制御を行う。すなわち、CPU201をはじめとする構成要素から、入出力ポート208内のレジスタへの読み書きにより、制御が行われる。制御の方法を記述したソフトウエアは、コントロールユニット200内のROM205及びRAM206に書き込まれる。本実施例は、このソフトウエアにおいて、例えば、ハードに変更が生じた場合などにも、このソフトウエアの変更が容易で、かつ、アプリケーションの実行速度が速く、メモリ容量も節約できるソフトウエアの作成方法に関する。図2のコントロールユニット200が実行するソフトウエアの構成を、図1に戻って説明する。ソフトウエアは、大きく分けて、アプリケーションプログラム100、オペレーティングシステムOS110、デバイスドライバ120の3つに分類される。アプリケーションプログラム100は、アプリケーションプログラムインターフェースAPI140を通して、OS110やデバイスドライバ120と情報や処理の受け渡しを行う。接続されるハードウエアの如何によらず、API140を標準化することにより、ハードウエアが変更されても、その影響がアプリケーションプログラム100へ及ぶことを避けることができる。OS110、デバイスドライバ120は、マイコン130の入出力ポート131~133等のハードウエアインターフェースHWI150を通して、これらの制御を行う。ここでは、マイコン130の入出力ポート131~133を通してセンサから得られた入力に基いて、吸入空気量演算121及び吸気温度演算122を実行するデバイスドライバ120の例を示している。デバイスドライバ120は、アプリケーションプログラム100の噴射制御101や点火制御102等から、API140を通じて要求を受け付ける。その制御対象は、CPU130であり、HWI150を経て、アナログ入出力ポート131~133等を読み書きすることにより、目的とする制御を行う。デバイスドライバ120の開発時には、上位層L1160、下位層L2170のように、階層化することにより変更点の局所化を行う。この階層数は特に限定はなく、制御対象やソフトウエアの規模に応じて適切な階層数で実現できる。ここでは、2階層の場合について説明する。処理記述部180において、上位層L1160には、吸入空気量演算121や吸気温度演算122等、アプリケーション100が必要とする入力値を求めるモジュールを設ける。また、下位層L2170には、入力値を取り込んで汎用的な入力処理を行うモジュールを設け、処理内容を記述する。ここでは、1次フィルタアナログ入力FAI171と、Vcc補正アナログ入力VAI172を示している。階層構成記述部191には、どの上位層がどの下位層を用いるかという階層間の具体的な構成を記述する。識別子展開部192を用いて、階層構成記述部191で定めた階層構成を、処理記述部180に対応させ、所望の出力を得る。図3及び図4は、図1の処理記述部180の上位層L1160及び下位層L2170内の具体例の詳細図であり、これらについて説明する。図3は、図1における上位層L1160の吸入空気量演算IAA121の詳細図である。図3Aは処理の概略を示すものである。図示するように、吸入空気量演算モジュールには、、処理名1の吸入空気量更新処理と、処理名2の吸入空気量取得処理を有し、かつ、この演算のために必要な入力処理として、Vcc補正アナログ入力があることを示している。図3Bは、上記吸入空気量更新処理の概略を示すフローチャート、図3Cは、同じく吸入空気量取得処理の概略を示すフローチャートである。図3Dは、図3A,B,及びCを実装したプログラムコードの例である。図3Bの吸入空気量演算処理では、まず、ステップ301において、下位層L2におけるVcc補正アナログ入力VAIにより入力値の更新を行い、次に、ステップ302において、更新した値を取得する。ステップ303では、取得した値をもとに、エアフローセンサの特性を補正するためのマップにより補正を行い、ステップ304では、前記補正によって得られた値をバッファへ保持する。また、図3Cの吸入空気量取得の処理は、ステップ305において、上記バッファの値を返すことによって実現する。図3Dは、これらの処理を、C言語のマクロを用いて記述したプログラムソースの例である。マクロ記述は、他モジュールの呼び出しをLn_Proc_LnIDと記述し、データの参照をLs_IDと記述する。但し、Lnは呼び出すモジュールの層名称、Procは呼び出す処理名、IDは自モジュール名、Lsは自モジュールの層名称である。図4は、図1における下位層L2170の要素であるVcc補正アナログ入力VAI172のの詳細図である。図4Aは処理の概要を示すものである。図示するように、Vcc補正アナログ入力モジュールには、処理名1のVcc補正アナログ入力値更新処理と、処理名2のVcc補正アナログ入力値取得処理を有し、かつ、この処理のために必要な入力種別として、マイコンポートからの入力があることを示している。図4Bは、Vcc補正アナログ入力値更新処理のフローチャート、図4Cは、同じくVcc補正アナログ入力値取得処理のフローチャートである。図4Dは、これら図4A,B,及びCを実装したソースコードの例である。図4BのVcc補正アナログ入力値更新処理では、まず、ステップ401において、ハードウエアインターフェースHWI150を介して、マイコンポートからVccを入力する。次に、ステップ402において、Vcc補正係数を乗算し、更新値を得る。ステップ403では、取得した更新値をバッファへ保持する。また、図4CのVcc補正アナログ入力値所得の処理は、ステップ404において、上記バッファの値を返すことによって実現する。図4Dは、これらの処理を、C言語のマクロを用いて記述したプログラムソースの例である。マクロ記述は、図3Dと同一要領である。図5は、図1のデバイスドライバ120中の階層構成記述部191の詳細図である。図5Aは、構成の概要を示すものである。それぞれの処理モジュールのラベル名IAT,IAA,VAI,及びFAIと、これらの下位に属する処理モジュールのラベル名が、FAI,VAI,AN1,及びAN2であることを示している。すなわち、吸気温度演算IAT122の下位モジュールが1次フィルタアナログ入力171であり、そのラベルがFAI、吸入空気量演算IAA121の下位モジュールがVcc補正アナログ入力172であり、そのラベルがVAIである。また、1次フィルタアナログ入力171、すなわちラベルFAIの対応ハードウエアが、アナログ入出力ポートでありラベルがAN2、Vcc補正アナログ入力172、すなわちラベルVAIの対応ハードウエアが、アナログ入出力ポートでありラベルがAN1であることを示している。図5Bは、図5Aの階層構成を基に実装した階層構成記述部191のソースコードである。このソースコードは、マクロを用いて記述し、defineID_LnIDnあるいはdefineID_ADDRxxxxの形式である。ここで、IDはデバイスドライバモジュールの識別子ラベル、IDnは当該モジュールと関連する他のモジュールの識別子ラベル、_ADDRはマイコンのポートを示す識別子ラベルでありxxxはポート名を示す。図6は、図1のデバイスドライバ120中の識別子展開部192の詳細図である。識別子展開部はdefine_Lnlyly_Ln、define_ADDRlyly_ADDR、defineLn_lyLn_lyの形式である。ここで、Lnは上位下位層の名称、ADDRはマイコンのポートを示す任意の識別子を示すものであり、その他は、前述と同じである。これらはC言語の識別子連結機能を用い、他の層のラベルと置換することにより、層間のマクロ展開を実現するものである。図7は、以上で説明した処理記述部、階層構成記述部、及び識別子展開部を用いた開発手順図である。前記のように作成したデバイスドライバプログラムソースコード71の階層構成記述部711、識別子展開部712、処理記述部713を、ビルド72を通して、デバイスドライバオブジェクトファイル73を得る。すなわち、プリプロセッサ721、コンパイラ722を用いて、機械語コードに変換すると、デバイスドライバのオブジェクトファイル73が出力される。このオブジェクトファイル73では、階層化して構築した処理記述部が、プリプロセッサ721によって一つの層に展開されるため、階層間のオーバーヘッドが除去される。図8は、本発明の一実施例により階層間のオーバーヘッドが除去されたソースコードの一例図である。呼び出し側のソースコードが図8Aであり、これをプリプロセッサ721によって展開した後のコードが図8Bである。プリプロセッサ721によるマクロ展開により、図3Bのステップ301,302、並びに図4Bのステップ401の階層間の呼び出し処理が1層内に展開されている。このため、他階層呼び出し処理に伴う引数や、スタックポインタの退避処理が不要となり、処理の高速化とコードサイズの削減を実現できる。図8Cは、従来の手法による機械語コードであり、図8Dが、本発明の一実施例による削減分の例である。すなわち、図3Bのステップ301の呼び出しを行う機械語コードが図8Cに破線枠で囲った81であり、ひとつの階層間呼び出しにつき、81の分が削減できる。図9は、本発明の一実施例によるデバイスドライバ作成方法を実現するための開発環境及び開発手順図である。作成済みのデバイスドライバ120である識別子展開部192と処理記述部180を、ステップ901にて登録する。これを保存するデバイスドライバリポジトリ902から、ステップ903にて、必要な識別子展開部192と処理記述部180を取得する。他方、ハードウエア設計の結果得られる制御装置仕様904のうち、マイコンのポートとデバイスの対応を記述した入出力端子一覧表905を入力し、階層構成生成装置906を用いて、ステップ907にて階層構成記述部908を取得する。このようにして得られた階層構成記述部908、識別子展開部909、及び処理記述部910を、プリプロセッサ911により、ステップ912にてマクロ展開を行う。これにより、階層を用いて記述された処理記述部910から、識別子展開部909と階層構成記述部908に基いて階層構造を展開された処理記述部913を得ることができる。ここで得られた展開された処理記述部913は、階層構造をもたず、ただひとつの階層からなり、階層間の処理オーバーヘッドが削減されている。次に、コンパイラ914を用いたコンパイルステップ915で、デバイスドライバオブジェクト形式ファイル916を得る。このドライバオブジェクト形式ファイル916は、アプリケーションソースコード917をコンパイルして得られたアプリケーションオブジェクト形式ファイル918とともにリンカ919を用いて、ステップ920でリンクされ、制御ソフトウエア921が得られる。図10は、入出力端子一覧表905の一例を示す図である。入出力端子一覧表905は、ハードウエアデバイスとコントロールユニットの端子の対応を示すものである。これを用い、上位層L1160をハードウエアデバイスに対応する層とし、下位層をハードウエアポート131~133に対応する層とすると、図10は図5Aに対応する。階層構成生成装置906は、これを基に、図5Bを出力するものである。階層構成生成装置906を用いることにより、ハードウエア設計結果である入出力端子一覧表905から階層構成記述部908を、計算機を用いて自動生成可能となり、生産性を向上できる。階層構成生成装置906、デバイスドライバリポジトリ902、コンパイラ914としては、キーボード、マウス、ネットワークなどの入力手段と、CRTなどの表示手段、ハードディスクなどの記憶手段を備えた計算機を用いることで実現できる。"