TI中文支持网
TI专业的中文技术问题搜集分享网站

使用CCS测试外部函数时的问题

你好,

我用的G2553在CCS上测试调用外部函数,头文件:

#ifndef HID_H_
#define HID_H_

extern void B_led();


#endif /* HID_H_ */

另一个Hid.c:

#include "msp430g2553.h"

void B_led()
{
	P1OUT ^= 0x01;
}

在调用的时候,写在main.c中:

#include "Hid.h"

调用:

void ISR_TA0(void)
{
B_led();
}

此时报错:

 undefined first referencedsymbolin file--------- ----------------
 B_led./main.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "SampleDemo.out" not built
gmake: *** [SampleDemo.out] Error 1
gmake: Target `all' not remade because of errors.
在上面的代码中,可以引入头文件,但不能执行B_led()。

另一个问题,用Grace生成的文件里,在CSL_init.c一类的文件内不能写#include "Hid.h"吗?象上段代码,如果将#include写入CSL_init.c中,会卡在这行代码上。

谢谢!

灰小子:

建议楼主上传完整工程或代码。

根据楼主提供的信息,我个人觉得可能代码组织的问题居多。

比如说:void ISR_TA0(void)

看函数名应该是TA0的中断服务程序,但楼主没提供该句前的__interrupt,以及语句#pragma vector = TIMERA0_VECTOR

所以不清楚是否程序有问题,还是故意没复制过来

jx Wang1:

经过多次分析,我发现我的问题越来越初级了,上面的问题换个问法吧:

以CCS中,自己添加的C文件及H文件,为什么在Debug中没有生成obj?这个也需要自己手工设置?

我用过VS一类的软件开发工具,刚刚开始学习430,但相关的系统资料并不好找,谢谢了。

jx Wang1:

回复 Ken Wang:

先谢谢回复!

按您的建议进行修改是可以执行的。

上面的语句是我写的一个测试,因为在与硬件交互时,需要引用厂家提供的两个文件,一个是C文件另一个是H文件,当时就是出现了这个问题。在不改动外部引用文件的前提下,还有没有什么解决办法?

jx Wang1:

回复 灰小子:

这的确是个中断,是Grace里自动生成后执行的一个方法:

/**======== Interrupt Function Definitions ========*//* Interrupt Function Prototypes */
extern void ISR_TA0(void);/**======== Timer0_A3 Interrupt Service Routine ========*/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR_HOOK(void)
{/* Capture Compare Register 0 ISR Hook Function Name */ISR_TA0();/* No change in operating mode on exit */
}

赞(0)
未经允许不得转载:TI中文支持网 » 使用CCS测试外部函数时的问题
分享到: 更多 (0)