JP2011238297A - Software creation method of automobile controller - Google Patents
Software creation method of automobile controller Download PDFInfo
- Publication number
- JP2011238297A JP2011238297A JP2011187492A JP2011187492A JP2011238297A JP 2011238297 A JP2011238297 A JP 2011238297A JP 2011187492 A JP2011187492 A JP 2011187492A JP 2011187492 A JP2011187492 A JP 2011187492A JP 2011238297 A JP2011238297 A JP 2011238297A
- Authority
- JP
- Japan
- Prior art keywords
- software
- source code
- identifier
- device driver
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は自動車用制御装置を構成するマイクロコンピュータのソフトウエアの作成方法に関する。 The present invention relates to a method for creating software for a microcomputer constituting a control device for an automobile.
従来より自動車エンジン制御などの制御装置として、CPU、ROM、RAM、入出力信号処理装置などを内蔵したマイクロコンピュータ(以下マイコンと記す)が用いられている。マイコンに搭載されるソフトウエアは、目的とする制御動作が行えるように、制御処理を行うアプリケーションプログラムと入出力を行うデバイスドライバによって構成されている。入出力を行うデバイスドライバは、使用するハードウエアが変更になった場合に影響を受け易く、その変更工数の大きさが問題となっている。 2. Description of the Related Art Conventionally, a microcomputer (hereinafter referred to as a microcomputer) incorporating a CPU, a ROM, a RAM, an input / output signal processing device, and the like has been used as a control device for automobile engine control. The software installed in the microcomputer is composed of an application program that performs control processing and a device driver that performs input / output so that a target control operation can be performed. The device driver that performs input / output is easily affected when the hardware to be used is changed, and the size of the change man-hour is a problem.
ハードウエアの変更には、大きく分けると、制御対象であるセンサやアクチュエータの変更と、制御を行うマイコンの変更の2通りがある。センサやアクチュエータなどの制御対象ハードウエアの変更の場合、その特性や仕様を記載したハードウエアマニュアル等を参照し、目的とする制御動作を実現できるようにソフトウエアを開発する。また、マイコンの変更の場合には、マイコンの仕様を記載したマニュアルを参照しながら変更個所の抽出、変更仕様の決定、変更作業、及び検証を行う必要があり多大な工数を要していた。 There are two types of hardware changes: a change in sensors and actuators to be controlled, and a change in microcomputer to be controlled. When changing the hardware to be controlled such as sensors and actuators, refer to the hardware manual describing the characteristics and specifications, and develop software so that the desired control operation can be realized. Further, in the case of changing the microcomputer, it is necessary to extract the changed portion, determine the changed specification, change work, and verify while referring to the manual describing the specifications of the microcomputer, which requires a lot of man-hours.
ハードウエアの変更に伴うソフトウエアの変更工数を削減するものとして、非特許文献1に開示されているように、情報系の汎用オペレーティングシステム(OS)であるUNIX(登録商標)がある。ここでは、制御対象ハードウエアとのインターフェースをブロック型、メッセージチャネル型、及びキャラクタ型の3種類に標準化し、全ての入出力プログラムは、上記3種類のうちいずれかの仮想インターフェースを介する。これにより、ソフトウエアは、アプリケーション、仮想ドライバ、実ドライバプログラムの三階層構成となり、アプリケーションプログラム側は対象ハードウエア変更を意識することなく開発できる。 As disclosed in Non-Patent Document 1, there is UNIX (registered trademark), which is an information-based general-purpose operating system (OS), as a means for reducing software modification man-hours associated with hardware changes. Here, the interface with the hardware to be controlled is standardized into three types: a block type, a message channel type, and a character type, and all input / output programs pass through any one of the three types of virtual interfaces. As a result, the software has a three-layer configuration of an application, a virtual driver, and an actual driver program, and the application program can be developed without being aware of the target hardware change.
また、特許文献1には、デバイスドライバを三階層化することによりデバイスの変更に伴なうプログラムの変更を局所化している。 Further, Patent Document 1 localizes program changes accompanying device changes by making device drivers three-tiered.
他方、非特許文献2によれば、デバイスドライバを上位ドライバと下位ドライバに分割して作成し、上位ドライバでは下位ドライバのインターフェースを用いて処理を行うことで、マイコンやハードウエアの変更の影響を受けない構成としている。 On the other hand, according to Non-Patent Document 2, the device driver is divided into a higher driver and a lower driver, and the upper driver performs processing using the interface of the lower driver, so that the influence of changes in the microcomputer and hardware can be reduced. It is set as the structure which does not receive.
さらに、インターフェースを介した処理を高速化する手法として、マクロにより展開する手法が知られており、特許文献2に開示されているように、インターフェースを介した処理呼び出しをマクロ置換により高速化している。 Further, as a technique for speeding up the processing via the interface, a technique of expanding by macro is known, and as disclosed in Patent Document 2, the speed of the processing call via the interface is increased by macro replacement. .
しかしながら、一般に用いられるC言語等のマクロ処理を行うプリプロセッサは、逐次処理による文字列置換処理であることから、複数の階層から構成される処理を高速化することが不可能である。このため、これらの従来技術では、階層を経るたびに発生する処理のオーバーヘッドを抑制することができない。例えば、三階層で構成されたデバイスドライバの場合、一つの入出力処理を行うために、三つの階層の呼び出し処理を行うプログラムとなり、プログラムの実行時間の遅延とサイズの増大とを招く。自動車などの制御に好適なリアルタイム制御を実現するためには、演算、入出力処理などの各処理を最適なタイミングで行う必要があり、数マイクロ秒の遅延も許されない場合も多い。階層型ソフトウエアを通常の実装方法で実装した場合、それぞれの階層間で関数呼び出しやシステムコール呼び出しが生じ、これらは無視できない遅延となる。また、これらはマイコン上のコンパイラなどを用いて機械語命令に変換すると、1〜8命令からなる呼び出し処理に変換され、数マイクロ秒から数十マイクロ秒の実行時間を要する。また、階層間の接続に対応するデータが、ROM、RAM、あるいはディスクなどの記憶手段上に必要となり、必要メモリ容量が増大する。 However, a commonly used preprocessor for performing macro processing such as C language is character string replacement processing by sequential processing, and therefore cannot speed up processing composed of a plurality of hierarchies. For this reason, in these prior arts, it is not possible to suppress the processing overhead that occurs every time a hierarchy is passed. For example, in the case of a device driver configured in three layers, in order to perform one input / output process, it becomes a program that performs call processing in three layers, causing a delay in program execution time and an increase in size. In order to realize real-time control suitable for control of an automobile or the like, it is necessary to perform each processing such as calculation and input / output processing at an optimal timing, and a delay of several microseconds is often not allowed. When hierarchical software is implemented by a normal implementation method, function calls and system call calls occur between the respective layers, and these delays cannot be ignored. Further, when these are converted into machine language instructions using a compiler on a microcomputer, they are converted into call processing consisting of 1 to 8 instructions, and an execution time of several microseconds to several tens of microseconds is required. In addition, data corresponding to the connection between layers is required on storage means such as ROM, RAM, or disk, and the required memory capacity increases.
自動車エンジン制御装置などの組み込みシステムは、コストに直接影響のあるROM、RAM容量の削減要求や、リアルタイム制御であることから応答速度に対する要求も厳しいため、これらのオーバーヘッドは実用上の大きな障害となる。 Embedded systems such as automobile engine control devices have a demand for reducing ROM and RAM capacity, which has a direct impact on costs, and demand for response speed due to real-time control. .
本発明の目的は、ハードウエアや制御方法の変更時におけるソフトウエアの変更工数を削減し、アプリケーションの実行速度と、記憶装置の必要容量を削減することである。 An object of the present invention is to reduce software man-hours when changing hardware and control methods, and to reduce application execution speed and storage device capacity.
本発明はその一面において、自動車の制御を行うアプリケーションと、前記アプリケーションの要求を受け付けてマイクロコンピュータを制御する、複数の階層に階層化されたデバイスドライバとを有する自動車用制御装置のソフトウエアを、計算機を用いて作成するためのソフトウエア作成方法において、
前記計算機は、前記デバイスドライバのソースコードと、
前記デバイスドライバの各階層の変数名または前記マイクロコンピュータの入出力信号名を表す識別子の階層間の対応関係を、前記自動車用制御装置の仕様に基づいてソースコードで記述された階層構成記述部と、
呼び出し処理を表す文字列によりある識別子を他の識別子に置換して同一のものであるとコンパイラに認識させる連結処理がソースコードで記述された識別子展開部と、
を記憶手段から読み出し、
前記階層構成記述部に記述された対応関係に基づいて、前記識別子展開部に記述された連結処理により異なる層の対応する識別子を同一の識別子に置換して、階層化された前記デバイスドライバのソースコードを1つの階層のソースコードにマクロ展開し、
マクロ展開された前記デバイスドライバのソースコードと、
前記アプリケーションのソースコードとから、
コンパイラを用いて、前記デバイスドライバと前記アプリケーションそれぞれのオブジェクト形式ファイルを作成し、
前記オブジェクト形式ファイルをリンカによってリンクして前記ソフトウエアを作成することを特徴とする。
In one aspect of the present invention, software for an automobile control device having an application for controlling an automobile and a device driver that receives a request from the application and controls a microcomputer to be hierarchized into a plurality of layers. In the software creation method for creating using a computer,
The computer includes a source code of the device driver,
A hierarchical configuration description part described in source code based on the specifications of the control device for automobiles, the correspondence relationship between the variable names of the layers of the device driver or the identifiers representing the input / output signal names of the microcomputer, ,
An identifier expansion unit in which a concatenation process in which a compiler recognizes that an identifier is the same by replacing a certain identifier with a character string representing a call process is the same as the source code;
From the storage means,
Based on the correspondence relationship described in the hierarchical structure description section, the corresponding identifiers of different layers are replaced with the same identifier by the concatenation process described in the identifier expansion section, and the source of the device driver layered Macro expands the code into one level of source code,
The source code of the device driver expanded macro,
From the source code of the application
Using a compiler, create object format files for the device driver and the application,
The object format file is linked by a linker to create the software.
本発明によれば、複数階層で設計したソフトウエアをコンパイルした結果として、一つの階層のみのソフトウエアとすることにより、階層間オーバーヘッドのないソフトウエアを得ることができる。 According to the present invention, as a result of compiling software designed in a plurality of hierarchies, it is possible to obtain software with no overhead between hierarchies by making software of only one hierarchy.
本発明によるその他の目的と特徴は、以下に述べる実施例の説明で明らかにする。 Other objects and features of the present invention will become apparent from the following description of embodiments.
以下、本発明の実施例を図面を参照して説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1は、本発明の一実施例によるデバイスドライバ開発時におけるデバイスドライバとアプリケーション及びハードウエアの構成図である。ここでは、各種センサから得られた入力を、マイコン130の入出力ポート131〜133をもとに、吸入空気量演算と、吸気温度演算を実行するデバイスドライバ120の例を示している。その詳細に入る前に、制御対象とする自動車エンジン制御システムの概要から先に説明する。
FIG. 1 is a configuration diagram of a device driver, an application, and hardware when developing a device driver according to an embodiment of the present invention. Here, an example of the
図2は、本発明の一実施例の対象とする自動車エンジン制御システムの構成図である。コントロールユニット200は、CPU201、割込みコントローラ202、タイマ・パルスコントローラ203、AD変換器204、ROM205、RAM206を備えている。これらは、バス207で結ばれ、入出力ポート208から外部とアクセスする。これらの各要素202〜208は、一つの素子上に内蔵する場合と、別素子を用いて接続する場合がある。210は、コントロールユニット200の電源部である。
FIG. 2 is a configuration diagram of an automobile engine control system which is an object of an embodiment of the present invention. The control unit 200 includes a
コントロールユニット200には、入出力ポート208を介して、その制御対象であるセンサ・アクチュエータ220が接続されている。センサ・アクチュエータ220は、エアフローセンサ221、電制スロットル222、インジェクタ223、点火プラグ224、LAFセンサ等の空燃比センサ225、及びクランク角センサ226等からなり、コントロールユニット200がこれらの制御を行う。すなわち、CPU201をはじめとする構成要素から、入出力ポート208内のレジスタへの読み書きにより、制御が行われる。制御の方法を記述したソフトウエアは、コントロールユニット200内のROM205及びRAM206に書き込まれる。
The control unit 200 is connected to a sensor / actuator 220 to be controlled through an input /
本実施例は、このソフトウエアにおいて、例えば、ハードに変更が生じた場合などにも、このソフトウエアの変更が容易で、かつ、アプリケーションの実行速度が速く、メモリ容量も節約できるソフトウエアの作成方法に関する。 In the present embodiment, in this software, for example, even when the hardware is changed, the software can be easily changed, the application execution speed is high, and the memory capacity can be saved. Regarding the method.
図2のコントロールユニット200が実行するソフトウエアの構成を、図1に戻って説明する。ソフトウエアは、大きく分けて、アプリケーションプログラム100、オペレーティングシステム(OS)110、デバイスドライバ120の3つに分類される。アプリケーションプログラム100は、アプリケーションプログラムインターフェース(API)140を通して、OS110やデバイスドライバ120と情報や処理の受け渡しを行う。接続されるハードウエアの如何によらず、API140を標準化することにより、ハードウエアが変更されても、その影響がアプリケーションプログラム100へ及ぶことを避けることができる。OS110、デバイスドライバ120は、マイコン130の入出力ポート131〜133等のハードウエアインターフェース(HWI)150を通して、これらの制御を行う。
The configuration of software executed by the control unit 200 of FIG. 2 will be described with reference to FIG. Software is roughly classified into three types: an
ここでは、マイコン130の入出力ポート131〜133を通してセンサから得られた入力に基いて、吸入空気量演算121及び吸気温度演算122を実行するデバイスドライバ120の例を示している。デバイスドライバ120は、アプリケーションプログラム100の噴射制御101や点火制御102等から、API140を通じて要求を受け付ける。その制御対象は、CPU130であり、HWI150を経て、アナログ入出力ポート131〜133等を読み書きすることにより、目的とする制御を行う。
Here, an example of the
デバイスドライバ120の開発時には、上位層(L1)160、下位層(L2)170のように、階層化することにより変更点の局所化を行う。この階層数は特に限定はなく、制御対象やソフトウエアの規模に応じて適切な階層数で実現できる。ここでは、2階層の場合について説明する。
When the
処理記述部180において、上位層(L1)160には、吸入空気量演算121や吸気温度演算122等、アプリケーション100が必要とする入力値を求めるモジュールを設ける。また、下位層(L2)170には、入力値を取り込んで汎用的な入力処理を行うモジュールを設け、処理内容を記述する。ここでは、1次フィルタアナログ入力(FAI)171と、Vcc補正アナログ入力(VAI)172を示している。階層構成記述部191には、どの上位層がどの下位層を用いるかという階層間の具体的な構成を記述する。識別子展開部192を用いて、階層構成記述部191で定めた階層構成を、処理記述部180に対応させ、所望の出力を得る。
In the
図3及び図4は、図1の処理記述部180の上位層(L1)160及び下位層(L2)170内の具体例の詳細図であり、これらについて説明する。
3 and 4 are detailed views of specific examples in the upper layer (L1) 160 and the lower layer (L2) 170 of the
図3は、図1における上位層(L1)160の吸入空気量演算(IAA)121の詳細図である。 FIG. 3 is a detailed view of the intake air amount calculation (IAA) 121 of the upper layer (L1) 160 in FIG.
図3(A)は処理の概略を示すものである。図示するように、吸入空気量演算モジュールには、、処理名1の吸入空気量更新処理と、処理名2の吸入空気量取得処理を有し、かつ、この演算のために必要な入力処理として、Vcc補正アナログ入力があることを示している。図3(B)は、上記吸入空気量更新処理の概略を示すフローチャート、図3(C)は、同じく吸入空気量取得処理の概略を示すフローチャートである。図3(D)は、図3(A),(B),及び(C)を実装したプログラムコードの例である。 FIG. 3A shows an outline of the processing. As shown in the figure, the intake air amount calculation module has an intake air amount update process for process name 1 and an intake air amount acquisition process for process name 2, and as input processes necessary for this calculation. , Vcc correction analog input is present. FIG. 3B is a flowchart showing an outline of the intake air amount update process, and FIG. 3C is a flowchart showing an outline of the intake air amount acquisition process. FIG. 3D is an example of program code in which FIGS. 3A, 3B, and 3C are implemented.
図3(B)の吸入空気量演算処理では、まず、ステップ301において、下位層L2におけるVcc補正アナログ入力(VAI)により入力値の更新を行い、次に、ステップ302において、更新した値を取得する。ステップ303では、取得した値をもとに、エアフローセンサの特性を補正するためのマップにより補正を行い、ステップ304では、前記補正によって得られた値をバッファへ保持する。
In the intake air amount calculation processing of FIG. 3B, first, in
また、図3(C)の吸入空気量取得の処理は、ステップ305において、上記バッファの値を返すことによって実現する。
Also, the process of acquiring the intake air amount in FIG. 3C is realized by returning the value of the buffer in
図3(D)は、これらの処理を、C言語のマクロを用いて記述したプログラムソースの例である。マクロ記述は、他モジュールの呼び出しを「Ln_Proc(_Ln(ID))」と記述し、データの参照を「Ls_(ID)」と記述する。但し、Lnは呼び出すモジュールの層名称、Procは呼び出す処理名、IDは自モジュール名、Lsは自モジュールの層名称である。 FIG. 3D shows an example of a program source in which these processes are described using C language macros. In the macro description, a call to another module is described as “Ln_Proc (_Ln (ID))”, and a data reference is described as “Ls_ (ID)”. However, Ln is the layer name of the module to be called, Proc is the name of the process to be called, ID is the name of its own module, and Ls is the layer name of its own module.
図4は、図1における下位層(L2)170の要素であるVcc補正アナログ入力(VAI)172のの詳細図である。 FIG. 4 is a detailed view of the Vcc correction analog input (VAI) 172 which is an element of the lower layer (L2) 170 in FIG.
図4(A)は処理の概要を示すものである。図示するように、Vcc補正アナログ入力モジュールには、処理名1のVcc補正アナログ入力値更新処理と、処理名2のVcc補正アナログ入力値取得処理を有し、かつ、この処理のために必要な入力種別として、マイコンポートからの入力があることを示している。図4(B)は、Vcc補正アナログ入力値更新処理のフローチャート、図4(C)は、同じくVcc補正アナログ入力値取得処理のフローチャートである。図4(D)は、これら図4(A),(B),及び(C)を実装したソースコードの例である。 FIG. 4A shows an outline of the processing. As shown in the figure, the Vcc correction analog input module has a process name 1 Vcc correction analog input value update process and a process name 2 Vcc correction analog input value acquisition process, and is necessary for this process. The input type indicates that there is an input from the microcomputer port. 4B is a flowchart of the Vcc correction analog input value update process, and FIG. 4C is a flowchart of the Vcc correction analog input value acquisition process. FIG. 4D is an example of source code in which these FIGS. 4A, 4B, and 4C are implemented.
図4(B)のVcc補正アナログ入力値更新処理では、まず、ステップ401において、ハードウエアインターフェース(HWI)150を介して、マイコンポートからVccを入力する。次に、ステップ402において、Vcc補正係数を乗算し、更新値を得る。ステップ403では、取得した更新値をバッファへ保持する。
In the Vcc correction analog input value update process of FIG. 4B, first, in
また、図4(C)のVcc補正アナログ入力値所得の処理は、ステップ404において、上記バッファの値を返すことによって実現する。
Further, the processing of the Vcc corrected analog input value income in FIG. 4C is realized by returning the value of the buffer in
図4(D)は、これらの処理を、C言語のマクロを用いて記述したプログラムソースの例である。マクロ記述は、図3(D)と同一要領である。 FIG. 4D shows an example of a program source in which these processes are described using C language macros. The macro description is the same as in FIG.
図5は、図1のデバイスドライバ120中の階層構成記述部191の詳細図である。
FIG. 5 is a detailed diagram of the hierarchical
図5(A)は、構成の概要を示すものである。それぞれの処理モジュールのラベル名IAT,IAA,VAI,及びFAIと、これらの下位に属する処理モジュールのラベル名が、FAI,VAI,AN1,及びAN2であることを示している。すなわち、吸気温度演算(IAT)122の下位モジュールが1次フィルタアナログ入力171であり、そのラベルがFAI、吸入空気量演算(IAA)121の下位モジュールがVcc補正アナログ入力172であり、そのラベルがVAIである。また、1次フィルタアナログ入力171、すなわちラベルFAIの対応ハードウエアが、アナログ入出力ポートでありラベルがAN2、Vcc補正アナログ入力172、すなわちラベルVAIの対応ハードウエアが、アナログ入出力ポートでありラベルがAN1であることを示している。
FIG. 5A shows an outline of the configuration. It shows that the label names IAT, IAA, VAI, and FAI of each processing module and the label names of the processing modules that belong to these are FAI, VAI, AN1, and AN2. That is, the lower module of the intake air temperature calculation (IAT) 122 is the primary filter analog input 171, its label is FAI, the lower module of the intake air amount calculation (IAA) 121 is the Vcc
図5(B)は、図5(A)の階層構成を基に実装した階層構成記述部191のソースコードである。このソースコードは、マクロを用いて記述し、「#define ID_Ln IDn」あるいは「#define ID_ADDR xxxx」の形式である。ここで、IDはデバイスドライバモジュールの識別子(ラベル)、IDnは当該モジュールと関連する他のモジュールの識別子(ラベル)、_ADDRはマイコンのポートを示す識別子(ラベル)でありxxxはポート名を示す。
FIG. 5B is a source code of the hierarchical
図6は、図1のデバイスドライバ120中の識別子展開部192の詳細図である。識別子展開部は「#define _Ln(ly) ly##_Ln」、「#define _ADDR(ly) ly##_ADDR」、「#define Ln_(ly) Ln_##ly」の形式である。ここで、Lnは上位下位層の名称、ADDRはマイコンのポートを示す任意の識別子を示すものであり、その他は、前述と同じである。これらはC言語の識別子連結機能「##」を用い、他の層のラベルと置換することにより、層間のマクロ展開を実現するものである。
FIG. 6 is a detailed diagram of the
図7は、以上で説明した処理記述部、階層構成記述部、及び識別子展開部を用いた開発手順図である。前記のように作成したデバイスドライバプログラムソースコード71の階層構成記述部711、識別子展開部712、処理記述部713を、ビルド72を通して、デバイスドライバオブジェクトファイル73を得る。すなわち、プリプロセッサ721、コンパイラ722を用いて、機械語コードに変換すると、デバイスドライバのオブジェクトファイル73が出力される。このオブジェクトファイル73では、階層化して構築した処理記述部が、プリプロセッサ721によって一つの層に展開されるため、階層間のオーバーヘッドが除去される。
FIG. 7 is a development procedure diagram using the process description part, the hierarchical structure description part, and the identifier expansion part described above. The device
図8は、本発明の一実施例により階層間のオーバーヘッドが除去されたソースコードの一例図である。呼び出し側のソースコードが図8(A)であり、これをプリプロセッサ721によって展開した後のコードが図8(B)である。プリプロセッサ721によるマクロ展開により、図3(B)のステップ301,302、並びに図4(B)のステップ401の階層間の呼び出し処理が1層内に展開されている。このため、他階層呼び出し処理に伴う引数や、スタックポインタの退避処理が不要となり、処理の高速化とコードサイズの削減を実現できる。
FIG. 8 is a diagram illustrating an example of source code in which overhead between layers is removed according to an embodiment of the present invention. FIG. 8A shows the source code on the calling side, and FIG. 8B shows the code after this is expanded by the
図8(C)は、従来の手法による機械語コードであり、図8(D)が、本発明の一実施例による削減分の例である。すなわち、図3(B)のステップ301の呼び出しを行う機械語コードが図8(C)に破線枠で囲った81であり、ひとつの階層間呼び出しにつき、81の分が削減できる。
FIG. 8C shows a machine language code according to a conventional method, and FIG. 8D shows an example of reduction by one embodiment of the present invention. That is, the machine language code for calling in
図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が得られる。
FIG. 9 is a development environment and development procedure diagram for realizing a device driver creation method according to an embodiment of the present invention. In
図10は、入出力端子一覧表905の一例を示す図である。入出力端子一覧表905は、ハードウエアデバイスとコントロールユニットの端子の対応を示すものである。これを用い、上位層(L1)160をハードウエアデバイスに対応する層とし、下位層をハードウエアポート131〜133に対応する層とすると、図10は図5(A)に対応する。階層構成生成装置906は、これを基に、図5(B)を出力するものである。階層構成生成装置906を用いることにより、ハードウエア設計結果である入出力端子一覧表905から階層構成記述部908を、計算機を用いて自動生成可能となり、生産性を向上できる。階層構成生成装置906、デバイスドライバリポジトリ902、コンパイラ914としては、キーボード、マウス、ネットワークなどの入力手段と、CRTなどの表示手段、ハードディスクなどの記憶手段を備えた計算機を用いることで実現できる。
FIG. 10 is a diagram illustrating an example of the input /
本発明によるマイクロコンピュータのソフトウエアの作成方法や作成システムは、処理の迅速性と高信頼性が要求され、しかも、ハードウエアの変更頻度も激しい自動車のエンジン制御装置の電子制御ユニットに適用することによって、開発者の負担を大きく低減でき、高い利用可能性が期待される。 The microcomputer software creation method and creation system according to the present invention should be applied to an electronic control unit of an automobile engine control apparatus that requires rapid processing and high reliability, and frequently changes hardware. Therefore, the burden on developers can be greatly reduced, and high availability is expected.
100…アプリケーションプログラム、101…噴射制御アプリケーション、102…点火制御アプリケーション、110…オペレーティングシステム、120…デバイスドライバ、121…吸入空気量演算(IAA)、122…吸気温度演算(IAT)、130,201…マイコン(CPU)、131〜133,203…入出力ポート、140…アプリケーションプログラムインターフェース(API)、150…ハードウエアインターフェース(HWI)、160…上位層(L1)、170…下位層(L2)、171…1次フィルタアナログ入力(FAI)、172…Vcc補正アナログ入力(VAI)、180…識別子展開部、191…階層構成記述部、192…識別子展開部、200…コントロールユニット、220…センサ・アクチュエータ、71…デバイスドライバプログラムソースコード、72…ビルド、73…デバイスドライバオブジェクトファイル、902…デバイスドライバリポジトリ、905…入出力端子一覧表、906…階層構成生成装置、911…プリプロセッサ、913…展開された処理記述部、914…コンパイラ、916…デバイスドライバオブジェクト形式ファイル、917…アプリケーションソースコード、918…アプリケーションオブジェクト形式ファイル、919…リンカ、921…制御ソフトウエア。
DESCRIPTION OF
Claims (6)
前記計算機は、前記デバイスドライバのソースコードと、
前記デバイスドライバの各階層の変数名または前記マイクロコンピュータの入出力信号名を表す識別子の階層間の対応関係を、前記自動車用制御装置の仕様に基づいてソースコードで記述された階層構成記述部と、
呼び出し処理を表す文字列によりある識別子を他の識別子に置換して単一のものであるとコンパイラに認識させる連結処理がソースコードで記述された識別子展開部と、
を記憶手段から読み出し、
前記階層構成記述部に記述された対応関係に基づいて、前記識別子展開部に記述された連結処理により異なる層の対応する識別子を単一の識別子に置換して、階層化された前記デバイスドライバのソースコードを1つの階層のソースコードにマクロ展開し、
マクロ展開された前記デバイスドライバのソースコードと、
前記アプリケーションのソースコードとから、
コンパイラを用いて、前記デバイスドライバと前記アプリケーションそれぞれのオブジェクト形式ファイルを作成し、
前記オブジェクト形式ファイルをリンカによってリンクして前記ソフトウエアを作成することを特徴とする自動車用制御装置のソフトウエア作成方法。 To create software for an automobile control device having an application for controlling an automobile and a device driver that receives a request for the application and controls a microcomputer and that is hierarchized into a plurality of hierarchies using a computer In the software creation method of
The computer includes a source code of the device driver,
A hierarchical configuration description part described in source code based on the specifications of the control device for automobiles, the correspondence relationship between the variable names of the layers of the device driver or the identifiers representing the input / output signal names of the microcomputer, ,
An identifier expansion unit in which a concatenation process described in the source code is described in a source code by replacing a certain identifier by a character string representing a call process with another identifier and recognizing the compiler as a single one;
From the storage means,
Based on the correspondence relationship described in the hierarchical structure description part, the corresponding identifiers of different layers are replaced with a single identifier by the concatenation process described in the identifier expansion part, and the layered device driver Macro expansion of source code into one level of source code,
The source code of the device driver expanded macro,
From the source code of the application
Using a compiler, create object format files for the device driver and the application,
A software creation method for an automotive control device, wherein the software is created by linking the object format file with a linker.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011187492A JP2011238297A (en) | 2011-08-30 | 2011-08-30 | Software creation method of automobile controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011187492A JP2011238297A (en) | 2011-08-30 | 2011-08-30 | Software creation method of automobile controller |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006546575A Division JP4921175B2 (en) | 2004-12-07 | 2004-12-07 | Software creation method for automobile control device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011238297A true JP2011238297A (en) | 2011-11-24 |
Family
ID=45326111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011187492A Withdrawn JP2011238297A (en) | 2011-08-30 | 2011-08-30 | Software creation method of automobile controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011238297A (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63181034A (en) * | 1987-01-23 | 1988-07-26 | Nissan Motor Co Ltd | Supporting device for development of control program |
JPH02195438A (en) * | 1989-01-24 | 1990-08-02 | Nec Corp | Recursive access detecting system in microdevelopment |
JPH03282935A (en) * | 1990-03-30 | 1991-12-13 | Pfu Ltd | Compile processor and compile processing system |
JP2000097102A (en) * | 1998-09-17 | 2000-04-04 | Denso Corp | Control device for vehicle |
JP2002287981A (en) * | 2001-03-28 | 2002-10-04 | Denso Corp | Program preparing device and method and program |
-
2011
- 2011-08-30 JP JP2011187492A patent/JP2011238297A/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63181034A (en) * | 1987-01-23 | 1988-07-26 | Nissan Motor Co Ltd | Supporting device for development of control program |
JPH02195438A (en) * | 1989-01-24 | 1990-08-02 | Nec Corp | Recursive access detecting system in microdevelopment |
JPH03282935A (en) * | 1990-03-30 | 1991-12-13 | Pfu Ltd | Compile processor and compile processing system |
JP2000097102A (en) * | 1998-09-17 | 2000-04-04 | Denso Corp | Control device for vehicle |
JP2002287981A (en) * | 2001-03-28 | 2002-10-04 | Denso Corp | Program preparing device and method and program |
Non-Patent Citations (2)
Title |
---|
CSNG200100526005; 川口 進,外2名: '階層化データフロー図によるプログラムの設計と実動' 電子情報通信学会論文誌 第J82-D-I巻,第10号, 19991025, 第1265-1275頁, 社団法人電子情報通信学会 * |
JPN6013000326; 川口 進,外2名: '階層化データフロー図によるプログラムの設計と実動' 電子情報通信学会論文誌 第J82-D-I巻,第10号, 19991025, 第1265-1275頁, 社団法人電子情報通信学会 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5179249B2 (en) | Control device simulation method, system, and program | |
JP5153465B2 (en) | Simulation method, system and program | |
EP1703391A2 (en) | Vehicle control software and vehicle control apparatus | |
US7194726B2 (en) | Method for automatically decomposing dynamic system models into submodels | |
US7197743B2 (en) | Method for generating computer software for embedded systems | |
JP5224957B2 (en) | Simulation method, system and program | |
CN111650847A (en) | Method for integrating actuator model in aeroengine hardware on loop platform | |
CN115167831A (en) | Software integration method and device based on AUTOSAR and use method | |
JP2008059312A (en) | Controller and development system therefor | |
CN102129385B (en) | Management method capable of dynamically expanding management function of virtual machine | |
US8412496B2 (en) | Simulation system, method, and program | |
JP4921175B2 (en) | Software creation method for automobile control device | |
JP5186290B2 (en) | Simulation method, system and program | |
JP2011238297A (en) | Software creation method of automobile controller | |
JPH06348766A (en) | Method and device for incorporating tool | |
JP2002091508A (en) | Calibration system for control unit | |
JP5382624B2 (en) | Multiprocessor control device, method and program thereof | |
JP5460010B2 (en) | Simulation method, system and program | |
US9558305B1 (en) | Automatic modeling, mapping, and code generation for homogeneous and heterogeneous platforms | |
JP5082797B2 (en) | Software partial test system | |
Klaus et al. | Automatic generation of scheduled SystemC models of embedded systems from extended task graphs | |
JP2013161219A (en) | Code generation device and code generation program | |
JP2009080566A (en) | Vehicle control program and program generation method, program generator, and automobile controller | |
JP5500820B2 (en) | Simulation method, system and program | |
CN112307589B (en) | Unit working condition creation method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130115 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20130318 |