##商业软件如需下载安装使用试用,可以点下面,通过简介添加
静态测试软件(QAC、Klocwork、Coverity等)单元测试软件 集成测试软件(VectorCAST、TestBED、Tessy、C++Test等)_哔哩哔哩_bilibili
Polyspace是matlab中的一个用于静态分析代码的工具箱,可以用于检查C、C++等代码的问题(比如死逻辑、可能出现的除零等),主要是针对嵌入式。
事先准备
和一些Matlab的老软件一样,该软件对于中文目录会产生错误。因此使用前请确认[C:\User]目录中,所使用的的当前用户是否为中文。
如果有的话在运行过程中你可能会看到类似提示: with non ascii characters
完成步骤后老软件可能会索引,以管理员权限运行cmd后,执行以下命令:
mklink /j C:\Users\原始用户名 C:\Users\NewUserName
如何打开PolySpace
Matlab主页面,如下图,则可以找到两个应用:
在官网上有介绍。并且还有一个Ada应用:
1. Polysapce bug finder
2. Polyspace coder prover
3. Polyspace for Ada(在18b中没有,但是官网是有该项,如需要可以单独下载)
三者具体描述如下:
BugFinder:识别嵌入式软件 C 和 C++ 代码中的运行时错误、并发问题、安全漏洞和其他缺陷。
CoderProver:可靠的静态分析工具,可以证明在 C 和 C++ 源代码中不存在溢出、被零除、数组访问越界和其他运行时错误。
Ada:Ada provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code.
使用PolySpace有两个方法,一个由Matlab打开软件,手动导入源码和库(*.c&*.h)该方法可以参考Polyspace应用:Bug Finder检测代码漏洞,另一个方法是由Polyspace应用:Simulink中的缺陷检查。
前一个方法更适合手写代码的检查,而后一个方法则是在MBD开发工具链时,确保生成代码的质量。主要是确保不存在除0、溢出、越界这类操作。否则如果将代码直接编译烧录进嵌入式有可能造成控制器的重启,一旦出现这类问题很难找到。