- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm using GPIF-II and Bulk-IN transfer with auto-type DMA, infinite size, like this:
CyU3PDmaChannelCreate (&DmaChannel, CY_U3P_DMA_TYPE_AUTO, &DMACfg);
CyU3PDmaChannelSetXfer(&DmaChannel, 0);
Then, when I stop DMA with CyU3PDmaChannelAbort(), CyU3PDmaChannelReset(), or CyU3PDmaChannelDestroy(),
sometimes these APIs hung up, not return from function.
(It occurs in SuperSpeed only, I have looked...)
How can I stop DMA safely?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can stop DMA safely using
CyU3PDmaChannelReset() and CyU3PDmaChannelDestroy().
Also if you want to flush the EP then you need to use CyU3PUsbFlushEp.
This is what we have used so far and it is working fine for us.
Thanks,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If it is not working still then please create a Technical support case by attaching your project code.
Our guys will look into it.
Thanks,
sai krishna.