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.

DMA missed events problem

 

 

DMA missed events occurs during the data transferring.  I found the explanation of the DMA missed events, 

 /** Channel Controller has reported an error */

     * DMA missed events:- for all 64 DMA channels.

     * These get latched in the event missed registers (EMR/EMRH).     */

 

By the way, I am using DMA with LLD in the DSP/BIOS on C6474EVM.

 

My questions are:

1. Why this happens? Hardware problem? Is it normal?

2. Does it introduce errors in data transferring?  For my case, although there are DMA missed events, there is no error. 

 

  • This error indicates that you had an EDMA event arrive, but before the transfer controller could respond to that event (i.e. before the data transfer) another of that same event arrived.  I would expect that you are losing data in this scenario.

    My guess would be that you're not using all the transfer controllers.  You are able to map each EDMA channel to one of the queues/TCs.  I believe they all default to TC0 in hardware.  If you didn't map events to any of the other TCs then you would have lots of events queueing up potentially leading to this condition.  So if you had a really huge transfer that might hold off other transfers for a long time.  You need to generally assign channels with short real-time transfers to one of the lower TCs and assign larger transfers to the other TCs.