Hi.
I have a trouble with C6747 DSP Core.
I'm using EDMA3 to transfer SPI Rx and Tx data. Normally, TC Interrupts occur successfully, but under a condition that GPIO Interrupts occur at the same time period, DSP and its Interrupt Controller miss TC Interrupt occasionally, even though the data transfer is finished.
I checked some error registers and status registers of SPI, EDMA3 TC and CC, but no error (except SPI overrun error) was reported. I also checked INTSTAT register of Interrupt Controller, but I can't find any error status. As a trial, I assigned interrupt handling functions to EDMA3_CC0_ERRINT, EDMA3_TC0_ERRINT and EDMA3_TC1_ERRINT events, but they are never asserted.
Here is my setup of interrupts.
--------------------------------------------------------------------------
(.cfg file)
/* ECM config */
ECM.eventGroupHwiNum[0] = 7;
ECM.eventGroupHwiNum[1] = 8;
ECM.eventGroupHwiNum[2] = 9;
ECM.eventGroupHwiNum[3] = 10;
(Initialize in main.c)
// enable interrupts
EventCombiner_dispatchPlug(8, edma3ccIsr, NULL, FALSE);
EventCombiner_enableEvent(8);
Hwi_clearInterrupt(7);
Hwi_enableInterrupt(7);
EventCombiner_dispatchPlug(65, gpio_b0Isr, NULL, FALSE);
EventCombiner_enableEvent(65);
Hwi_clearInterrupt(9);
Hwi_enableInterrupt(9);
--------------------------------------------------------------------------
I also use EDMA3 to transfer audio data between McASP FIFO and IRAM, and to transfer audio data between IRAM and SDRAM. I think EDMA3 is always busy, but no error happens in normal condition that without GPIO interrupts.
If anyone have an idea of the reason for this kind of problem, please let me know as soon as possible.
If you need more information, please ask me.
Regards.
Shintaro