支持概述
支持的编译器
有关支持的 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> 构建设置 手动指定所有选项并手动调整所有选项。
- 常规选项>库配置> CMSIS> DSP库 设置被忽略(关于链接器选项)。
由于某些 IAR ARM 编译器版本中包含的预处理器的限制,C++test 将不接受 IAR ARM 编译器 v. 7.2x 及更早版本的以下代码:
#define MHZ *1000000l #define FREQ (1MHZ) void foo(long freq); void bar(void) { foo(FREQ); }
解决方法:应在
1
和MHZ
之间插入空格:#define FREQ (1 MHZ)
- C++test 不支持
__nounwind
关键字,因为异常re-thrown在被捕获后会重新抛出。如果您的程序包含__nounwind,
请将以下宏添加到项目属性> Parasoft> C++test>构建设置下的编译器选项中:-DCPPTEST_COLLECT_STACK_TRACE=0
- C++test 不能在 C 中正确重构多字节字符。