0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享配置Polyspace分析C代码的方法和简介

MATLAB 来源:djl 作者:龚小平 2019-09-16 16:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Polyspace可以分析C、C++以及Ada代码,本文以嵌入式系统中最为常见的C代码分析为例说明Polyspace配置一个工程的过程和注意事项。

1. 配置语言和处理器类型

C语言由于其灵活性,在不同的编译器中有不同的约束和扩展,会影响最终生成的目标码的行为。Polyspace分析C代码时首先要最大程度和目标编译器的行为保持一致,这样才能保持代码分析的意义。因此在开始创建Polyspace工程时,我们需要配置编译器和处理器类型:

分享配置Polyspace分析C代码的方法和简介

所选用的C语言标准:C90/C99

所用编译器类型:Keil/Tasking/Diab/IAR…

(编译器通常定义了标准C语言之外的扩展,如关键字sfr、sbit等。选定编译器类型相当于告知了Polyspace在遇到此类非标扩展时如何解释其行为。)

目标处理器类型:定义不同数据类型的大小和字节顺序类型,如mpc5xx系列处理器定义如下:

分享配置Polyspace分析C代码的方法和简介

(某些运行时错误检查与此有关,如同一变量在Int定义为16位时会发生溢出,而在Int定义为32位时不会发生溢出。)

其他编译器行为设定:如负除取整方向、有符号数右移逻辑、枚举类型定义方式等。

2.选择验证分析模式

Polyspace有两种基本的验证分析模式:应用级分析和模块级分析,可以分别对应于集成测试和单元测试。

所谓应用级分析指用户待分析的源代码中包含了 main函数,选择应用级分析即分析进程从用户main函数入口,为了更好地模拟实际程序运行和调度情形,有时需要进行多任务(Multitasking)设置,有机会在以后再进一步介绍。

模块级分析通常待分析代码不包含main函数,Polyspace会自动打桩生成main函数并建立待分析函数的调用关系进行分析,并可进一步根据需要细化配置。如对于以下被调函数Function_sub和主调函数Function_top,可以设置为以下两种分析入口形式:

Function_sub(){ ……};

Function_top(){……

Function_sub();

……};

自动生成的main函数中只调用Function_top:在分析Function_top的进程中分析Function_sub,即Function_sub在Function_top的上下文中被分析。

自动生成的main函数中同时调用Function_top和Function_sub:Function_sub除了在Function_top的上下文中被分析,也会在直接在main函数上下文中被分析。对应的可能场景是Function_sub会被其他函数调用,需要更为鲁棒地分析其安全性。

分享配置Polyspace分析C代码的方法和简介

— 总结 —

Polyspace的配置是一个既简单又灵活的过程,通过对编译器行为的模拟和分析模型的选择,我们可以得到更为有意义和更符合需要的结果。

往期 | 代码分析验证

Polyspace应用到软件开发和验证流程

