We are having issues with receiving a interrupt after DMA completion. The DMA is manually triggered via a set event:
EDMA3SetEvt(SOC_EDMA30CC_0_REGS, 60);
The PaRAM struct has the bit set:
opt unsigned int 0x0013C00C 0x8FFFFA54 <--- Transfer interrupt bit 20 is enabled
srcAddr unsigned int 0x8C000000 0x8FFFFA58
aCnt unsigned short 0x0004 0x8FFFFA5C
bCnt unsigned short 0x0400 0x8FFFFA5E
destAddr unsigned int 0x8C000800 0x8FFFFA60
srcBIdx short 0x0004 0x8FFFFA64
destBIdx short 0x0004 0x8FFFFA66
linkAddr unsigned short 0x0000 0x8FFFFA68
bCntReload unsigned short 0x0000 0x8FFFFA6A
srcCIdx short 0x0000 0x8FFFFA6C
destCIdx short 0x0000 0x8FFFFA6E
cCnt unsigned short 0x0001 0x8FFFFA70
rsvd unsigned short 0x8007 0x8FFFFA72
The ARM Interrupt controller is set up with and ISR routine, priority and is enabled:
IntAINTCInit(); /* Initializing the ARM Interrupt Controller. */
IntRegister(SYS_INT_EDMACOMPINT, Edma3ComplHandlerIsr); /* Registering EDMA3 Channel Controller 0 transfer completion interrupt. */
IntPrioritySet(SYS_INT_EDMACOMPINT, 0, AINTC_HOSTINT_ROUTE_IRQ); /* Setting the priority for EDMA3CC0 completion interrupt in AINTC. */
IntSystemEnable(SYS_INT_EDMACOMPINT); /* Enabling the EDMA3CC0 completion interrupt in AINTC. */
The DMA's are running but no interrupt at completion. Have we missed something here?
Thanks,
John C.