OK To DMA Directly To Queue Memory?

rtel wrote on Friday, October 19, 2012:

Hello All,
Probably been discussed before - but - is it ‘OK’ to DMA directly to a Queue? Or is this a no-no?
Thanks,
John W.

Reply
Link
Edit
Delete
Attach

Richard Damon
2 days ago
What address would you point the DMA to? The handle points to the control structure, which is opaque to user code. Even if you had the pointers there is no way to indicate that a block of memory is in the process of having data filled, it is either empty, and subject to being written to by someone inserting data, or is full and subject to being read.
I suppose you could copy the queue code and replace the memory copy with an immediate dma transfer that would be “instantaneous” (i.e. all data is sitting in a device buffer, and just using DMA to place it into the queue instead of copying the data from a normal memory buffer.

rtel wrote on Friday, October 19, 2012:

The above was lost when the forum reverted back to the old software, so I have manually added it in a single post for reference here.