首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

XGATE中断服务程序问题

XGATE中断服务程序问题

大家好!

我有一个中断服务程序,如下:

void interrupt Crank_ISR(void)
{
Crank_Signal=Get_Capture_Time(TPU_IN_RLOC_1);
}

其中Get_Capture_Time(TPU_IN_RLOC_1)是一个API函数。

这个中断服务程序在S12XCPU下是可以正常运行的,但在XGATE下就会出现Link错误:

Link Error : L1822: Symbol __X_Get_Capture_Time in file D:\Project\My-CW\S12x_ECU\S12x_ECU_Data\TBDML\ObjectCode\xgate.cxgate.o is undefined
Link Error : Link failed

(但是,如果把Get_Capture_Time函数的内容拷到XGATE中断服务程序中,又是可以正常运行的。)

上述Link错误是什么原因啊?.....请大家帮帮忙!谢谢!

还有,Crank_Signal是一个32位变量。

论坛中有一帖“XGATE中能处理32bit的数据吗?”好像跟我的问题是一个性质的,但就是不知道什么原因。

我在建立工程的时候,对于XGATE选择的是“All float and double variables are 32bit/IEEE32 for the XGATE.” 内存模式是“Banked”

但我感觉,问题不在变量上,而是在调用API函数上。因为下面的中断处理是可以的

void interrupt Crank_ISR(void)
{

if(TFLG2_TOF == 1)
{
read = TCNT; // Read to clear the TOF flag
Crank_Signal=(65536 + TC2 - TC2H);
}
else
Crank_Signal=(TC2 - TC2H);
}

求助了......

[此贴子已经被作者于2008-8-28 17:13:27编辑过]

谢谢楼上的!

但是,我的意思并不是让两个核同时调用函数Get_Capture_Time(),我是分开调试的;首先,让s12xcpu处理中断,调用函数Get_Capture_Time(),运行正常;接下来把这部分中断任务让XGATE来做,就出现连接错误了!

帮忙啊...

谢谢!谢谢!

问题是解决了!在建立API函数的时候,就要将函数Get_Capture_Time()放在 *.cxgate的文件中

[em04]
返回列表