メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

生成されたコードの Polyspace 解析に対する外的制約

生成されたコードのバグやランタイム エラーをチェックする場合、全範囲の入力の代わりに、特定の範囲の入力値に対してチェックを実行することを選択できます。Simulink® モデルから入力範囲を抽出するか、または独自の外的制約を指定できます。

同様に、調整可能なパラメーターの固定値を使用するか、値の範囲を使用することができます。出力値が特定の範囲内に収まるかどうかもチェックできます。

モデルからの外的制約の抽出

Inport (Simulink) ブロック、Gain (Simulink) ブロック、および Outport (Simulink) ブロックを使用した次の単純なモデルについて考えてみます。Inport ブロックおよび Outport ブロックの信号と、Gain ブロックのゲイン パラメーターには最小値と最大値があるとします。

A simple Simulink model with a Gain block between an Inport and Outport block.

これらの最小値と最大値を使用して、このモデルから生成されたコード解析できます。[アプリ] タブで [Polyspace コード検証] を選択します。次に [Polyspace] タブで [設定] を選択します。次のコンフィギュレーション パラメーターを指定します。

  • 入力:[指定された最小/最大値の使用] を選択。Code Prover 解析では、生成されたコードを Inport ブロックの指定された値の範囲内でチェックします。Bug Finder 解析では、この情報を使用して誤検知を除外します。

    既定値: このオプションは選択されています。

  • 調整可能なパラメーター出力:[指定された最小/最大値の使用] を選択。

    既定値: このオプションは選択されていません。解析では、Gain ブロックの固定ゲイン値を使用します (この例では値 2)。

    解析で固定値ではなく範囲を考慮する場合、パラメーターが調整可能でなければなりません。また、パラメーターがインライン化されていてはなりません。既定のパラメーター動作 (Simulink Coder)を参照してください。

  • 出力:[出力が最小/最大値の範囲内にあることを確認します] を選択。Code Prover 解析では、出力が Outport ブロックで指定した範囲を超える場合、レッド チェックが生成されます。正確性の条件 (Polyspace Code Prover)も参照してください。

    既定値: このオプションは選択されていません。Code Prover 解析では出力値をチェックしません。

解析後に、制約範囲の値が使用されているかどうかをチェックするには、次のいずれかのファイルを確認します。

  • フォルダー results_modelname\modelname にある制約指定 XML ファイル modelname_drs.xml

  • フォルダー results_modelname にある Polyspace® プロジェクト ファイル modelname.prpsj

    Polyspace ユーザー インターフェイスでこのファイルを開きます。プロジェクト構成で、オプション [制約の設定] (-data-range-specifications) に対して指定された抽出された制約を確認します。

Simulink モデルから制約抽出でサポートされるストレージ クラス

Simulink モデルからの制約抽出を許可するには、信号とパラメーターが特定のストレージ クラスのデータ型をもたなければなりません。ストレージ クラスの詳細は、生成されたコードでのデータ表示を制御するストレージ クラスの選択 (Embedded Coder)を参照してください。

一般的なストレージ クラス

ストレージ クラスサポートされる信号制約サポートされるパラメーター制約
Autoはい

はい

ExportedGlobalはいはい
ImportedExternはいはい
ImportedExternPointerはいはい
Model defaultはいはい

その他のストレージ クラス

ストレージ クラスサポートされる信号制約サポートされるパラメーター制約
BitFieldはいはい
CompilerFlagいいえいいえ
Constいいえはい
ConstVolatileいいえはい
Defineいいえいいえ
ExportToFileはいはい
FileScopeはいいいえ
GetSetいいえいいえ
ImportedDefineいいえいいえ
ImportFromFileいいえいいえ
Structいいえいいえ
Volatileはいはい

カスタム外的制約の指定

場合によっては、生成されたコードにカスタム セットの制約を指定することが必要な場合があります。たとえば、生成されたコードを既存のコード ベースと統合していて、それがカスタム制約のセットを設定している場合があります。

生成されたコードを解析するときに、Polyspace の [構成] ウィンドウでカスタム外的制約を指定します。

  1. Simulink の [コンフィギュレーション パラメーター] ウィンドウで [Polyspace] タブに移動して [構成] をクリックし、Polyspace の [構成] ウィンドウを開きます。

  2. [制約の設定] フィールドで [入力およびスタブ] ノードに移動して、カスタム外的指定 XML ファイルを指定します。

    A snapshot of a Polyspace configuration showing the Inputs & Stubbing section.

カスタム外的制約テンプレートは Polyspace ユーザー インターフェイスを使用して作成と編集ができます。Polyspace 解析の外的制約の指定を参照してください。

参考

トピック