(57)【要約】駆動シーケンスを制御するための機能を刺激する方法と装置であって，その場合に機能は制御するための少なくとも１つのプログラムの少なくとも１つのグローバル変数を利用する，前記方法と装置は，少なくとも１つの刺激機能が設けられており，前記刺激機能が少なくとも１つのソフトウェアフリーカットを介して少なくとも１つのグローバル変数にアクセスすることを特徴としている。【選択図】図１３
2007510205.tif 000002
【特許請求の範囲】
【請求項１】
駆動シーケンスを制御するための機能を刺激する方法であって，その場合に前記機能は制御するための少なくとも１つのプログラムの少なくとも１つのグローバル変数を利用する，前記方法において，
少なくとも１つの刺激機能が設けられており，前記刺激機能が少なくとも１つのソフトウェアフリーカットを介して少なくとも１つのグローバル変数にアクセスすることを特徴とする，駆動シーケンスを制御するための機能を刺激する方法。
【請求項２】
前記機能の刺激が，プログラムのランタイムに前記プログラムの内部で行われることを特徴とする請求項１に記載の方法。
【請求項３】
前記機能の刺激が，ランタイムシステムの内部でリアルタイムで行われることを特徴とする請求項１に記載の方法。
【請求項４】
前記グローバル変数に，第１のデータ情報が対応づけられており，該第１のデータ情報が，新しい刺激値に相当する第２のデータ情報によって置き換えられることを特徴とする請求項１に記載の方法。
【請求項５】
前記機能の刺激が，内部のバイパスによって行われることを特徴とする請求項１に記載の方法。
【請求項６】
前記ソフトウェアフリーカットは，前記グローバル変数にアドレス情報が対応づけられ，前記アドレス情報がロード命令によってメモリ手段からロードされて，前記ロード命令のグローバル変数のアドレス情報が置き換えられることによって行われることを特徴とする請求項１に記載の方法。
【請求項７】
前記グローバル変数のアドレス情報が，ポインタ変数のアドレス情報によって置き換えられることを特徴とする請求項６に記載の方法。
【請求項８】
前記アドレス情報から，機能の開始アドレスが求められることを特徴とする請求項６に記載の方法。
【請求項９】
駆動シーケンスを制御するための機能が，前記アドレス情報の置換えによって付加機能に置き換えられることを特徴とする請求項６に記載の方法。
【請求項１０】
前記ソフトウェアフリーカットは，グローバル変数がストア命令によって呼び出され，前記ストア命令がジャンプ命令によって置き換えられることにより，前記グローバル変数に対する前記ストア命令が操作されることによって行われることを特徴とする請求項１に記載の方法。
【請求項１１】
駆動シーケンスを制御するための機能は，前記ストア命令が前記ジャンプ命令により置き換えられることによって，付加機能に置き換えられることを特徴とする請求項１０に記載の方法。
【請求項１２】
駆動シーケンスを制御するための機能を刺激する装置であって，その場合に機能は，制御するための少なくとも１つのプログラムの少なくとも１つのグローバル変数を利用する，前記装置において，
第１の刺激手段が設けられており，前記第１の刺激手段は少なくとも１つの刺激機能が能動化されるように構成されており，かつコントロール手段が設けられており，前記コントロール手段は少なくとも１つのソフトウェアフリーカットを発生させるように構成されており，その場合に刺激機能がソフトウェアフリーカットを介して少なくとも１つのグローバル変数にアクセスすることを特徴とする，駆動シーケンスを制御するための機能を刺激する装置。
【請求項１３】
駆動シーケンスを制御するための機能を刺激する装置を有する制御装置であって，その場合に機能は制御するための少なくとも１つのプログラムの少なくとも１つのグローバル変数を利用する，前記制御装置において，
第１の刺激手段が設けられており，前記刺激手段は，少なくとも１つの刺激機能が能動化されるように構成されており，かつコントロール手段が設けられており，前記コントロール手段は，少なくとも１つのソフトウェアフリーカットを発生させるように構成されており，その場合に刺激機能がソフトウェアフリーカットを介して少なくとも１つのグローバル変数にアクセスすることを特徴とする制御装置。
【請求項１４】
プログラムがコンピュータ上で実施される場合に，請求項１から１１のいずれか１項に記載の方法を実施するために，機械読取り可能な担体上に記憶されている，プログラムコードを有するコンピュータプログラム製品。
【請求項１５】
プログラムがコンピュータ内で実施される場合に，請求項１から１１のいずれか１項に記載のすべてのステップを実施するための，プログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，独立請求項の上位概念に記載された，特に車両における，駆動シーケンスを制御するための機能を刺激する方法および装置に基づいている。同様に，本発明は，請求項の上位概念に記載された，機能刺激のための然るべき制御装置と然るべきコンピュータおよびそれに関連するコンピュータプログラムと対応するコンピュータプログラム製品に基づいている。
【背景技術】
【０００２】
特に，エンジン，ブレーキ，トランスミッションなどの制御のための車両制御装置における，制御装置ソフトウェアの機能開発において，新しい制御装置機能を開発してテストするための，バイパスアプリケーションが，ラピッドプロトタイピング方法である。しかし，この種の機能開発は，たとえば自動化領域と工作機械領域などにおけるような，他のすべての制御装置アプリケーションにおいても，可能である。
【０００３】
そのための開発方法として，たとえばＤＥ１０１０６５０４Ａ１に示されているような，外部の制御装置バイパスと，たとえばＤＥ１０２２８６１０Ａ１に開示されているような，内部の制御装置バイパスの２つのアプリケーションが使用される。
【０００４】
その場合にＤＥ１０１０６５０４Ａ１は，特に自動車の，開ループ制御または閉ループ制御装置の開ループ制御および／または閉ループ制御機能をエミュレートするための方法とエミュレーション装置に関する。エミュレートするために，機能が外部の機能計算機へ移され，その場合にエミュレーションの開始前にエミュレーション計算機のソフトウェアインターフェイスおよび開ループ制御／閉ループ制御装置のソフトウェアインターフェイスを介して，データ接続が形成される。開ループ制御／閉ループ制御装置の新しい開ループ制御／閉ループ制御機能の開発とプログラミングを著しく促進するために，エミュレーションの開始前に様々な開ループ制御／閉ループ制御機能をエミュレートするためのソフトウェアインターフェイスが，ソフトウェアの変更なしで構成されることが提案される。
【０００５】
ＤＥ１０２２８６１０Ａ１は，少なくとも１つのバイパス機能を用いて制御プログラムを検査するための方法と装置を示しており，同方法において制御プログラムは少なくとも１つのバイパス機能と共に電気的な計算ユニット上で実施される。その場合にバイパス機能の結合は，予め定められたインターフェイスへの動的なリンクによって行われる。
【０００６】
これら２つの挙げられた方法および装置とは関係なく，適用可能性のためには，制御装置ソフトウェア内の介入が必要である。この介入は，バイパスフリーカットまたはソフトウェアフリーカット（SoftwareFreischnitt）という概念で示される。バイパスフリーカットまたはソフトウェアフリーカットは，ソフトウェア機能内で，制御装置変数がソフトウェアプログラムによってではなく，迂回路を介して，たとえばバイパスソフトウェア機能を介して記述される箇所を，正確に記述する。ソフトウェアフリーカットは，極めて個別的であって，ノーマルな場合においては制御装置ソフトウェアプログラムの構成部分とはならない。というのはそのためにメモリリソースが消費されるからである。
【０００７】
機能開発者がソフトウェアフリーカットを有する制御装置プログラムを必要とする場合には，これは開発部門の委任に基づいて初めてプログラムスタンドへ組み込まれる。そのためにソフトウェア開発は手動で該当する機能のソースコードを変更して，コンパイルおよびリンクを通して，明確にプロトタイプアプリのために使用される，新しい制御装置プログラムを形成する。
【０００８】
従来技術に記載されているような方法または装置の欠点は，ラピッドプロトタイピングプログラムスタンドを提供できるまでの長いランスルー時間にある。その場合に主要なファクターは，それと結びついた，ソフトウェア介入を明細化して変換するための，高い技術的および管理的な手間である。
【０００９】
現在の技術状態によれば，比較し得る方法は，ストア命令（制御装置変数への書込みアクセス）のみをサブ機能へのジャンプ命令によって置き換える，という考えに基づいている。しかし，ミックスされた命令セット（１６−／３２ビットＣＰＵ命令）を有するマイクロコントローラにおいては，ストア命令は１６ビット幅である可能性がある。というのはアドレッシングはアドレスレジスタを介して間接的に行われるからである。この１６ビット幅の命令は，サブ機能の呼出しのためには利用できない。というのはサブ機能の直接的なアドレス指定された呼出しは，３２ビット幅のジャンプ命令を必要とするからである。従ってその場合には，従来技術における方法は，制限付きでしか使用できず，純粋な３２ビット命令セットを有するマイクロプロセッサにおいてのみ適用できる。すなわち，ストア命令のビット幅が固定されている場合には，機能開発に関するフレキシビリティは，ここでは著しく制限される。これは，所定のストア命令が他の理由からそもそも操作してはならない場合にも当てはまるので，その場合にはサブ機能へのジャンプ命令によるこの種の占有は，不可能である。
【００１０】
すでに説明した，制御装置ソフトウェアの機能開発において，ソフトウェア機能のテストはラボオート（Labor-Autos）（測定場所）において，あるいはそれに応じたソフトウェアテスト環境（モジュールテスト）を介して実施される。ラボオートでのテストでは，制御装置入力が外部から電気的な信号によって刺激され，それによって制御装置とソフトウェアの然るべき反応が観察され，かつ測定される。モジュールテストのために提供可能なソフトウェアテスト環境においては，システム全体へのフィードバックまたはクロス結合を考慮せずに，調査すべきソフトウェア機能のみが，テスト環境内部のスタンドアローン駆動において観察される。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の課題は，ソフトウェアプログラムの内部に組み込まれた状態でソフトウェア機能をランタイムにおいて刺激してテストし，それによって従来技術における上述した欠点を克服することである。
【発明の利点】
【００１２】
本発明は，駆動シーケンスを制御するための機能を刺激する装置および方法に基づいており，その場合に機能は制御するための少なくとも１つのプログラムの少なくとも１つのグローバル変数を利用し，その場合に好ましくは少なくとも１つの刺激機能が設けられており，その刺激機能は少なくとも１つのソフトウェアフリーカットを介して少なくとも１つのグローバル変数にアクセスする。
【００１３】
その場合に好ましくは，機能の刺激はプログラムの内部でプログラムのラン時間に，特にランタイムシステム内部の実時間で，行われる。
【００１４】
その場合に，グローバル変数に第１のデータ情報が対応づけられており，かつこの第１のデータ情報が，刺激値に相当する，第２のデータ情報によって置き換えられると，効果的である。
【００１５】
好ましくは，本発明の枠内において，機能の刺激が内部のバイパスによって行われ，その場合にソフトウェアフリーカットは，グローバル変数にアドレス情報が対応づけられていることによって行われ，その場合にアドレス情報はロード命令によってメモリ手段からロードされ，ロード命令のグローバル変数の情報が置き換えられる。
【００１６】
その場合に好ましくは，グローバル変数のアドレス情報は，ポインタ変数のアドレス情報によって置き換えられ，その場合にアドレス情報から機能の開始アドレスが求められ，駆動シーケンスを制御するための機能はアドレス情報の置換えによって，付加情報と置き換えられる。
【００１７】
好ましくはソフトウェアフリーカットは，グローバル変数がストア命令によってアドレスされて，ストア命令がジャンプ命令によって置き換えられ，駆動シーケンスを制御するための機能がストア命令をジャンプ命令によって置き換えることにより，付加機能と置き換えられることによって，グローバル変数へのストア命令が操作されることによっても行うことができる。
【００１８】
従って本発明においては，ソースコード変更なしでソフトウェアフリーカットの「動的懸下」（Dynamic Hooks）が効果的に使用される。そのために記述された方法が，ロード命令のアドレス情報を変更し，機能呼出しを変更して，新しいプログラムコードを付加する。この変更は，既存のソフトウェアプログラムスタンドにおいて，たとえば所望のＨＥＸコード修正に基づいて，実施される。
【００１９】
さらに好ましくは，グローバル変数のアドレス情報がポインタ変数のアドレス情報によって置き換えられ，その場合にポインタ変数のアドレス情報は，特に制御装置内のメモリ手段の，予約されたメモリ領域内に存在する。
【００２０】
ロード命令に関する修正に加えて，好ましくはある形態において，ストア命令がジャンプ命令によって置き換えられることにより，グローバル変数へのストア命令が操作される。その場合に好ましくは，駆動シーケンスを制御するための機能はストア命令をジャンプ命令によって置き換えることによって，付加機能に置き換えられ，かつ／または拡張される。
【００２１】
上述した装置および方法と同様に，本発明によってこの種の装置を含む制御装置が同様に開示され，かつこの種の方法を実施するのに適したコンピュータプログラムと同様に，本発明の対象である。このコンピュータプログラムは，そのために，コンピュータ，特に本発明に基づくアプリケーション制御装置配置あるいはまたアプリケーションＰＣ上で実施される。その場合に本発明に基づくコンピュータプログラムは，任意の機械読取り可能な担体上に格納することができる。この種のコンピュータ読取り可能なデータ担体または機械読取り可能な担体は，特にディスケット，ＣＤ−ＲＯＭ，ＤＶＤ，メモリスティックまたはそれぞれ他のメモリ媒体とすることができる。同様に，格納するために，ＲＯＭ，ＰＲＯＭ，ＥＰＲＯＭ，ＥＥＰＲＯＭまたはフラッシュメモリと揮発ＲＡＭメモリなどのようなメモリ媒体も可能である。従ってメモリ媒体ないし機械読取り可能な担体の選択は，本発明の対象としてのコンピュータプログラム製品に関して限定的であるとは見なされない。
【００２２】
本発明によって，種々のラピッドプロトタイピング方法，ソフトウェアテスト方法およびデータ校正方法をより迅速に使用できるようにし，かつよりフレキシブルに取り扱えるようにすることができる。従ってソフトウェアフリーカットの実施は，ソフトウェア開発容量の締付けなしで行われる。従って全体としてより小さい技術的かつ管理的な手間と，それに伴ってコストの削減が得られる。同時に，たとえば１６／３２ビット幅ＣＰＵ命令の，ミックスされた命令セットを有するマイクロプロセッサタイプを支援することができる。
【００２３】
テストシーケンスを能動化する場合に，調査すべき制御装置機能が，好ましい方法でランタイムシステムの内部に統合されたテストソフトウェアによって刺激される。
【００２４】
本発明に基づく対象の利点は，制御装置機能を刺激するために，外部から制御装置に電気信号を印加する必要がないことにもある。他の利点は，刺激された制御装置機能の計算された出力値が，実時間システムへ直接また提供されることである。従ってたとえば，制御装置内部の複雑な制御アルゴリズムをより正確に調査し，テストして，場合によってはさらに開発することができる。
【００２５】
他の利点および好ましい形態は，明細書および請求項の特徴から明らかにされる。
【００２６】
以下，図面に示す対象を用いて，本発明を詳細に説明する。
【実施例の説明】
【００２７】
図１は，接続１０２を介してインターフェイス１０３および１０４と結合されている，制御装置１００およびアプリケーションシステム１０１を有するアプリケーション配置を概略的に示している。その場合にこの接続１０２は，配線でも，ワイヤレスでも形成することができる。符号１０５は，特にミックスされた命令セットを有する，マイクロプロセッサを示している。符号１０６はメモリ手段を示しており，そのメモリ手段はアドレスレジスタ１０８，データレジスタ１０７および機能に関して適合させるべき少なくとも１つのプログラムのためのメモリ領域を有している。その場合に本発明を実現するためのコントロール手段は，アプリケーションシステム内に含めることができ，またはこのアプリケーションシステムによって表すことができ，あるいはまたマイクロプロセッサ自体を利用して形成することができる。同様に，本発明を実現するためのメモリ手段を，制御装置の外部において，特にアプリケーションシステム内に収容することもできる。図示の装置によって，本発明に基づく対象が実現可能である。
【００２８】
機能の適合は，外部のバイパスによっても行うことはできるが，好ましい形態では，適合は内部で，適合がプログラムランに組み込まれて，それによってソースコード変更なしでソフトウェア介入の動的な懸下（ダイナミックフック）が行われるようにして，行われる。
【００２９】
ここで説明する対象は，ロード命令のアドレス情報を変更し，ストア命令の内容を変更し，機能呼出しのアドレス情報を変更して，新しいプログラムコードを付け加える。これらの変更は，ここでは実施例において，所望の１６進コード修正に基づいて既存のソフトウェアプログラムスタンドで実施される。
【００３０】
本発明に基づく対象，後述する「動的ソフトウェアフリーカット」に関する種々の構成部分は，以下のごとくである。
・プログラム箇所を求める
・プログラム箇所の修正であって，ロード／ストア命令の修正と機能呼出しの修正を有する
・付加的なプログラムコードの形成
・ソフトウェアフリーカットコードの挿入
・メモリ領域のセグメント化
・プログラムコードを形成するための開発プロセス
・内部のバイパス
・機能の刺激によるソフトウェアテスト
【００３１】
以下に示す方法は，その命令セットがミックスされており，特に１６−／３２ビット幅ＣＰＵ命令を有する，マイクロコントローラの使用に基づいている。模範的な例として，ここではInfineonのマイクロコントローラＴｒｉＣｏｒｅＴＣ１７ｘｘ(ＲＩＳＣ／ＤＰＳ／ＣＰＵ)が用いられる。そのマイクロコントローラは，特に車両における，駆動シーケンスを制御するため，たとえばエンジン制御またはステアリング，トランスミッション，ブレーキなどを制御するためのの制御装置の構成部分である。
【００３２】
しかし，本方法は，ミックスされていない命令セットを有するマイクロプロセッサにおいても，特に純粋な３２ビットマイクロプロセッサ（ＲＩＳＣ-プロセッサ，たとえばパワーＰＣ／ＭＰＣ５ｘｘ）においても，適用することができる。
【００３３】
原則的に，本方法においては，コンパイラのコードジェネレータは機械命令をシーケンシャルに配置するものと仮定される。ということは，アドレス情報，たとえば間接的にアドレスされた制御装置変数を，該当するアドレスレジスタへロードするための連続する命令配置である。それとは異なり，変数が直接アドレスされる場合には，アドレス情報は命令自体の中にある。この実情は，ほとんどのコンパイラにおいて与えられている。
【００３４】
プログラム箇所を求める（図２）
そのための出発点は，たとえば１６進コードデータファイルの形式で提供される，制御装置ソフトウェアプログラムである。他のデータファイルとして，データ記述データファイル（たとえばＡＳＡＰ）と，制御装置変数および制御装置機能に関する情報を提供する，リンカーデータファイル（たとえばＥＬＦバイナリ）が用いられる。
【００３５】
逆アセンブラ（たとえばウィンドウズ（登録商標）ソフトウェアプログラム）によって，１６進コードデータファイルが逆アセンブルされる。フリーカットすべき制御装置変数の該当するアドレスは，データ記述データファイルから，あるいは本方法のために形成されたリファレンスデータバンクから得られる。
【００３６】
本発明に基づいて形成された逆アセンブラプログラム，たとえばウィンドウズ（登録商標）ソフトウェアプログラムは，逆アセンブルされたプログラムコード内で，探し求める制御装置変数のアドレス情報の助けをかりて，これらの変数への該当するアクセス命令を探し求め（ロード／ストア命令），それが変数内容に作用する。
【００３７】
ウィンドウズ（登録商標）ソフトウェアプログラムとしての，この逆アセンブラプログラムは，各アセンブラ命令に従ってレジスタ内容を調べる，シミュレーションプログラムである。ストア命令が位置特定されて，ロードされたアドレスレジスタの内容が探し求める制御装置変数のアドレス値に相当し，あるいはストア命令のメモリ目標が変数アドレスに相当する場合に，検出位置が存在し，その検出位置において制御装置変数の内容が変更される。
【００３８】
検出位置においてプログラムコードがどのように変更されるか，という方法は，制御装置変数のそれぞれのアドレッシング種類に依存する。
【００３９】
これが，図２に示されている。その中で，符号２０１は，制御装置プログラムコードを示している。２０２は，ソフトウェア機能を示している。矢印２０３は，上述した，ストア命令を求めるための方法を象徴している。符号２０４は，変数アクセスのストア命令を，特に直接アドレスする場合に，ストア命令のメモリ目標がＲＡＭアドレスであって，間接的にアドレスする場合にはアドレスレジスタの内容がＲＡＭアドレスに相当するように，示しており，それによってロード命令を求めることができる。符号２０５で示す矢印は，ロード命令を求めるための，上述した方法を象徴している。特にグローバルな変数の，変数アドレスをロードするためのロード命令は，符号２０６で示されている。
【００４０】
プログラム箇所の修正（図３から８）
その場合に，一方では，様々なアドレッシング種類に従って，ロード命令検出位置および／またはストア命令検出位置が位置特定される。その後この検出位置のために，その中に検出位置がある，制御装置機能が求められる。それによって，プログラムコード全体の中で，すべての機能呼出しを，新たに形成されたフック機能の機能呼出しによって行うことができる。そのため，制御装置機能の元の機能呼出しは，それに応じたフック機能の内部で行うことができる。
【００４１】
ロード／ストア命令の修正
上述したマイクロコントローラにおいて，多数の異なるアドレッシング種類が様々な仕様で与えられている。この多様性を最小限に減少させることができる。
【００４２】
以下，４つの方法が示され，それらの方法はグローバル変数への書込みアクセスのほとんどの可能な組合わせをカバーしている。コード分析するための，たとえば前もって占有されたアドレスレジスタを介しての相対アドレッシングのような，他の方法も考えられる。
【００４３】
それについて，図３には，ロードおよび／またはストア命令を修正する様々な方法の一覧が与えられている。その中で，ストア命令ｓｔ．ｘは，次のことを意味している：ｓｔ．ｂ＝ｓｔｏｒｅ  ｂｙｔｅ，ｓｔ．ｈ＝ｓｔｏｒｅ  ｈａｌｆｗｏｒｄ，そしてｓｔ．ｗ＝ｓｔｏｒｅ  ｗｏｒｄ。図３に記載されている４つの方法を，以下で詳細に説明する。
【００４４】
方法１に基づくプログラム箇所の修正は，図４に詳細に示されている。方法１は，たとえば１６ビットのストア命令と間接的なアドレッシングである。発見されたストア命令の位置に基づいて，逆アセンブルされたプログラムコード内で，付属のロード命令が求められるまで，プログラム中の箇所が遡ってたどられる。この方法にとって，発見されたロード命令が重要である。この方法は，ミックスされた命令セットにおける問題において使用されるだけでなく，他の理由からジャンプ命令によるストア命令の置換えが不可能である場合にも，使用される。
【００４５】
方法１においては，求められたロード命令は，ポインタ変数のアドレス情報に置き換えられることによって後続のストア命令に関連付けられる。このポインタ変数は，開発環境，特にＤフック開発環境を介して発生する。ポインタ変数のアドレスは，メモリ手段の，変数のために予約された自由領域内にある。修正されたロード命令は，オリジナル命令と同じアドレスレジスタをアドレスする。変更されたロード命令の違いは，アドレスレジスタのアドレッシング種類とアドレス情報内にある。
【００４６】
すなわち，図４では方法１が原理表示で説明されている。符号４０１は元のプログラムコードを示し，符号４１１は修正されたプログラムコードを示している。４０２と４０６および４１７と４０７は，制御装置機能，ここではｆｕｎｃｔｉｏｎ＿ａ（）を形成する。その場合に４０２内，または４１７内には，命令または命令シーケンスが示されており，４０６または４０７内には本来の機能性が示されている。符号％ａｘｘは，アドレスレジスタへのアクセス（たとえば１６ビット幅においてはａ０からａ１５まで）を示し，％ｄｘｘはデータレジスタへのアクセス（たとえば１６ビット幅においてｄ０からｄ１５）を示している。さらに命令ｍｏｖｈ．ａとｌｄ．ａ（ロード命令）およびｓｔ．ｘ（ストア命令）が４０８，４０９，４１０，４１３，４１４および４１５内に見られる。ｍｏｖｈ．ａとｌｄ．ａは，この例では３２ビット命令（４１２と４０３を参照）として示されている。ストア命令ｓｔ．ｘは，１６ビット命令（４０５を参照）として示されており，従ってこの例においては３２ビットジャンプ命令によって置き換えられない。すでに説明したように，これは，この種の置換えが不可能であり，あるいは望ましくない，他のすべての場合についても当てはまる。新しい本発明に基づく命令コードまたはプログラムコード４０３は，４１２へインポートされ，ロード命令はポインタ変数ｉＢ＿ＰｔｒＭｓｇ＿ｘｘｘ（Ｐｔｒ＝Ｐｏｉｎｔｅｒ）に変更される。制御装置変数のアドレスは，４０４に示すポインタ変数のアドレスによって置き換えられる。付加的なプログラムコードまたは付加機能を形成する方法は，後に４つの方法に従って詳細に説明する。
【００４７】
方法２に基づくプログラム箇所の修正は，図５に詳細に示されている。その場合に残りすべての方法例についてと同様に，方法１についてと同じ名称および略語が当てはまる。符号５０１は元のプログラムコードを示し，符号５１１は修正されたプログラムコードを示している。５０２と５０６および５１７と５０７は，制御装置機能，ここではｆｕｎｃｔｉｏｎ＿ａ（）を形成する。５０２または５１７内に命令または命令シーケンスが示されており，５０６または５０７内には本来の機能性が示されている。％ａｘｘは，アドレスレジスタへのアクセス（たとえば１６ビット幅においてはａ０からａ１５）を表し，％ｄｘｘはデータレジスタへのアクセス（１６ビット幅においてはｄ０からｄ１５）を表す。さらに，ここでも命令ｍｏｖｈ．ａとｌｄ．ａ（ロード命令）とｓｔ．ｘ（ストア命令）が見られる。ストア命令ｓｔ．ｘは，３２ビット命令（５０５を参照）として示されており，従ってこの例においては３２ビットジャンプ命令ｊｌａによって置き換えることができる。新しい本発明に基づく命令コードないしプログラムコード５０３（ｊｌａ：ジャンプ命令）が，５０５にインポートされる。
【００４８】
方法２は，間接的なアドレッシングと組み合わされた，３２ビットストア命令である。３２ビットストア命令は，ソフトウェアバルコニー機能（ｂａｌｃｏｎｙ＿Ｍ２）への絶対的なジャンプ命令ｊｌａ５１２によって置き換えられる（５２０ソフトウェアバルコニー機能の呼出しを参照）。ｊｌａジャンプ命令において，アドレスレジスタａ１１内にリターンジャンプアドレスが格納される（５２１内を参照）。
【００４９】
上述したソフトウェアバルコニー機能５２１内で，アドレスレジスタ％ａｘｘ（これを介して制御装置変数がアドレスされる）の内容が，ポインタ変数のアドレス値（ｉＢ＿ＰｔｒＭｓｇ＿ｘｘｘ）によって置き換えられる。アドレスレジスタ％ａｘｘとその前にロードされたデータレジスタ％ｄｘｘの内容は，ソフトウェアバルコニー機能５２１内では同一である。
【００５０】
ソフトウェアフリーカットのために３２ビット幅のストア命令が利用される場合には，そのために付加的なプログラムコードが必要とされる。このプログラムコードは，Ｄフック開発環境内で形成されて，バルコニー機能と称される。バルコニー機能は，付加的な初期化，コピーおよびフリーカットの機構を内容とし，フリーカット機能性を拡張するためのソフトウェア機能として用いられる。バルコニー機能は，フリーカット方法２，３および４のために使用される。
【００５１】
ジャンプ命令ｊｌａによって，使用されるデータレジスタ％ｄｘｘの内容は不変である。ソフトウェアバルコニー機能内で，ポインタを介してのアドレッシングとそれに伴ってポインタ変数へのストア命令の方向変換が行われる。ストア命令ｓｔ．ｘは，オリジナルコードにおけるようなデータを記述する。
【００５２】
次に，アドレスレジスタａ１１内に記憶されている，間接的なジャンプに関するリターンジャンプアドレスを介して，５２２に示す制御装置機能へリターンジャンプされる。
【００５３】
方法３に基づくプログラム箇所の修正が，図６に詳細に示されている。その場合にすべての残りの方法例の場合と，ここでは特に，方法２の場合と同じ名称および略称が有効である。６０１は，元のプログラムコード，６１１は修正されたプログラムコードを示している。６０２と６０６および６１７と６０７が，制御装置機能，ここではｆｕｎｃｔｉｏｎ＿ａ（）を形成する。その場合に６０２内，または６１７内に命令または命令シーケンスが示されており，６０６または６０７内に，本来の機能性が示されている。その場合に特殊なｓｔ．ｘ（ストア命令），すなわちｓｔ．ｔが見られる。ストア命令ｓｔ．ｔは，３２ビット命令（６０５を参照）として示されており，従ってこの例においては３２ビット機能呼出しｃａｌｌ（ｃａｌｌ  ｂａｌｃｏｎｙ＿Ｍ３）によって置換え可能である。新しい本発明に基づく命令コードまたはプログラムコード６０３（ｃａｌｌ：機能呼出し）が，６０５へインポートされる。
【００５４】
方法３は，直接的なアドレッシング６１８（アドレス６１０を有するストア命令）と組み合わされた，３２ビットストア命令ｓｔ．ｔである。３２ビットストア命令は，ソフトウェアバルコニー機能（ｂａｌｃｏｎｙ＿Ｍ３，６２１）の３２ビット機能呼出し（ｃａｌｌ  ｂａｌｃｏｎｙ＿Ｍ３，６０３）によって置き換えられる（６０４を参照）。ソフトウェアバルコニー機能６２１は，フリーカットの照会とオリジナル状態におけるストア命令を内容としている。フリーカットがアクティブである場合には，ストア命令は実施されない。従って変数は，制御装置機能から切り離される。そのために６１２からバルコニー機能６２１の呼出し６２０が行われる。その後制御装置変数のアドレス（ａｄｒ．ｏｆ  ｅｃｕ  Ｖａｒｉａｂｌｅ）を介して制御装置機能へのリターンジャンプ６２２が行われる。
【００５５】
方法４に基づくプログラム箇所の修正が，図７に詳細に示されている。その場合に残りのすべての方法例の場合，ここでは特に方法２の場合と，同一の名称および略称が有効である。その場合に符号７０１は，元のプログラムコードを示し，符号７１１は修正されたプログラムコードを示している。７０２と７０６および７１７と７０７が，制御装置機能，ここではｆｕｎｃｔｉｏｎ＿ａ（）を形成する。その場合に７０２内，または７１７内に命令または命令シーケンスが示され，７０６または７０７内には，本来の機能性が示されている。％ａｘｘは，アドレスレジスタへのアクセスを示し，％ｄｘｘないし％ｄｙｙはデータレジスタへのアクセスを示している。さらに，前の方法に記載されていたような，命令ｍｏｖ，ｓｔ．ｘ（ストア命令）ｃａｌｌとｊｌａが，見られる。ストア命令ｓｔ．ｘは，３２ビット命令（７０５を参照）として示されており，従ってこの例において３２ビットジャンプ命令ｊｌａによって置き換えることができる。新しい本発明に基づく命令コードないしプログラムコード７０３（ｊｌａ：ジャンプ命令）が，７０５へインポートされる。
【００５６】
方法４は，直接的なアドレッシング（７１８）と結びついた３２ビット命令ｓｔ．ｘ（７１０）である。３２ビットストア命令は，３２ビットジャンプ命令ｊｌａ（Ｊｌａ  ｂａｌｃｏｎｙ＿Ｍ４＿ａ）によって置き換えられる。ジャンプ命令は，ソフトウェアバルコニー機能１（ｂａｌｃｏｎｙ＿Ｍ４＿ａ（），７２１）を指しており，それが７２０によって呼び出される。ソフトウェアバルコニー機能７２１において，その前にロードされたデータレジスタ％ｄｘｘの内容が，テンポラリーＤフック変数（ｉＢ＿ＴｅｍｐＭｓｇ＿ｘｘｘ）へ一時記憶される。７２１から，機能呼出しｃａｌｌによって，７２３で他のバルコニー機能（ｂａｌｃｏｎｙ＿Ｍ４＿ｂ（），７２４）が呼び出される。この第２のソフトウェアバルコニー機能２は，方法３におけるのと同様に，本来のフリーカットを内容としている。ソフトウェアバルコニー機能７２４は，フリーカットの照会を内容としている。フリーカットが非アクティブにされている場合には，テンポラリー変数ｉＢ＿ＴｅｍｐＭｓｇ＿ｘｘｘが，制御装置変数へ書き戻される（７２５を参照）。フリーカットがアクティブである場合には，書き戻しは行われない。従って制御装置変数は，制御装置機能から分離される。その場合に７２２を介して制御装置機能へのリターンジャンプが行われる。
【００５７】
機能呼出しの修正（図８）
位置特定されたロード／ストア検出位置のために，その中に検出位置のある，制御装置機能が求められる。これは，本方法によって開発されたウィンドウズ（登録商標）ソフトウェアプログラムによって行われ，それはロード／ストア命令の位置に基づいて，かつリファレンス情報の助けを借りて，制御装置機能の該当する開始アドレスと終了アドレスを求める。
【００５８】
次に，全プログラムコード内で，制御装置機能のすべての機能呼出しが，新しく形成されたフック機能の機能呼出しによって置き換えられる。
【００５９】
制御装置機能の元の機能呼出しは，該当するフック機能の内部で行われる。
【００６０】
図８においては，見やすくする理由から，この修正表示が比較できるようにするために，これまでの図２，４，５，６，７におけるのと同じ表示が選択されている。符号８０１は，元の制御装置プログラムコードを示し，符号８１１はそれぞれ修正されたプログラムコードを示してる。その場合に課題リストｔａｓｋ＿ｌｉｓｔと，それに応じた付加機能またはサブ機能ｓｕｂｆｕｎｃｔｉｏｎ＿ｘ（）が使用される。簡単にするために，もはや命令シーケンスと本来の機能性との間ははっきりと区別されていない（それについて図３から７を参照）。符号８０４は，機能アドレスと機能呼出しを求めるための，図２と同様のプロセスを示している。８０５に示すように，ｆｕｎｃｔｉｏｎ＿ａのアドレスが，ｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ａのアドレスによって置き換えられる。同様に，８０６において，ｆｕｎｃｔｉｏｎ＿ａの機能呼出しが，ｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ａの呼出しによって置き換えられる。そして８０７において，ｆｕｎｃｔｉｏｎ＿ａの間接的な機能呼出しが，ｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ａの呼出しによって置き換えられる（ここでは３２ビット命令として）。その場合にｎＰは，それぞれ置換えによって新しく形成されたプログラムコードを示している。
【００６１】
付加的なプログラムコードを形成する方法（図９）
従って，その中にフリーカットがある，各制御装置機能のために，フック機能をあてがうことができ，あるいはこの種のフック機能があてがわれる。そのために，図９には，この種のフック機能ｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ａ（）とｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ｘ（）の概略的な表示が開示されている。符号９０１は，制御装置プログラムコードを示している。９０２は付加的なプログラムコードのためのメモリ領域を示している。９０３は，本来のフック機能を示し，その中に符号９０４で，場合によっては必要とされるポインタ変数の可能な初期化が示されている。９０５は，特にラピッドプロトタイピング方法のソフトウェアフリーカット，コンフィグレーションおよび結合のためのプログラムコードを開示している。そして符号９０６は，元の制御装置機能ｆｕｎｃｔｉｏｎ＿ａ（）の呼出しを示している。これは，第２のフック機能ｈｏｏｋ＿ｆｕｎｃｔｉｏｎ＿ｘ（）についても同様であるが，見やすくする理由から，再度示されてはいない。
【００６２】
従ってフック機能は，アプリケーションデータを介してラピッドプロトタイピング方法へのアクセスを制御する，フリーカット機構を内容としている。さらに，フック機能内で，場合によってはポインタ変数の初期化と本来の制御装置機能の機能呼出しが実施される。
【００６３】
以下，フック機能の特徴を，フリーカット方法に従って示す：
【００６４】
フリーカット方法１と２について：
ストア命令を，ポインタによってアドレスされた制御装置変数へ有意に書き込むことができるようになる前に，ポインタ変数が変数アドレスによってアドレスされなければならない。ポインタの初期化は，フック機能内で行われる。フリーカットアクセスがアクティブでない場合には，ポインタは制御装置変数のアドレスによって初期化される。フリーカットアクセスがアクティブである場合には，ポインタはテンポラリーＤフック変数のアドレスによって初期化される。ここでは，たとえば制御装置変数が間接的にアドレスされる場合には，テンポラリー変数への書込みアクセスの方向変換が行われる。
【００６５】
フリーカット方法３と４について：
２つの方法は，制御装置変数の直接的なアドレッシングである。その場合に初期化されなければならない，ポインタは使用されない。フック機能内には，ソフトウェアフリーカットを制御するための機構と元の制御装置機能の機能呼出しがある。
【００６６】
ここで，すでに説明したような，ジャンプ命令により置き換える場合のバルコニー機能を再度簡単に説明する。使用（Einsatz）は，前もって詳細に示されている。ソフトウェアフリーカットのために３２ビット幅のストア命令が利用される場合には，そのために付加的なプログラムコードが必要である。このプログラムコードは，Ｄフック開発環境内で形成されて，バルコニー機能と称される。バルコニー機能は，付加的な初期化，コピーおよびフリーカットの機構を内容とし，フリーカット機能性を拡張するためのソフトウェア機能として用いられる。バルコニー機能は，フリーカット方法２，３および４のために使用される。
【００６７】
メモリ領域のセグメンテーション（図１０）
フリーカット方法のために，制御装置ソフトウェアプログラムのメモリレイアウトＳ１内に，メモリ手段の専用のメモリ領域が必要である。図１０に示すように，本方法は，コード（Ｄフックコード）Ｓ４，データ（Ｄフックデータ）Ｓ３およびＲＡＭ（Ｄフックラム）Ｓ２のためのフリー領域を要求する。コード領域内には，フリーカット機能（付加プログラムコード）が，データ領域内にはアプリケーションの大きさが格納され，そのアプリケーションの大きさを介してフリーカット機構が制御される。本方法のために必要なポインタ変数と管理ＲＡＭ変数が，ＲＡＭ変数のためのフリー領域内に格納されている。
【００６８】
プログラムコードを形成するための開発プロセス（図１１）
ソフトウェアフリーカットコードの形成は，本方法のために形成された開発環境を介して自動的に行われ，図１１に示されている。符号８の変数選択は，予め定めることのできる判断基準に従って自動的に行うことができる。
１．１６進コードデータファイル（たとえばインテル−ＨｅｘまたはモトローラＳ１９フォーマットにおける，マシンコードを内容とする）
２．アプリケーションデータ記述データファイル（たとえば変数と特性量のアドレスと換算式）
３．ＥＬＦバイナリデータファイル（機能および変数のアドレスを有するリンカーアウトプットデータファイル）
４．マシンコードを読むことのできるアセンブラ命令へコンバートするためのプログラム
５．逆アセンブルされたプログラムコード（シミュレータ用のインプットとして用いられる）
６．プログラム情報を準備するためのコンバータ
７．リファレンスデータバンク（オープンリファレンスを解くために用いられる）
８．ユーザーが，フリーカットのための変数の選択を作成する
９．フリーカットすべき制御装置変数に関する情報
１０．プログラムコードシミュレータ（すべてのオペレーションコードをシーケンシャルに読んで，レジスタ内容を検査する）
１１．自動的に生成されたソースコード（ソフトウェアフリーカットのためのプログラムコード，付加情報および修正すべきプログラムコード箇所に関する情報）
１２．ソフトウェア開発環境（１６進コードおよびアプリケーションデータを形成するためのすべてのプロセスを制御）
１３．フリーカットを制御するためのアプリケーションデータ
１４．プログラムコード＋フリーカットコード＋パッチコード
１５．Ｈｅｘ／Ａ２１マージプロセス（ダイナミックフック成分が，オリジナルのプログラムコードと結合される）
１６．アプリケーションデータ記述データファイル（プロジェクトおよびフリーカットのアプリケーションデータを内容とする）
１７．ソフトウェアフリーカットを有するプログラムスタンド
【００６９】
ソフトウェアフリーカットコードを挿入する方法
ソフトウェアフリーカットコードの挿入は，たとえば１６進コードマージ（Hexcode-Merge-Lauf）によって実施される。このアクションにおいて，動的フリーカット方法のための開発環境の成果（１６進コード）が，元のソフトウェアプログラム（１６進コード）のフリー領域へコピーされる。本方法は，２つの別々のソフトウェア開発ランからの１６進コード情報が互いに結合される，内部の制御装置バイパスと同様に構築されている。
【００７０】
内部のバイパス（図１２）
少なくとも１つのバイパス機能を有するバイパスプログラムの結合は，制御プログラム内の予め定められたインターフェイスに動的にリンクすることによって実施される。このようにして，電子的な計算ユニット内に存在するデータへのアクセスは，制御プログラムのプログラム遂行の間に行うことができる。
【００７１】
図１２は，バイパス機能の動的なリンクを説明している。第１のブロック６０は，制御プログラムへ提供されるベクトルテーブルを表している。図１２において，ベクトルテーブル６０内に第１の欄（ベクトル）６２と第２の欄（チャネル）６４が見られる。第１の欄６２内にはレファレンスが含まれており，それを用いて，バイパス機能のどれをアクティブにするべきか，が決定される。第２の欄６４内には，それが内部のバイパスであるか，外部のバイパスであるかに関する情報がある。
【００７２】
第２のブロック６６は，アクティブにすべきバイパス機能の数を有する，機能ポインタの表を示している。
【００７３】
第３のブロック６８は，バイパスハンドラを表している。第４と第５のブロック７０と７２は，アクティブにされたバイパス機能を代表し，第６のブロック７４は制御プログラムを代表している。
【００７４】
制御プログラム７４内に，バイパス機能のための潜在的介入箇所が設けられている。これは，ドライバー層の能動化（バイパスハンドラ）によって行われる。
【００７５】
制御プログラム７４を検査する前に，アプリケーションシステムがバイパス機能をＥＣＵのメモリにロードする。さらに，アプリケーションシステムによってバイパス機能へのリファレンスが機能ポインタの表６６内へ記入される。
【００７６】
検査の間，すなわち制御プログラム７４の遂行の間に，ＥＣＵ内のバイパスハンドラ６８は，ベクトル表６０内の記入を用いて，どの介入がアクティブであるか，すなわちどのバイパス機能がアクティブにされなければならないか，そしてバイパス機能へのリファレンスがどこに格納されているか，を決定し，これが矢印７６で示されている。
【００７７】
潜在的介入箇所のためのバイパス機能がアクティブである場合には，その呼出しはリファレンス（動的リンク）を介して行われ，それが矢印７８で示されている。バイパスハンドラ６８は，２つのアクティブなバイパス機能７０と７２を実施する（矢印８０）。アクティブなバイパス機能７０と７２によって，制御プログラム７４内の所定の選択されたデータ８２へアクセスされ，それが矢印８４で示されている。
【００７８】
バイパス機能７０と７２へデータ伝送する場合に，それらバイパス機能はアドレスリファレンスを介してその入力量とパラメータ（アプリケーション値）へアクセスする。それによってバイパス機能７０と７２は，ＥＣＵ内に静的に存在しているすべてのデータ８２への読取りアクセスを有している。
【００７９】
バイパスドライバは，制御プログラムまたはユーザーソフトウェア７４のデータ伝送の場合に，刺激可能なデータフローへのリファレンスを委ねられる。このようにして，データ一貫性への要請に対応することができる。
【００８０】
バイパスの計算またはデータフローへの介入は，ベースソフトウェアにおいても値が計算される時点で行われる。このトリガー機構と上述した通信を利用することによって，バイパス機能の信号フロー内にデッドタイムが生じない。
【００８１】
機能の刺激によるソフトウェアテスト
本発明は，ダイナミックフック方法（自動的なソフトウェアフリーカット）と内部バイパス（ラピッドプロトタイピング方法）を利用して，テスト環境内でユーザーの設定に従ってテストシーケンスを生成し，制御装置ソフトウェアの内部で遂行する，ソフトウェアテスト方法である。ソフトウェアフリーカット方法であるダイナミックフックを利用して，該当する制御装置機能の入力量がフリーカットされる。テスト記述または時間的なテストシーケンスは，本方法のために形成された開発環境の内部の，方法のために開発されたプログラム記述言語内で生成される。その際に生成される，テストシーケンスを記述するソースコードが，コンパイラおよびリンクプロセスを介して，目標ハードウェア（制御装置）のための実行可能なソフトウェアプログラムに変換される。テストシーケンスコードの統合と実施は，内部バイパス方法に従って行われる。
【００８２】
ランタイムシステムの内部でソフトウェア機能を刺激（図１３）
制御装置機能を調査する場合に，ソフトウェア機能の該当する入力量（ＲＡＭ変数）がフリーカットされる。フリーカットされたＲＡＭ変数の刺激は，制御装置ソフトウェア内に統合されたテストシーケンスプログラムを介して行われる。テストシーケンスコードを呼び出すためのスケジューリングは，開発環境内で明細化される。フリーカットされたＲＡＭ変数へのアクセスは，リファレンスを介して行われる。
【００８３】
図１３には，この種の刺激が概略的に図示されている。その場合に符号９１は，該当する１つまたは複数の制御装置機能を示している。符号９２（ｉｎｐ１，ｉｎｐ２，ｉｎｐ３）は，インターフェイス変数または入力量を示しており，それらはたとえば他のソフトウェア機能または機能内で計算されて，システム内でグローバル変数として提供される。符号９３は，すでに説明した３つのソフトウェアフリーカットを示しており，それらは好ましくはアプリケーションシステム（特に図１の１０１）を介してアクティブにされる。
【００８４】
テストシーケンスソフトウェアまたは刺激機能９４から，刺激値９５（ｉｍｐ１ｓ，ｉｎｐ２ｓ，ｉｎｐ３ｓ）またはそのデータ情報が，インターフェイス変数または入力量９２のためのフリーカットの枠内で置換えとして提供されて，フリーカットがアクティブにされる場合に挿入される。
【００８５】
そして符号９６は，制御装置ソフトウェア自体を示している。
【００８６】
テストシーケンスソフトウェアを生成する方法（図１４）
本方法のために開発されたテスト記述言語内で，テストシーケンスが明細化される。このテストシーケンス内で，制御装置機能の入力量が定められた状態にされる。刺激ビットパターン値，ランプまたはカーブ推移の種々の組合わせを，明細化することができる。時間行動は，記述言語の内部でそれに応じたソフトウェア機能によって制御される。この種のテストシーケンス記述の例が，図１４に示されている。
【００８７】
図１５は，発明の対象について開発プロセスを示している：
符号Ｅ１は，ここでも制御装置ソフトウェアを示している。Ｅ２内には，テスト機能とインターフェイス変数に関する情報が示されている。すなわちこの中にテスト範囲，従ってテストすべき，または刺激すべきソフトウェア機能または機能のインターフェイス情報も示されている。Ｅ３は，フリーカット選択，従ってフリーカット変数の選択とそれに伴ってフリーカットのソフトウェア範囲を示している。Ｅ４内には，上述したようなダイナミックフック方法が位置づけられている。Ｅ５内には，テストすべき，または刺激すべきソフトウェア機能の，フリーカットされた入力量を有するプログラムスタンド，従ってソフトウェアフリーカットを有する制御装置プログラムが収容されている。
【００８８】
その後，Ｅ６内で，テストシーケンススクリプトの生成または処理，従ってスクリプト言語によるテストシーケンスのためのテスト記述が行われる。Ｅ７内では，コンバータまたはコードジェネレータによって，テストスクリプトから翻訳可能なコード，特にＣ−コードが生成される。生成されたこのコード，従ってテストシーケンスプログラムコードが，Ｅ８内に示されている。Ｅ９内には，シーケンス制御のためのライブラリー（ＬＩＢ）内にライブラリー機能が示されている。
【００８９】
次に，Ｅ１０は，プログラムコード生成のためのソフトウェアテスト開発環境，従って１６進コードとアプリケーションデータを示している。Ｅ１０内には，同様にコンパイラ／リンカーツールセットが収容されており，それによって最終的にＥ１０において制御装置内のテストシーケンスのためのソフトウェアが生成される。その場合にＥ１１，テストシーケンスと変数アクセスを制御するためのアプリケーションデータ（Ａ２Ｌ）とＥ１２，プログラムコードとテストシーケンスコード，従って本来のテストシーケンスソフトウェア（ＨＥＸ）との間で区別が行われる。
【００９０】
Ｅ１３において，統合されたソフトウェアフリーカットおよびテストシーケンスコードを有するプロジェクトソフトウェアを形成するために，統合，マージプロセス（Ａ２Ｌ−ＨＥＸ−マージプロセス）が，行われる。
【００９１】
そこから最終的に，統合されたソフトウェアシーケンスを有する制御装置プログラムが生じる。その中には，Ｅ１４によって，テストシーケンス制御のためのプロジェクトないしフリーカットデータとアプリケーションデータとを有するアプリケーション記述データファイルが含まれている。同様にＥ１５によって，ソフトウェアフリーカットとテストシーケンスコードとを有する出来上ったプログラムスタンドが含まれている。
【００９２】
従って本発明によれば，統合されたソフトウェアテスト方法とそれに応じた装置によって，特に車両における駆動シーケンスを制御するためのソフトウェア機能または機能を，制御装置システムの内部でランタイムにその入力量を該当するソフトウェア介入またはソフトウェアフリーカットを介して刺激することによって，種々の駆動点の元でテストすることが可能である。
【図面の簡単な説明】
【００９３】
【図１】機能を適合させるための，本発明に基づく配置または装置を示している。
【図２】プログラム内のフリーカット箇所またはソフトウェアフリーカットを求めるためのシーケンスを開示している。
【図３】ロードおよび／またはストア命令を修正するための種々の方法の概観と選択を示している。
【図４】ロード命令の第１の好ましい修正方法をプログラム表示で示している。
【図５】ストア命令の第２の修正方法をプログラム表示で開示している。
【図６】ストア命令の第３の修正方法をプログラム表示で開示している。
【図７】ストア命令の第４の修正方法をプログラム表示で開示している。
【図８】駆動シーケンスを制御するための機能の呼出しを適合させるための原理を示している。
【図９】付加機能を挿入するためのフック機能を示している。
【図１０】フック機能に関するメモリ手段内のメモリセグメントを概略的に示している。
【図１１】本発明に基づく完全な開発プロセスを詳細に示している。
【図１２】内部のバイパス，特に動的リンクのプロセスを示している。
【図１３】機能を刺激するための原理を開示している。
【図１４】テスト遂行ソフトウェアを形成するための遂行プランを示している。
【図１５】本発明に基づく開発プロセスを示している。
【図１】
2007510205.tif 000003
【図２】
2007510205.tif 000004
【図３】
2007510205.tif 000005
【図４】
2007510205.tif 000006
【図５】
2007510205.tif 000007
【図６】
2007510205.tif 000008
【図７】
2007510205.tif 000009
【図８】
2007510205.tif 000010
【図９】
2007510205.tif 000011
【図１０】
2007510205.tif 000012
【図１１】
2007510205.tif 000013
【図１２】
2007510205.tif 000014
【図１３】
2007510205.tif 000015
【図１４】
2007510205.tif 000016
【図１５】
2007510205.tif 000017
【国際調査報告】
2007510205.tif 000018
2007510205.tif 000019
2007510205.tif 000020
2007510205.tif 000021
2007510205.tif 000022
2007510205.tif 000023