求助:遇到sp被重定义怎么办?

heagle   2009-8-25 15:22 楼主
在CCS2.0下用C写程序的时候编译连接都没问题,但是程序老是陷入死循环,查了很久都没查出来,最后感觉是可能是如下3个warning的问题

“Reg5509a.h",line 107:warning:incompatible redefinition of macro "RSA0L"(declared at line 60)
“Reg5509a.h",line 109:warning:incompatible redefinition of macro "REA0L"(declared at line 61)
“Reg5509a.h",line 128:warning:incompatible redefinition of macro "SP"(declared at line 56)

相应warning的位子是:

“Reg5509a.h"
.........
#define  RSA0L  *(volatile unsigned int*)0x003d
.......
#define  REA0L  *(volatile unsigned int*)0x003f
.........
#define  SP     *(volatile unsigned int*)0x004d
........


这个头文件是买dsp的时候公司给的范例程序中的,应该不会有错,况且我的程序里面只有这一个头文件
并且我C的源码在VC上运行是好的。

现在我的问题是程序老是出现死循环,并且出现的位子有时不一样。但是在查看汇编代码时总是死在一个叫做 _fltuld的内部函数中,这个函数我网上又查不到具体有什么用。

所以我觉得是不是上面warning中像sp的一些东西被重定义了的原因,但我又找不出其他地方哪还有sp的定义。

望各位高手帮我解决一下,谢谢

回复评论 (1)

在定义SP之前  加个#ifndef SP就可以防止重复定义了

点赞  2009-8-25 17:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复