1.warning: function declared implicitly错误原因

line 10: warning: function declared implicitly

这是由于没有声明函数原型造成的。

在a.c中,

void main()

{

.....

delay();

....

}

在b.c中

void delay()

{

}

如果就只是这样的话,就会出现上面的worning的。

解决办法是:

1.在b.h中写 extern void delay();然后在a.c中include "b.h"就ok了。

2.把主函数和调用函数放到一个源程序中,如果主函数在前面则在主函数中声明一下子函数;如果主函数在后面则不需要声明。

3.主函数和调用函数不在同一个源程序中,可以在主函数中用extern void delay()声明子函数。

4.主函数和调用函数不在同一个源程序中,可以写如下头文件。

#ifndef _DELAYFUN_H
#define _DELAYFUN_H
void  delay();
#endif

然后保存为delayfun.h头文件型,在主函数前面加上#include<delayfun.h>.

以上四种方法任选一种就可以了。

2.ccs调试中出现error: ............is defined multiple times如何解决

一看就是重复定义,可能是这种情况,在一个源程序中既有主函数又有子函数,主函数已经调用了子函数,然而又在另一个源程序中定义了子函数。解决办法是把主函数中的子函数去掉,过着删除另外一个源程序。

3.出现>> warning: creating .stack section with default size of 400 (hex) words.
Use

-stack option to change the default size.

这种错误是由于模拟运行时好像堆栈会溢出,是堆栈的空间太小了。程序已经提示你了: 默认的.stack空间是 400 * 4 = 1600 = 1.6K。而你申请的Y,U,V,明显超过了1.6K
它也提示你了: 使用“-stack option"来修改默认大小。所以,你要做的,就是:“工具->选项->编译选项”,在编译的参数里面,添加"-stack 256"或者更大就可以了。

4.出现fatal error: could not open source file "sinfun.h"错误。

找不到头文件。解决办法是project->buid option->compile(category->preprosessor->include search path)栏中填上$(proj_dir)\include就行了。

5.warning: entry point symbol _c_int00 undefined

使用CDSP时,在rts.lib库中定义了入口地址:_c_int00
而使用汇编语言编程,就不用包括rts.lib库,所以入口地址及其标号可以由人工指定。而使用C时,就不同了,必须从rts.lib定义的这个入口_c_int00入口,是约定的。

The c and cr options cause the linker to use linking conventions that are required by the C compiler.
其实在汇编语句中也可以不用_c_int00来定义程序入口,只要把编译器选项-c去掉,用-e 选项来定义你想要的程序入口地址。这个可在CMD文件里加-c

这个错误是没有加库文件,你可以project view 右键加入,也可以在project->build options->Linker->libraries中加入..\..\lib\cls\lib\(搜索路径)还要加上库名cslDM642.lib;rts6400.lib分号隔开。