支持概要
支持的编译器
有关支持的 IAR EW430(Embedded Workbench for MSP430)编译器/环境版本的信息,请参阅编译器。
导入项目
您可以使用 cpptesttrace
工具导入项目。更多信息,请参阅导入项目。
支持组件
为便于测试 IAR Embedded Workbench 项目,提供以下组件:
- 支持的特定 MSP430 IAR 编译器版本的编译器配置(在上文列出)。
- “IAR_icc430.mk”运行时库构建配置文件,用于使用 'make' 构建运行时库。
- 为在 C-SPY 模拟器上启动单元测试准备的测试配置:
- Run IAR MSP430 Tests - 纯手动模拟器配置。
- Run IAR MSP430 Application with Mem Monitoring - 纯手动模拟器配置。
已知局限性
不完全支持将 IAR 内存属性放在指针声明前面。在下面的示例中,声明 A 编写的类似声明将按照声明 B 的编写方式分析:
声明 A
声明 B
此限制会影响具有以下配置的项目:
- '430X' 目标处理器核心
- 中大型数据内存模型
- 已启用的 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 运行时库。如需了解有关自定义编译器的更多信息,请参阅使用交叉编译器配置测试。