I have been trying to generate edma3 interrupt using INTC .The EDMA channel which I chose is CSL_TPCC2_INTC1_OUT24 (0x00000025) & the interrupt event 22(TPCC2 EDMACC_GINT)
I call the following functions but the hardware interrupt is not generated.I infer the problem is with any of the two functions in event mapping probably.
PLT_cpintc_config ();
PLT_Edma3EventHook(CSL_TPCC2_INTC1_OUT24, tcc37Fxn);
PLT_cpintc_config()
{
CSL_CPINTC_Handle hnd;
/* Program CPINTC */
/* Open the handle to the CPINT Instance (edma3 events are mapped to CPINTC0)*/
hnd = CSL_CPINTC_open (CSL_CP_INTC_0);
if (hnd == 0)
{
System_printf ("PLT_cpintc_config : Unable to open CPINTC_0\n");
return -1;
}
/* Disable all host interrupts. */
CSL_CPINTC_disableAllHostInterrupt(hnd);
/* Map System Interrupt 22 to channel 40 */
CSL_CPINTC_mapSystemIntrToChannel (hnd, 22, 40);
/* Map Channel 40 to Host Interrupt 40 */
CSL_CPINTC_mapChannelToHostInterrupt (hnd, 40, 40);
/* Enable system interrupt 22 */
CSL_CPINTC_enableSysInterrupt (hnd, 22);
/* Enable host interrupts. */
CSL_CPINTC_enableHostInterrupt (hnd, 40);
/* Enable all host interrupts also. */
CSL_CPINTC_enableAllHostInterrupt(hnd);
return;
}
void PLT_Edma3EventHook (
Uint16 tcc,
EdmaTccHandler fxn
)
{
TccHandlerTable[tcc] = (fxn);
}
Bharti