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.

Edma failing but not error flags set

 

Hi,

I am using dm4637 and I am customizing a third party application. I have a task what I am doing the following process:

-Configurating EDMA to serve SPI/McBSP0
-Set a pin to high level to indicate to another device to start sending bytes to DM6435

The thing is that if I set priority of this task to medium, EDMA is not able to serve SPI properly but if I set to low it does, it really works well (ocasionally after some time of execution it fails). I am thinking that when I set to medium priority, the task have to 'fight' versus other medium priority tasks of the third party application, and these kind of tasks are using maybe EDMA indirectly (ACPY I think, not sure 100% due to the application is quite large). BUT my questions is, if the problem is about getting EDMA resources, and my task can get them, shouldn't be some flags setted in my EDMA channel? I think I should see EMR (event missed register) set or at least ER (event register) set (although EDMA was not able to serve it properly the event should be registered, shouldn't be?).

 

Do you have any idea about this?

 

 

  • Are you talking about DSP/BIOS TSK priority? If you set the task priority higher, will it work, or is it only when the priority is lower?

    I think ACPY uses QDMA, but there could still be conflicts.

    Your third-party application should provide information on exactly which resources it uses so that you can avoid those channels and PARAM entries and such.

    EMR will be set if an event occurs but the assigned PARAM is NULL.

    I think you need to look at how the EDMA resources behave differently between the two task priority settings. You have a lot of debug work ahead of you. The application's documentation should help you, if they intend customizations to be done.