浅谈Polyspace的静态分析

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20339

    浏览量

    255354
  • 编译器
    +关注

    关注

    1

    文章

    1673

    浏览量

    51963
  • C代码
    +关注

    关注

    1

    文章

    90

    浏览量

    15243
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开关电源的基本概念和分析方法

    开关电源的基本概念和分析方法
    发表于 04-10 15:20 1次下载

    MTK平台LK阶段mt_boot.c配置:SELINUX_STATUS 2的作用与影响

    在 MTK(联发科)平台的 Bootloader(以 LK/Little Kernel 为例)中,mt_boot.c是负责 Linux 内核启动逻辑的核心文件,此次代码变更(新增#define
    的头像 发表于 02-03 15:46 987次阅读
    MTK平台LK阶段mt_boot.<b class='flag-5'>c</b><b class='flag-5'>配置</b>:SELINUX_STATUS 2的作用与影响

    国民技术发布N32Cube芯片配置与初始化代码生成工具

    1月30日,国民技术(NSING)正式发布N32Cube——芯片配置与初始化代码生成工具,让时钟、引脚与外设的配置一目了然、轻松上手!
    的头像 发表于 02-02 15:26 947次阅读
    国民技术发布N32Cube芯片<b class='flag-5'>配置</b>与初始化<b class='flag-5'>代码</b>生成工具

    微电网暂态稳定分析方法有哪些?

    复杂,传统大电网的暂态稳定分析方法已难以完全适配。精准的暂态稳定分析是微电网规划设计、保护配置、运行调度的核心前提,直接关乎电网的安全可靠运行。目前,微电网暂态稳定
    的头像 发表于 01-27 13:56 1187次阅读
    微电网暂态稳定<b class='flag-5'>分析</b><b class='flag-5'>方法</b>有哪些?

    分析嵌入式软件代码的漏洞-代码注入

    进行编译 在大多数情况下,程序故意像执行代码一样执行数据是不寻常的,但将数据用于构造有意执行的对象却很常见。 1、格式化字符串漏洞 大多数C程序员熟悉printf函数。大体上,这些格式字符串
    发表于 12-22 12:53

    维修总结:Keysight E8257D典型报错代码及维修方法

    Keysight E8257D典型报错代码及维修方法
    的头像 发表于 12-15 17:00 664次阅读
    维修总结:Keysight E8257D典型报错<b class='flag-5'>代码</b>及维修<b class='flag-5'>方法</b>

    宇树人形机器人的配置,核心代码,调试方法,二次开发接口

    宇树人形机器人的配置,核心代码,调试方法,二次开发接口
    的头像 发表于 12-10 09:05 5828次阅读

    是德频谱分析仪N9030B PXA基于5G NR信号分析配置方法

    是德科技N9030B PXA频谱分析仪作为高性能射频测试工具,在5G NR信号分析中发挥关键作用。以下是基于该仪器进行5G NR信号分析的具体配置步骤,帮助用户高效完成测试任务。 一、
    的头像 发表于 11-13 11:32 817次阅读
    是德频谱<b class='flag-5'>分析</b>仪N9030B PXA基于5G NR信号<b class='flag-5'>分析</b>的<b class='flag-5'>配置</b><b class='flag-5'>方法</b>

    GPIOB模拟spi的方法及lcd屏幕的接入

    本小组用到了spi接口的lcd屏幕,在此分享GPIOB模拟spi的方法及lcd屏幕的接入。 一、spi接口简介 如上图所示,SPI接口的典型时序是每一个时钟周期采集一个数据。时钟周期频率
    发表于 10-30 07:59

    GPIOB模拟SCCB的方法

    通过SCCB接口可对OV7725内部寄存器写入数据,从而对摄像头进行配置,本文主要分享GPIOB模拟SCCB的方法。 一、时序图分析 如上图所示,SCCB接口与IIC非常类似,多了一条信号线
    发表于 10-30 06:00

    Perforce QAC产品简介:面向C/C++的静态代码分析工具(已通过SO 26262认证)

    Perforce QAC专为C/C++开发者打造,支持多种编码规范、功能安全标准(ISO 26262)等,广泛用于汽车、医疗、嵌入式开发领域,可帮助快速识别关键缺陷、提升代码质量、实现合规交付。
    的头像 发表于 07-10 15:57 1492次阅读
    Perforce QAC产品<b class='flag-5'>简介</b>:面向<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++的静态<b class='flag-5'>代码</b><b class='flag-5'>分析</b>工具(已通过SO 26262认证)

    零极点仿真分析简介

    零极点分析是用于确定电路频率响应特性的关键方法,通过找到传递函数的零点和极点来分析电路的稳定性和频率响应。
    的头像 发表于 05-28 17:33 1418次阅读
    零极点仿真<b class='flag-5'>分析</b><b class='flag-5'>简介</b>

    蓝牙LE Audio技术简介和优势分析

    Energy)技术的优点,同时又具备卓越的音频性能。本文将从技术简介和优势分析两个方面对蓝牙LE Audio技术进行详细的介绍。 一、蓝牙LE Audio技术简介 蓝牙LE Audio技术是蓝牙技术联盟在
    的头像 发表于 05-21 16:08 5276次阅读

    N6715C 基础型定制配置直流电源分析

    N6715C 基础型定制配置直流电源分析仪   综述 N6715C 是一款可定制的直流电源分析仪系统,在装运之前已经过全面测试并组装完毕。
    的头像 发表于 05-09 17:30 786次阅读
    N6715<b class='flag-5'>C</b> 基础型定制<b class='flag-5'>配置</b>直流电源<b class='flag-5'>分析</b>仪

    CYPD3177可以配置充电器的电压和电流,配置Profile 3最合适的方法是什么?

    我们在设计中使用 CYPD3177,并喜欢配置设备以接受 USB-C 充电器 PD 配置文件 3、27-45W。 CYPD3177 可以配置充电器的电压和电流,
    发表于 05-09 07:30