对从 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 集成。
示例文件
本教程使用
中的 MATLAB Coder 示例 polyspaceroot
\polyspace\examples\doc_cxx\matlab_coderaveraging_filter
。这里,
是 Polyspace 的安装文件夹,例如,polyspaceroot
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);