polyspace简单使用
安装
版本为Matlab R2020b,只用polyspace的话应该只需安装以下组件即可:
若安装后不能正常使用,可重新安装,可以试试额外勾选以下组件(我也不知道原理):
导入项目
点击File->New Project选项卡:
自定义项目名、版本号、作者、保存位置,点击Next:
接下来选择Keil编译器,点击Next,开始选择项目源文件:
Source Files只会导入.c文件,直接选择整个项目文件夹,勾选Add recursively可一次导入所有子文件夹。下一步的Include Folders只会导入.h文件,同上直接选择整个项目文件夹导入即可,但是之后编译时可能会报缺少引用文件之类的错误,建议把keil安装位置的c51依赖包也导入进去。
运行Bug Finder & Code Prover
接下来准备开始验证代码,在Configuration窗口Target & Compiler内Compiler栏选择keil,使用默认的keil配置即可:
Code Prover运行可能会报错,我把配置文件排除后就能正常运行,Bug Finder则没有出现这个情况,奇奇怪怪:
点击右侧小箭头选择Bug Finder或Code Prover:
成功运行后点击Reporting->Run Report选项卡,生成报告(下图以Code Prover为例):
Select reports选择报告的样式,Output folder是保存位置,Output format可选择PDF、WORD、HTML格式,勾选项是只生成当前的错误报告,被隐藏的错误不会写在报告里。参考翻译:
code prover 代码验证器
- `CallHierarchy`:调用层次结构,用于查看代码中函数或方法之间的调用关系。
- `CodeMetrics`:代码度量,用于分析代码的质量、规模、复杂度等方面的指标。
- `CodingStanders`:编码标准,定义代码编写时应该遵守的规范和标准。
- `Developer`:开发人员,指软件开发过程中参与编写代码的人员。
- `DeveloperReview`:开发人员审查,指开发团队对代码进行审查和评审的过程。
- `Developer_WithGreenChecks`:具有绿色复核的开发人员,可能指经过审核和认可的开发人员。
- `Quality`:质量,指代码和软件产品的质量水平。
- `VariableAccess`:变量访问,指代码中对变量进行读取或写入的操作。
bug finder Bug查找器
- `BugFinder`:Bug查找器,可能指用于检测和发现代码中的缺陷或问题的工具或系统。
- `BugFinderSummary`:Bug查找器总结,可能指Bug查找器生成的关于代码中发现的缺陷的总结报告。
- `CodeMetrics`:代码度量,用于分析代码的质量、规模、复杂度等方面的指标。
- `CodingStandards`:编码标准,定义代码编写时应该遵守的规范和标准。
- `SecurityCWE`:安全性常见弱点(Common Weakness Enumeration),指一种标准化的分类系统,用于描述软件和硬件中常见的安全漏洞和弱点。
如何隐藏错误项
详见官方手册,这里推荐一个翻译器:pot翻译器
通过 Bug 修复或申述在 Polyspace 用户界面中处理结果 - MATLAB & Simulink - MathWorks 中国
先选择想隐藏的错误项,在Result Details窗口配置一下状态和严重程度,这影响到下一步自动生成的注释:
配置完成后,点击将预申述添加到剪贴板(Add Pre-Justification To Clipboard):
再点击上图里的Open Editor,进入问题代码处,将剪切板内容粘到相同行,再次执行Code Prover就不会显示该项了(扇形图里还是会显示的):
隐藏项怎么显示?在Results List窗口选择Showing选项卡,把Hide results justified in code取消勾选就行:
polyspace暂时就这些,遇到其他问题建议直接查看官方手册比较好(再深入了我也不会),点击提示信息里的小问号即可进入: