IAR Embedded Workbench for Arm 使用技巧

embedded/2024/11/28 17:19:18/

1 C-RUN

  C-RUN直接集成在IAR Embedded Workbench for Arm中,在代码执行过程中进行动态代码分析,及时发现运行时发现的实际错误。
  C-RUN可以检查算术问题、边界问题和堆完整性,各个功能特点:

  • 算术问题:
    • 包括溢出、环绕、转换错误、除0、switch缺少default语句。
    • 通过在潜在错误可能发生的所有位置插入特点的测试代码检查此类错误。
    • 源代码级别的测试通常会被为插入一个if或者等效语句,检查条件,并将辅助信息内容打印在stdout或者特殊值写入端口以记录问题。
  • 边界问题:
    • 包括:典型的越界问题;
    • 越界概念可以推广到通过指针访问的任何内容、类型及大小。包括指向堆栈上的标量对象的指针,如果更改指针,指向堆栈上的某个内容,那么边界检查器可以检测到指针的新值是否在有效对象的边界内。
  • 堆完整性:
    • 完整性检查在每次调用malloc、free等函数时进行,无论是在C还是C++环境中。
    • 如果堆很大,堆完整性检查可能会对性能产生真正的负面影响,因为检查可能涉及到遍历整个堆,因此决定检查频率的方式对于应用程序至关重要。

  C-RUN具体功能包括:

  • 分析C和C++代码;

  • 可在工程配置栏“Runtime Checking”中进行设置;

    • 在这里插入图片描述
  • 独特的测试代码优化,最小化代码大小开销;

  • 全面详细的运行时错误信息提示;

  • 对每个发现的错误提供调用栈信息;

  • 编译器中反馈代码的相关性和图形;

  • 灵活的错误过滤管理;

  • 边界检查,确保对数组和其他对象的访问在边界内;

  • 缓冲区溢出检测;

  • 在类型转换时检测值的更改;

  • 检查计算中的溢出和环绕;

  • 发现位移操作中的位丢失;

  • 堆和内存泄漏检查;

  • 支持版本:IAR Embedded Workbench for Arm 7.20 版本及以上、IAR Embedded Workbench for RX 3.10 版本及以上;


http://www.ppmy.cn/embedded/141227.html

相关文章

强制大模型输出json

一个是api里面有一个return_json的选项设置为True. 这个要看大模型厂商是否提供这个选项了.是利用提示词: 返回信息格式为: json格式, 包含一个字段code用整数1-4表示函数编号, 一个字段input用一个字符串表示函数的输入参数. 请只返回json, 返回其他数据都会得到批评 这个句子…

市面上好用的AIPPT-API接口

文多多 AiPPT | 一键搞定PPT 文多多 AiPPT | 一键搞定PPT文多多AiPPT,一键搞定PPT。AI根据主题、文档、网址智能生成PPT文档,同时支持在线编辑、美化、排版、导出、一键动效、自动生成演讲稿等功能,告别工作烦恼!https://docmee.…

群论入门笔记

群的基本定义 群由一组元素 G 和一个运算(常用符号包括 ,x , 或 ∗)组成。 封闭性 对于任意两个元素 x,y∈G,运算 x * y 的结果仍然属于集合 G,即: ∀x,y∈G,x∗y∈G. 结合律 对于任意 a,b,c∈G&…

scrapy框架学习

scrapy框架学习 Spider(蜘蛛): 详细说明:Spiders是Scrapy框架中用户自定义的类,它们是爬取过程的起点。每个Spider定义了爬取的逻辑,包括起始URLs、如何跟踪链接以及如何解析页面内容。Spiders通常会生成两种输出:提取的数据(通常以Item对象的形式)和新的请求(Reques…

R安装rgdal报错 解决办法

尝试了网上很多办法,不知道哪一步解决了,记录一下所有步骤: 1. 尝试github安装 options(repos c(CRAN "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))install.packages("devtools")library(devtools)devtools::in…

设计模式——装饰器模式

装饰器模式是结构型设计模式,在Python中有一个非常著名的装饰器wrapper,它的实现方法就是使用了该设计模式,装饰器可以修饰类也可以修饰函数。 从类的设计上说,他的本质是在不定义子类的情况下动态的给对象添加一些额外的功能。举…

C#笔记(5)

一、winform项目与窗体控件 1、部分类的使用 好处:让自动生成的代码后置,我们编写程序的代码显得更加简洁 特点:在最后编译的时候,仍然编译成一个窗体类。 窗体和控件的基本使用 3、Event事件(委托--》事件&#…

代理模式 (Proxy Pattern)

文章目录 代理模式 (Proxy Pattern)原理分类优点缺点示例代码静态代理1. 定义接口2. 创建真实类3. 创建代理类4. 客户端代码输出结果 动态代理(基于 JDK)1. 定义接口和真实类2. 创建动态代理类3. 客户端代码输出结果 UML 类图静态代理动态代理 使用场景小…