在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的定义。
望各位高手帮我解决一下,谢谢
在定义SP之前 加个#ifndef SP就可以防止重复定义了