嵌入式代码动态验证

在嵌入式开发中,代码静态分析工具相信大家应该都熟悉,都用过像PClint,understand C等,但对于动态验证,运行时错误验证工具还是不多,今天给大家介绍一款代码运行错误动态验证工具---Polyspace,本人有幸使用过这款优秀的软件,绝对不是广告噢呵呵,有兴趣的猿友可以到mathwork官网下载使用版,对你的代码进行验证,让你的代码更安全,更规范。Polyspace 目前已经被Mathwork 纳入麾下,称为mathwrok旗下的产品,如果各位以前用过matlab的话应该对mathwrok公司不陌生,Polyspace 分为Polyspace Code Prover 与 Polyspace Bug Finder两部分,可以结合使用。可以到mathwork官网搜索Polyspace下载试用版如下图所示:

Polyspace Code Prover™ 可以证明 C 和 C++ 源代码中不存在溢出、被零除、数组访问超出边界以及其他某些运行时错误。整个过程无需执行程序、植入代码,也不需要测试用例。Polyspace Code Prover 使用静态分析和基于形式化方法的抽象释义。该程序可以用于手写代码、生成的代码或二者的混合。每项操作均采用颜色标记,分别表示代码无运行时错误、已证明失效、无法达到或未经证明。

Polyspace Code Prover 还会显示变量和函数返回值的范围信息,并可以证明变量是否超出指定范围限制。这些结果可以发布到控制面板上,以跟踪质量指标并确保符合软件质量目标。Polyspace Code Prover 可以集成到构建系统中以执行自动验证。

  • 主要特性

  • 验证 C 和 C++ 嵌入式软件

  • 检测运行时错误

  • 查看范围信息

  • 跟踪软件质量指标

  • 依据代码验证结果回溯至 Simulink 模型

  • 实现代码验证流程自动化

  • 创建认证工件

检测运行时错误

Polyspace Code Prover 将抽象释义与静态代码分析结合使用,以识别和诊断溢出、被零除和指针越界等运行时错误。这项技术可以完整而全面验证所有运行时情况,并为每项代码自动提供诊断报告,包括已证明、已失败、无法达到或未经证明诊断。在 Polyspace Code Prover 生成的验证结果中,每一项 C 或 C++ 运算均采用颜色编码表示其状态:

绿色: 已证明没有运行时错误红色:已证明在每次运行时都有错误灰色:已证明无法达到(可能表示存在功能性问题)橙色:未经证明,在某些情况下可能有错

跟踪软件质量指标

您可以定义一个集中式的质量模型,来跟踪运行时错误、代码复杂度和编码违规。使用这些指标,可以在代码从首次迭代到最终交付的完善过程中,持续跟踪预定义的软件质量目标。通过衡量代码质量改进率,Polyspace Code Prover 使开发人员、测试人员和项目经理能够致力于编写和交付高质量的代码。

实现代码验证流程自动化

通过将 Polyspace 整合到构建流程中,您可以将 Polyspace Code Prover 作为持续集成流程的一部分。您可以自动调度验证作业并设置电子邮件通知。您可以配置Polyspace Code Prover 将验证作业发布到集群计算机(使用 MATLAB Distributed Computing Server),并发送电子邮件通知结果。结果包含与上一版本代码的差异。这些差异由服务器自动计算。

您可以定义分析的频率、定义质量模型,指定需要分析的代码部分,以及接收结果的用户电子邮件地址。此外,您还可以定义自动验证需要涵盖构建过程的哪些特性。

Polyspace 可以生成各种格式的文档,如PDF, wrod,Html等等,方便归档汇报。还可以远程访问。最终生成的报告和结果 会显示代码的最终质量、高亮显示已审查的部分、生成代码指标、记录所使用的编码规则以及运行时错误状态。您可以将报告发布为 PDF、HTML、RTF 以及其他格式。

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

