S-Function コードに対する Polyspace 解析の実行
S-Function コードのバグやエラーをチェックする場合、Polyspace® を Simulink® の S-Function ブロックから直接実行できます。
前提条件
MATLAB® から Polyspace を実行する前に、Polyspace インストールと MATLAB インストールをリンクしなければなりません。MATLAB や Simulink との Polyspace の統合を参照してください。
S-Function の解析のワークフロー
S-Function を Polyspace で検証するには、この推奨ワークフローに従います。
Polyspace との互換性をもつように S-Function をコンパイルします。
Polyspace のオプションを選択します。
2 つの解析モードのいずれかを使用して Polyspace Bug Finder™ 解析または Polyspace Code Prover™ 検証を実行します。
この出現場所 — S-Function の指定した出現箇所をそのブロックに対する入力で解析します。
すべての出現場所 — S-Function を S-Function のすべての出現箇所からの入力値で解析します。
Polyspace インターフェイスで結果をレビューします。
結果を参照する操作の詳細については、Polyspace デスクトップ ユーザー インターフェイスでの結果のフィルター処理とグループ化を参照してください。
結果のレビュー方法と理解を深めるための詳細については、Polyspace Code Prover のすべての結果のリストを参照してください。
Polyspace との互換性をもつように S-Function をコンパイル
S-Function を Polyspace で解析する前に、次のいずれかのツールで S-Function をコンパイルしなければなりません。
レガシ コード ツール。
def.Options.supportCoverageAndDesignVerifier
をtrue
に設定します。legacy_code
(Simulink) を参照してください。S-Function Builder ブロック。[S-Function Builder] ダイアログ ボックスの [ビルド情報] タブで [Design Verifier のサポートを有効にする] を選択します。
Simulink Coverage™ 関数
slcovmex
(Simulink Coverage)。オプション-sldv
を指定します。
S-Function の解析の例
この例では、S-Functions を Polyspace で解析するワークフローを示します。モデル psdemo_model_link_sl
と S-Function Command_Strategy
を使用します。
モデルを開き、レガシ コード ツールを使用して S-Function
Command_Strategy
をコンパイルします。% Open Model psdemo_model_link_sl % Compile S-function Command_Strategy def = legacy_code('initialize'); def.SourceFiles = { 'command_strategy_file.c' }; def.HeaderFiles = { 'command_strategy_file.h' }; def.SFunctionName = 'Command_Strategy'; def.OutputFcnSpec = 'int16 y1 = command_strategy(uint16 u1, uint16 u2)'; def.IncPaths = { fullfile(polyspaceroot, ... 'toolbox','polyspace','pslink','pslinkdemos','psdemo_model_link_sl') }; def.SrcPaths = def.IncPaths; def.Options.supportCoverageAndDesignVerifier = true; legacy_code('compile',def);
モデル
psdemo_model_link_sl/controller
を開きます。コード解析オプションを指定します。[アプリ] タブで [Polyspace コード検証] を選択します。次に、[Polyspace] タブで次を行います。
実行する製品を次から選択します。[Bug Finder] または [Code Prover]。Code Prover 解析ではランタイム エラーが検出される一方、Bug Finder 解析ではコーディングの欠陥とコーディング ルール違反が検出されます。
[設定] を選択します。[コンフィギュレーション パラメーター] ダイアログ ボックスで、次のパラメーターが設定されていることを確認します。
検証設定 —
[プロジェクト構成]
を選択します。このドロップダウン メニューの他の値を使用して別のコーディング ルールをチェックするには、[モード] として [Bug Finder] を使用する必要があります。検証後に結果を自動的に開く —
オン
設定を適用し、[コンフィギュレーション パラメーター] を閉じます。
Command_Strategy ブロックを右クリックし、[Polyspace] 、 [S-Function の検証] 、 [この出現場所] を選択します。
MATLAB コマンド ウィンドウで解析の進行状況を確認します。解析が完了すると、Polyspace インターフェイスで結果が開きます。