I saw the firmware which you have attached. I do not see any DMA channel for UART. Can you tell me which endpoint and which channel you are using for UART? I see in the cyfxusbuart file of your project you are having channel from SPI to USB, but I do not see anything related to UART. Also, I see two set of descriptor files in your project. Can you check if you are getting input signals on UART lines. I see there are many changes in the USBUART file which may not be proper. Please use the default USBuart example firmware in the FX3 SDK.
The CDC device, in my project has a different purpose. Even though it registers as an USB-Serial, the data towards the host end point is coming from SPI port (and not from UART). UART is used as normal debug port here.
The descriptor file which is actaully being used is of UVC's.
And, this problem is only occuring in Windows 7. It worked good for me in Linux and Windows 10. However, I am clueless about this problem.
1) I see in your sendSamples function that you are doing a CyU3PDmaChannelGetBuffer from channel "glChHandleCPUtoUSB". I suppose it should be "glChHandleSPItoCPU" as SPI is the producer. Can you check and confirm if this is intentional? Please check and update us.
2) As you say that CyU3PDmaChannelGetBuffer has timed out, this means that the handle does not have any data. Please check the source of data. I see that you are continuously calling this GetBuffer API and waiting for 1000ms to get the buffer available. But, abetter way can be to call this function when the buffer is full .This can be done by setting a manual channel and in the DMA callback you can call the GetBuffer API.