サポートされている C/C++ S-Function、外部 C/C++ コードを呼び出す MATLAB Function ブロック、C/C++ コードをもつ C Caller ブロック、またはシミュレーション用のカスタム C/C++ コードを実装する Stateflow® チャートを含むモデルのカバレッジを記録する場合、C/C++ S-Function、MATLAB Function ブロック、または Stateflow チャート内の C/C++ コードのカバレッジが記録されます。カスタム コードのカバレッジ結果は、モデルの他の部分と同じレポート上で参照できます。レポート内の各 S-Function ブロック、各 MATLAB Function ブロック、または各 Stateflow チャートは、ブロック内の C/C++ コードの詳細なカバレッジ レポートにリンクされます。
Simulink® モデル内のカスタム C/C++ コードのコード カバレッジを有効にするには、次を行います。
[コンフィギュレーション パラメーター] の [シミュレーション ターゲット] ペインで、[カスタム コードのインポート] を選択します。
[コンフィギュレーション パラメーター] の [シミュレーション ターゲット] ペインで、[カスタム コード解析を有効にする] を選択します。
Simulink Coverage™ は、MATLAB Function ブロック、C Caller ブロック、および Stateflow チャート内のカスタム C/C++ コードのコード カバレッジを記録します。
関数 legacy_code
、S-Function
Builder ブロックまたは関数 mex
を使用して S-Function を作成する場合、適切な方法で S-Function をモデル カバレッジに互換させます。
これらの 3 つの方法の詳細については、C/C++ S-Function の実装を参照してください。
関数 legacy_code
を使用する S-Function
レガシ コード ツールのプロパティを表すフィールドで、MATLAB® 構造体を初期化します。
def = legacy_code('initialize')
オプション def.Options.supportCoverage
をオンにしてモデル カバレッジを有効にします。
def.Options.supportCoverageAndDesignVerifier = true;
構造体 def
を使用し、通常の方法で S-Function を生成します。例については、S-Function のカバレッジを参照してください。
S-Function Builder を使用する S-Function
ライブラリ ブラウザー内の User-Defined Functions ライブラリから S-Function Builder ブロックのインスタンスをモデルにコピーします。
ブロックをダブルクリックして [S-Function Builder] ダイアログ ボックスを開きます。
[ビルド情報] タブで [カバレッジのサポートを有効にする] を選択します。
関数 mex
を使用する S-Function- 関数 mex
を使用してソース ファイルをコンパイルしてリンクする場合、代わりに関数 slcovmex
を使用します。関数 slcovmex
はソース コードをコンパイルし、カバレッジとも互換させます。
この関数は関数 mex
と同じ構文で、同じオプションを取ります。さらに、モデル カバレッジに関連するいくつかのオプションを指定できます。詳細については、slcovmex
を参照してください。
Simulink エディターの [モデル化] タブで [モデル設定] を選択します。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインで、[C/C++ S-Function] を選択します。
シミュレーションを実行すると、カバレッジ レポートにはモデル内の C/C++ S-Function ブロックのカバレッジ メトリクスが記載されます。レポート内の各 S-Function ブロックは、ブロック内の C/C++ コードの詳細なカバレッジ レポートにリンクされます。