メインコンテンツ

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

MATLAB コードから生成された C/C++ コードに対する Polyspace の実行

MATLAB® コードから C/C++ コードを生成した後、生成されたコードを以下について個別にチェックできます。

  • バグ (欠陥) およびコーディング ルール違反 (Polyspace® Bug Finder™ を使用)。

  • ランタイム エラー (Polyspace Code Prover™ を使用)。

R2025a において: Polyspace は新しい MATLAB Coder™ アプリと統合しません。このトピックに示されているように Polyspace 解析に MATLAB スクリプトを使用します。

前提条件

この例に従うには、次のようにします。

  • Embedded Coder® ライセンスを所持していなければなりません。

  • codegen コマンドを使用する方法を理解していなければなりません。そうでない場合、MATLAB Coder 入門を参照してください。

  • Polyspace インストールと MATLAB インストールを統合しなければなりません。MATLAB や Simulink との Polyspace の統合を参照してください。

例のファイル

このチュートリアルでは、polyspaceroot\polyspace\examples\doc_cxx\matlab_coder にある MATLAB Coder の例 averaging_filter を使用します。ここで、polyspacerootC:\Program Files\Polyspace\R2025a などの Polyspace インストール フォルダーです。この例では、Code Prover 解析を示します。Bug Finder の場合、同様のワークフローに従うことができます。

MATLAB を使用した Polyspace 解析の実行

Polyspace 解析を実行するには、最初に MATLAB 関数 averaging_filter() から C コードを静的ライブラリとして生成します。MATLAB コマンド ウィンドウで以下を入力します。

% Generate code
matlabFileName = fullfile(polyspaceroot, 'polyspace',...
    'examples','doc_cxx','matlab_coder','averaging_filter.m');
codegenFolder = fullfile(pwd, 'codegenFolder');
codegen(matlabFileName, '-config:lib', '-c', '-args', ...
   {zeros(1,100,'double')}, '-d', codegenFolder);

Polyspace 解析を構成するための pslinkoptions オブジェクトを作成します。MATLAB コマンド ウィンドウで以下を入力します。

opts = pslinkoptions('ec');
オブジェクト opts のプロパティを使用して、Code Prover 検証を選択し、一時フォルダーに結果を保存し、解析が完了したら Polyspace ユーザー インターフェイスを開きます。
opts.VerificationMode = 'CodeProver';
opts.ResultDir = [tempdir 'results'];
opts.OpenProjectManager = 1;

前述の構成を使用して Polyspace 解析を実行します。

[polyspaceFolder, resultsFolder] = pslinkrun('-codegenfolder', codegenFolder, opts);
解析がエラーなしで完了した場合、Polyspace の結果が自動的に開きます。

参考

トピック