This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6670的EDMA中断产生不了



我想使用edma拷贝一些数据,数据拷贝完成进入外部中断4对应的中断处理函数,EDMA_copy数据拷贝功能是完成了,但总是进不了中断4,请帮我看看是什么原因。

代码如下。

void edma_isr_init(void)
{
EDMA_init();
/* Disable Global host interrupts. */
gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 0;

/*map SPI Interrupt events (54 for SPIINT0) to CIC0 INTC0 out*/
KeyStone_CIC_event_map(gpCIC0_regs, 36, 64);
/* Enable Global host interrupts. */
gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 1;

gpCGEM_regs->INTMUX1 = 0;
gpCGEM_regs->INTMUX1 = (22<<CSL_CGEM_INTMUX1_INTSEL4_SHIFT);
gpCGEM_regs->INTMUX2 = 0;
//map local timer interrupt to INT14
// gpCGEM_regs->INTMUX3 = 22<<CSL_CGEM_INTMUX3_INTSEL14_SHIFT;

/*Clear all DSP core events*/
gpCGEM_regs->EVTCLR[0]= 0xFFFFFFFF;
gpCGEM_regs->EVTCLR[1]= 0xFFFFFFFF;
gpCGEM_regs->EVTCLR[2]= 0xFFFFFFFF;
gpCGEM_regs->EVTCLR[3]= 0xFFFFFFFF;

//clear DSP core interrupt flag
ICR= IFR;

//enable INT14
IER = IER|(1<<14)|(1<<4);

/*Interrupt Service Table Pointer to begining of LL2 memory*/
ISTP= 0x800000;

//enable GIE
TSR = TSR|1;

}
void edma_test()
{
KeyStone_Exception_cfg();
edma_isr_init();
// KeyStone_test_config();
memset(buffer, 0, sizeof(buffer));
memset(edma_buf, 0x5a, sizeof(edma_buf));
EDMA_copy((unsigned int)GLOBAL_ADDR(edma_buf), GLOBAL_ADDR(buffer), DMA_BUF_SIZE, 0, DMA_NO_WAIT);
while(1);
return;
}