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

EDMA传输的中断服务程序或地址在哪里呢?

 EDMA传输完是有中断的,可是自己找不到在哪里,是根本看不到吗?

自己看了CCS中自带的关于EDMA的例程,在使用 EDMA3_DRV_requestChannel 函数时,第五个参数给了一个callback 函数的地址,callback函数如下:

/* Callback function 1 */
void callback1 (unsigned int tcc, EDMA3_RM_TccStatus status,void *appData)
{
(void)tcc;
(void)appData;

switch (status)
{
case EDMA3_RM_XFER_COMPLETE:
/* Transfer completed successfully */
irqRaised1 = 1;
break;
case EDMA3_RM_E_CC_DMA_EVT_MISS:
/* Transfer resulted in DMA event miss error. */
irqRaised1 = -1;
break;
case EDMA3_RM_E_CC_QDMA_EVT_MISS:
/* Transfer resulted in QDMA event miss error. */
irqRaised1 = -2;
break;
default:
break;
}
}

一下是  EDMA3_DRV_requestChannel 的声明

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

通过查询irqRaised1的值来判断传输是否完成(irqRaised1是个全局变量)。这个callback函数是怎么回事呢,自己没有找到哪里用的,中断内部会自己调用这个函数来更改值吗?只有这样来判断传输是否完成吗?



Andy Yin1:

你可以搜索一下这个函数,应该在一个地方会调用的。

hocodrecon:

回复 Andy Yin1:

没有搜到callback 函数在哪里调用的。

赞(0)
未经允许不得转载:TI中文支持网 » EDMA传输的中断服务程序或地址在哪里呢?
分享到: 更多 (0)