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

回调函数未调用怎么办?

在edma中在用以下函数时

EDMA3_DRV_Result EDMA3_DRV_requestChannel (EDMA3_DRV_Handle hEdma,
uint32_t *pLCh,
uint32_t *pTcc,
EDMA3_RM_EventQueue evtQueue,
EDMA3_RM_TccCallback tccCb,
void *cbData);

第五个参数可以是一个回调函数,自己在使用的时候传输完成后并没有进入回调函数。

在使用timer的时候用以下函数

CSL_Status CSL_intcHookIsr (
CSL_IntcVectId vectId,
void *isrAddr
)

在第二个参数中也可以设置回调函数。

自己的timer程序在有些程序中能够在中断产生后调用回调函数函数,在有些程序中则不能。

我想问一下这是怎么回事,我因该如何去解决这个问题。

Andy Yin1:

需要查一下是否产生了中断,对于EDMA可以查一下相应channel配置对应的IPR bit是否置位。

hocodrecon:

回复 Andy Yin1:

EDMA的问题自己后来看了一个帖子知道是因为global interrupt enable 位是0,没有打开全局中断,对于timer,自己没有在IFR中看到有中断.

Zhan Xiang:

回复 hocodrecon:

1. 如果你使用了SYS BIOS的话, 中断管理应该由BIOS来处理,不建议直接调用CSL库。

2. 如果对应的IFR没有置位,需要检查下面几点:

A . 中断路由是否设置正确,有些timer的event需要通过cic二次路由

B . 对应外设的PSC是否使能,保证外设没有被软件关断

C. 对应的IER是否使能

D. interrupt mux寄存器配置是否正确。

hocodrecon:

回复 Zhan Xiang:

谢谢你的回答,自己接触DSP不久,有很多问题.我想再问一下

1.直接用CSL库会出现什么问题呢?

2.interrupt mux是在哪里看啊?

Andy Yin1:

回复 hocodrecon:

1 sysbios工程中不要使用INTC LIB,否则会有冲突错误,需要使用sysBios提供的config 界面进行中断事件与ISR的映射配置;

2 Interrupt mux寄存器配置参考C66x corepac user guide SPRUGW0B section9 interrupt controller INTMUX register。

赞(0)
未经允许不得转载:TI中文支持网 » 回调函数未调用怎么办?
分享到: 更多 (0)