你的代码敢上Polyspace跑吗?相关推荐

  1. python如何运行代码_python上怎么跑(运行)代码

    有朋友刚刚学Python,打开Python之后输入打印hello world的语句之后不知道该咋办了,怎么才能将Python代码跑起来呢?下面我将给大家介绍几种方法. 接下来介绍几种运行python代 ...

  2. linux代码windows能跑吗,能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑。该如何处理...

    当前位置:我的异常网» C语言 » 能不能帮忙改一下下面这些代码,原来是在windows系 能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑.该如何处理 ...

  3. 如何在多台linux上同时跑相同的command?

    如何在多台linux上同时跑相同的command? - Linux - 乐维UP 如何在多台linux上同时跑相同的command?   0   李新天,IT系统运维人员 我们有十几台linux的服务 ...

  4. 上过云么?一行代码秒上云体验过么?

    摘要:想要一行代码秒上云,工具自然少不了,这里推荐使用华为云弹性云服务器ECS搭配华为云DevCloud. 年底很多项目都忙着验收回款,验收回款的意义有多重大--成了,项目组发奖金:不成,别说奖金,明 ...

  5. 当Java代码遇上抽象、重载加重写,一切都不美好了

    当Java代码遇上抽象.重载加重写.一切都不美好了 前几天调程序遇上个奇怪的bug.一直没找到问题,今天最终发现问题所在了,不说了先上代码(下面代码是演示样例代码,经測试,Java不存在这问题,安卓存 ...

  6. 十多个巨头App上可跑智能小程序了

    十多个巨头App上可跑智能小程序了 11月1日,百度副总裁沈抖在2018百度世界大会上抛出智能小程序的多个重磅消息,再次成为开发者关注的焦点. 十多个头部App开跑智能小程序 百度正式成立智能小程序开 ...

  7. Mac上cpu 跑17个卷集层的resent

    在mac上跑resent的简化版简化成17个卷机层,7个eltwise层,这也太慢了,不过cpu上能跑了 I1003 17:26:27.097367 1958465536 solver.cpp:346 ...

  8. 最美的C语言代码参上

    各位,看到标题大家肯定会联想许多,到底怎样算最美的代码?先不多说,代码先上: #include<stdio.h>#include <graphics.h>#include &l ...

  9. 当低代码遇上私有化部署,真是赞爆了

    编者按:私有化部署好处多,低代码平台发展得如火如荼,二者结合会怎样呢?本文将带你解析企业选择私有化部署平台的好处,并带你认识可私有化部署老牌低代码平台. 概要: 私有化部署的概念 私有化部署四大好处 ...

最新文章

  1. eplan怎么插入表格_EPLAN电气图实例控制柜(控制面板)
  2. python【Pandas科学计算库】连女朋友都会用的Pandas(真の能看懂~!)
  3. php怎么克隆,利用php怎么对对象进行克隆
  4. 集体智慧编程 - 构建价格模型
  5. android DecorView的使用
  6. Java飞行记录器(JFR)
  7. 【bzoj1010-toy】斜率优化入门模板
  8. 【Linux】服务管理命令和压缩管理的详细解读
  9. 苹果“重心”转移,终端退位?
  10. Liunx系统命令sed的使用
  11. elasticsearch问题解决之分片副本UNASSIGNED
  12. AngularJS API之toJson 对象转为JSON
  13. mysql 语句中last_Mysql函数:Last_insert_id()语法讲解
  14. nsurl转nsdata_ios 中NSData 拼接成功,但写入本地种只有前面的data
  15. 修改网课播放器倍速播放
  16. Exchange2010安装指南
  17. 小爱同学服务器响应,小爱同学反应慢
  18. php里用钢笔画曲线,ps钢笔工具怎么画图
  19. L2-027. 名人堂与代金券
  20. 从文本文件读取数据方法

热门文章

  1. 用android studio写一个简单的记单词?????App
  2. Dynamical Movement Primitives (DMP) 总结
  3. 了解《2022年全球及中国汽车碳纤维车轮行业头部企业市场占有率及排名调研报告》
  4. 多多情报通:拼多多物流信息异常是什么原因呢?要如何处理
  5. 南昌大学计算机学硕推免生,南昌大学学霸班揭秘:25人全部保研到名牌大学,他们是这样学习的!...
  6. mac版python安装pandas_关于python:使用pip在Mac上安装Pandas
  7. Spring Security内置过滤器详解
  8. 【Python 多核并行计算】
  9. 配置开源安卓QQ协议库Mirai
  10. 中秋快到了,糖友能吃月饼吗?