支持概述

支持的编译器

有关支持的 EWARM(ARM 嵌入式工作台)编译器/环境版本的信息,请参阅 编译器

导入 EWARM 项目

您可以使用 cpptesttrace 实用程序导入 EWARM 项目。更多详细信息请参见导入具有 IAR Embedded Workbench 支持的项目

支持组件

提供以下组件以方便测试 IAR Embedded Workbench 项目:

  • 用于 ARM 的特定支持版本的 IAR 编译器的编译器配置(如上所列)。
  • “使用来自 IAR Embedded Workbench 项目的选项”选项源。
  • “导入 IAR 嵌入式工作台项目”导入器图形用户界面。
  • CLI/批处理模式导入器:"-ewp” 选项 + "localsettings” 属性: "ewp.import.config", "ewp.import.linked", "ewp.import.location", "ewp.import.subdirs", "ewp.import.pathvar.enabled", "ewp.import.pathvar.name", "ewp.import.pathvar.value".

  • "IAR_iccarm.mk” 运行时库构建配置文件,用于使用从 v. 6.1x 开始的 IAR ARM 编译器版本使用“make”构建 C++test 运行时库。
  • "IAR_iccarm_5_5x_and_older.mk" 运行时库构建配置文件,用于使用“make”使用 IAR ARM 编译器版本 5.3x-5.5x 构建 C++test 运行时库。
  • 为在 C-SPY 模拟器上启动单元和应用程序测试准备的测试配置:
    • 运行 IAR EW 测试(批处理模板) - 使用 EW 生成的批处理脚本 ('.cspy.bat') 启动模拟器。
    • 使用内存监控(批处理模板)运行 IAR EW 应用程序 - 使用 EW 生成的批处理脚本('.cspy.bat')启动模拟器。
    • 运行 IAR ARM 测试 - 纯手动模拟器配置。
    • 使用 Mem Monitoring 运行 IAR ARM 应用程序 - 一种纯手动模拟器配置。

已知局限性

    • 源自旧 EW 版本或通过其他方式生成的项目文件中可能缺少某些选项说明。如果在使用基于 GUI 的 EW 项目导入器时发生这种情况,C++test 将假定相应的编译器/链接器选项不存在并依赖于工具默认值。这可能与 EW 为缺少描述的选项提供内部默认值的方法相冲突。
    • 基于 C++test 图形用户界面的 EW 项目导入器不支持以下 IAR EW 项目 (.ewp) 设置: 
      • 常规选项>库配置> CMSIS> DSP 设置被忽略(关于链接器选项)。
        解决方法:在 Parasoft> C++test> 构建设置> 链接器选项中手动附加适当的库
      • 忽略常规选项>目标> FPU 设置。
        解决方法:手动将适当的--fpu选项添加到项目属性 >Parasoft> C++test>构建设置> 链接器选项
      • 忽略 链接器>列表> 生成链接器映射文件设置
        。解决方法:手动将适当的 --map选项添加到项目属性>Parasoft> C++test> 构建设置> 链接器选项。 
      • 无论规选项>目标> FPU 设置如何,都不会向 Cortex-Ax 内核的--cpu选项提供.no_neon- 指定的内核名称。
        解决方法:使用选项从 IAR Embedded Workbench 项目模式切换到在 项目属性> Parasoft> C++test> 构建设置 手动指定所有选项并手动调整所有选项。 
    • 由于某些 IAR ARM 编译器版本中包含的预处理器的限制,C++test 将不接受 IAR ARM 编译器 v. 7.2x 及更早版本的以下代码:

      #define MHZ *1000000l 
      #define FREQ (1MHZ)
       
      void foo(long freq);
       
      void bar(void)
      {
             foo(FREQ);
      }

      解决方法:应在1MHZ之间插入空格:

      #define FREQ (1 MHZ)
         

    • C++test 不支持__nounwind关键字,因为异常re-thrown在被捕获后会重新抛出。如果您的程序包含__nounwind,请将以下宏添加到项目属性> Parasoft> C++test>构建设置下的编译器选项中:

      -DCPPTEST_COLLECT_STACK_TRACE=0
       

    • C++test 不能在 C 中正确重构多字节字符。


  • No labels