You are here

DMA buffer size | Cypress Semiconductor

DMA buffer size

Summary: 2 Replies, Latest post by Garyio on 12 Sep 2012 04:38 PM PDT
Verified Answers: 0
Last post
Log in to post new comments.
Ayi's picture
31 posts

With usb 3.0 mode .   dmaSlFifoConfig.size = size * 16; it  doesn't work ,the size is 1024 .But if change to       dmaSlFifoConfig.size = size/2; it works but the speed only 8M around .how can i solve the problem ,I am hurry it .

develop with sdk v1.2 . 

 /* Create a DMA MANUAL Channel between P-port producer socket and U-port consumer socket */

            //dmaSlFifoConfig.size = size  * 16;

            dmaSlFifoConfig.size = size;

            dmaSlFifoConfig.count = CY_FX_SLFIFO_DMA_BUF_COUNT;

            dmaSlFifoConfig.prodSckId = (CyU3PDmaSocketId_t)(CY_FX_EP_PRODUCER_PPORT_SOCKET);

            dmaSlFifoConfig.consSckId = (CyU3PDmaSocketId_t)(CY_U3P_UIB_SOCKET_CONS_0 | CY_FX_EP_CONSUMER_USB_SOCKET);

            dmaSlFifoConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;

            dmaSlFifoConfig.notification = 0;//CY_U3P_DMA_CB_PROD_EVENT;

//            dmaSlFifoConfig.cb = CyFxSlFifoPtoUDmaCallback

            dmaSlFifoConfig.cb = NULL;

            dmaSlFifoConfig.prodHeader = 0;

            dmaSlFifoConfig.prodFooter = 0;

            dmaSlFifoConfig.consHeader = 0;

            dmaSlFifoConfig.prodAvailCount = 0;

            /* Create the channel */

            apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoPtoU,



rskv's picture
Cypress Employee
1134 posts
Garyio's picture
9 posts



I don't think the answer to this question is in "". I have this same problem and I did what it says in the 68090 post and it did not solve the problem. I am using the SDK V1.2 and when I attempt to setup a Multi Channel DMA with size of 1024 and count of 16 I get a MEMORY error. This has nothing to do with cacheing but something to do with memory allocation. Does anyone have any help for this issue?

Log in to post new comments.