嵌入式项目的特殊点
嵌入式项目有以下特殊之处: 1)
嵌入式操作系统API和开发环境自带的库不能使用。解决办法:C标准库链接测试编译器自带的C标准库,其他则自动打桩代码,测试时用底层模拟来解决失真。 2) 部分特殊关键字测试编译器不支持;
有些开发环境的内嵌汇编与测试编译器的格式不同,不能编译。解决办法:自动屏蔽特殊关键字和内嵌汇编,使测试代码能够编译通过。
3) 某些基本数据类型长度与测试编译器不同。解决办法:自动转定义,以便保持数据类型的一致。头文件设置
在建立工程向导的“头文件”页,或工程属性在“头文件”页,嵌入式开发环境的头文件目录应该放在“常规头文件”目录中,如果C标准库对应的头文件位于独立目录,则将其放在“库头文件”目录中,否则,需点击“详细分类”,将C标准库对应的头文件设为L。
常用的C标准库头文件有:
stdio.h
stdlib.h
stddef.h
stdarg.h
string.h
locale.h
signal.h
math.h
time.h
assert.h
errno.h
ctype.h
setjmp.h
屏蔽测试编译器不支持的关键字或代码片断
在编译测试代码过程中,如果产生大量编译错误,且编译错误是代码中含有测试编译器不支持的特殊关键字或代码片断,那么,可以将这些特殊关键字或代码片断屏蔽。方法:在“工程属性”“高级”页,点击“替换”,打开以下对话框:
点击“添加”,打开如下图所示的对话框:图中,标记为:@,屏蔽后跟的token为:near,far,interrupt,并选中了“屏蔽后跟的数字或字符”,则测试代码将自动进行修改,如下: PTBSC
@0x0000184; 修改为 PTBSC
; void @near func(); 修改为 void func(); 但不会修改产品代码文件(VU在任何情况下都不会修改产品代码文件)。如果只需屏蔽一个关键字,则只需在标记中填写关键字。
有些关键字是通过宏来定义的,如#define _FAR
far,在屏蔽far时,还要让_FAR不展开,方法:在“工程属性”“高级”页,点击“忽略”,打开以下对话框,在“不展开的宏定义”中填写宏名,这种设置也用于避免将复杂宏展开造成代码逻辑结构的复杂化:
寻求技术支持
如果设置有困难,或问题无法解决,请联系技术支持。在“帮助”菜单,单击“技术支持信息”,即可查看技术支持联系方式。
建议为技术支持提供一些示例代码,或提供项目的相关信息(如开发环境、嵌入操作系统名称、嵌入式CPU品牌/型号),由技术支持搜索一些类似代码。技术支持将根据项目代码特性制作相应的模板,模板中会预先完成需要的设置,还会提供相应的Demo。 |