支持概述
支持的编译器
有关受支持的 IAR EW430(MSP430 的嵌入式工作台)编译器/环境版本的信息,请参阅 编译器。
导入项目
您可以使用 cpptesttrace
实用程序导入项目。有关更多信息,请参阅导入项目 。
支持组件
提供以下组件以方便测试 IAR Embedded Workbench 项目:
- 用于 MSP430(如上所列)的 IAR 编译器的特定支持版本的编译器配置。
- “IAR_icc430.mk”运行时库构建配置文件,用于使用“make”构建运行时库。
- 为在 C-SPY 模拟器上启动单元测试准备的测试配置:
- 运行 IAR MSP430 测试 - 纯手动模拟器配置。
- 使用内存监控运行 IAR MSP430 应用程序 - 一种纯手动模拟器配置。
已知局限性
不完全支持将 IAR 内存属性放在指针声明之前。在以下示例中, 声明 A 和类似书写的声明将被分析,就好像它们像 声明 B一样编写:
声明 A
声明 B
此限制影响具有以下配置的项目:
- “430X”目标处理器内核
- 中型或大型数据存储器模型
- 启用 IAR 语言扩展。
以下声明被正确处理,可以用来代替上面提到的不受支持的构造:
- 默认情况下,UBROF 库和目标文件使用相同的扩展名(.r?? 和 .r43 用于 EW430 5.3x-5.4x)。这会阻止 C++test 区分对象和库,从而导致从链接命令行中删除用户库。以下部分提供了更详细的描述和针对此限制的解决方案。
- 适用于 MSP430 版本 5.3x-5.4x 的 IAR 编译器附带的 Xlib 版本存在一个已知问题,该问题可能会导致 C++test 的 LSI 阶段失败。如果出现问题,Xlib 将生成以下消息:"Error [14]: 未知标签:E0"。通过将 xlink 更新到版本 5.2.6.19 或更高版本,将 Xlib 更新到更新版本以解决此问题。有关执行此操作的信息,请联系 IAR 支持。
为什么在链接期间可能会删除用户库
C++test 使用选项过滤机制在链接命令行中用检测对象替换原始用户对象。在 ELF 和 COFF 等格式中,对象和库文件扩展名默认不同(.o/.a、.obj/.lib),C++test 依赖这些扩展名正确清空选项过滤机制。然而,UBROF 库和目标文件默认具有相同的扩展名 (.r??),这导致 C++test 从链接命令行中删除库。通过引入基于观察到的系统化命名约定 (dl430*.r43) 的选项过滤模式,系统库解决了这个问题。但是,用户库仍被删除。
防止库在链接期间被删除
这个问题有两种解决方案:
- 右键单击该项目并选择属性> Parasoft> C++test>构建设置 并在选项部分的链接器 选项 字段中手动添加您的库(推荐)。
- 建立库命名方案(扩展名或名称模式)并创建自定义编译器配置。
如果您选择选项 #2,请将以下选项过滤规则插入到 c/cpp.psrc 文件中:
edgtk.optionConfig name=*<your_pattern> regexp=true casesensitive=false tags=linker
在这之前
edgtk.optionConfig name=*.r43 regexp=true casesensitive=false
tags=linker,excludable,object_file
此问题也适用于外部构建的 C++test 运行时库。要了解有关自定义编译器的更多信息,请参阅使用交叉编译器配置测试。