主要内容

对从 MATLAB 代码生成的 C/C++ 代码运行 Polyspace

从 MATLAB® 代码生成 C/C++ 代码后,您可以独立地检查生成代码中的问题:

  • 使用 Polyspace® Bug Finder™ 检查错误或缺陷以及编码违规。

  • 使用 Polyspace Code Prover™ 检查运行时错误。

在 R2025a 中: Polyspace 与新的 MATLAB Coder™ App 不兼容。请使用 MATLAB 脚本进行 Polyspace 分析,具体操作请参阅本主题。

前提条件

要运行此示例:

  • 您必须拥有 Embedded Coder® 许可证。

  • 您应该已经熟悉如何使用 codegen 命令。否则,请参阅 MATLAB Coder 快速入门。

  • 您必须将 Polyspace 与 MATLAB 安装进行集成。请参阅将 Polyspace 与 MATLAB 和 Simulink 集成

示例文件

本教程使用 polyspaceroot\polyspace\examples\doc_cxx\matlab_coder 中的 MATLAB Coder 示例 averaging_filter。这里,polyspaceroot 是 Polyspace 的安装文件夹,例如,C:\Program Files\Polyspace\R2025b。此示例显示了 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);

创建一个 pslinkoptions 对象来配置 Polyspace 分析。在 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 结果会自动打开。

另请参阅

主题