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.

2D QDMA on DM647

I'm triggering 2D QDMAs on a DM647 using the EDMA3 LLD.  It seems to be working, but in the completion routine which is specified in EDMA3_DRV_requestChannel() routine, I'm getting a lot of EDMA3_RM_E_CC_QDMA_EVT_MISS errors.  Is this something I should expect with 2D transfers, or is this an indication that's something's wrong?

Thanks

  • I don't believe it has anything to do with being a 2D transfer.  Here's a snippet from the EDMA User Guide discussing missed events:

    spruel2b.pdf said:

    If an event is being processed (prioritized or is in the event queue) and another sync event is received for
    the same channel prior to the original being cleared (ER.En != 0), then the second event is registered as a
    missed event in the corresponding bit of the event missed register (EMR.En = 1).

    So in other words if you submit more than 1 of these QDMA requests at a time then you stand a pretty good chance of seeing this error.  If you wished to avoid this error a couple things come to mind:

    • Always wait for the previous transfer to complete before triggering another transfer.  This can be optimized a bit by using "early completion" which gives the interrupt once it has been submitted to the transfer controller.
    • Make use of more than one queue.  Depending on how many transfers you kick off at a time you might need to combine this with the first suggestion.

    Is this behavior actually causing any problems, e.g. additional interrupt overhead, etc., or is this just a status bit set somewhere that you happened to notice?

     

  • Thanks.  Your quote from the documentation is what I was looking for: an explanation of when you will receive this notification.  Fortunately I have been able to track the source of the problem down to reusing a channel when I should not.

    Thanks again,