Forum Discussion
Altera_Forum
Honored Contributor
21 years agoHi there,
I've used interrupt driven DMAs in my uCOS application, however to get around the problem of the hardware finishing the DMA whilst i'm still servicing the previous interrupt I normally use a uCOS semaphore. That way you set the DMA running in a normal piece of code (i.e. a task), and then when it completes call the dmaDone function which sets the semaphore. This frees the held task which handles servicing the DMA and starting a new DMA. Obviously your latency is higher in this case but probably won't be a problem since you are using uCOS and your latency is going to be a bit higher anwyways. Regards, .....