Consider the following situation:
I have two tasks of equal priority, each needs to do QDMA transfers. They both start out blocked by a semaphore and then task1 gets unblocked by an external event, in this case a notification from syslink. Task1 starts up its QDMA. Soon after, before task1 is done, task2 receives a notification and is unblocked. Task1 is suspended and task2 starts up, but task2 cannot startup its QDMA as the edma3init() returns an error (-128). Apparently the EDMA3 LLD is not thread safe. How should this situatioon be dealt with? Is there a way to suspend all other tasks while task1 does its DMA?
Lee Holeva