Hello, I use GPIF state machine to transfer a sector (512 byte) when I start state machine every time. I set a PIB to USB DMA channel, and set 16 buffers, and every buffer is 1024KB. When I need to transfer more than 1 sector, I need to start state machine more than one time. However when after I start two times transaction, there emerges an error: “CYU3P_PIB_ERR_THR0_WR_OVERRUN” or “Write to DMA data thread which is not ready.” The picture is my GPIF state machine. I doubt that when I start a transaction, the old buffer is full, and the next buffer is not ready. And I set CyU3PBusyWait() to wait for the previous transaction been finished, But it is not work. I want to know why, and how to solve the problem.
Thank you and Best Regards!
|