Main Content

Simulink モデルのカスタム C/C++ コードのカバレッジ

サポートされている 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++ コードの詳細なカバレッジ レポートにリンクされます。

MATLAB Function ブロック、C Caller ブロック、および Stateflow チャート内にあるカスタム C/C++ コードのコード カバレッジの有効化

Simulink® モデル内のカスタム C/C++ コードのコード カバレッジを有効にするには、次を行います。

  1. [コンフィギュレーション パラメーター] の [シミュレーション ターゲット] ペインで、[カスタム コードのインポート] を選択します。

  2. [コンフィギュレーション パラメーター] の [シミュレーション ターゲット] ペインで、[カスタム コード解析を有効にする] を選択します。

Simulink Coverage™ は、MATLAB Function ブロック、C Caller ブロック、および Stateflow チャート内のカスタム C/C++ コードのコード カバレッジを記録します。

S-Function のコード カバレッジ

S-Function をモデル カバレッジ互換にする

関数 legacy_codeS-Function Builder ブロック、または関数 mex を使用して S-Function を作成する場合、方法を適切に調整して S-Function にモデル カバレッジとの互換性を持たせます。

これらの 3 つの方法の詳細については、C/C++ S-Function の実装を参照してください。

関数 legacy_code を使用する S-Function

  1. レガシ コード ツールのプロパティを表すフィールドで、MATLAB® 構造体を初期化します。

    def = legacy_code('initialize')

  2. オプション def.Options.supportCoverage をオンにしてモデル カバレッジを有効にします。

    def.Options.supportCoverageAndDesignVerifier = true;
  3. 構造体 def を使用し、通常の方法で S-Function を生成します。例については、S-Function のカバレッジを参照してください。

S-Function Builder を使用する S-Function

  1. ライブラリ ブラウザー内の User-Defined Functions ライブラリから S-Function Builder ブロックのインスタンスをモデルにコピーします。

  2. ブロックをダブルクリックして [S-Function Builder] ダイアログ ボックスを開きます。

  3. [ビルド情報] タブで [カバレッジのサポートを有効にする] を選択します。

関数 mex を使用する S-Function.  関数 mex を使用してソース ファイルをコンパイルしてリンクする場合、代わりに関数 slcovmex を使用します。関数 slcovmex はソース コードをコンパイルし、カバレッジとも互換させます。

この関数は関数 mex と同じ構文で、同じオプションを取ります。さらに、モデル カバレッジに関連するいくつかのオプションを指定できます。詳細については、slcovmex を参照してください。

S-Function のカバレッジ レポートの生成

  1. Simulink エディターの [モデル化] タブで [モデル設定] を選択します。

  2. [コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインの [解析に含める] の下にある [C/C++ S-Function] を選択します。

シミュレーションを実行すると、カバレッジ レポートにはモデル内の C/C++ S-Function ブロックのカバレッジ メトリクスが記載されます。レポート内の各 S-Function ブロックは、ブロック内の C/C++ コードの詳細なカバレッジ レポートにリンクされます。

関連する例

詳細