Is it possible to have two threads running on the host computer that are communicating to the same FX3 device but use different endpoints?
What exactly is your application requirement?
I have one application that does data transfers on EP0 from the main() and IN data transfers on EP2 from a seperate thread. Both data paths are active all the time. But EP0 transfers happen at a lesser frequency.
I have two bulk endpoints, one sending large amount of upstream data (more than 100 MB/s), the second is used to send and receive data to the I2C interface (400 kBit/s).
Cypress should be able to tell us based on the CyApi design if this is supported or not rather than saying that is was working in some applications.
Yes. You can do that.
But it does not work reliably: Sometimes when accessing from one thread to its assigned endpoints the other thread crashes with in function XferData() with the following debug message:
"Unhandled exception at 0x000007fef8f03a39: Access violation reading location 0xffffffffffffffff."
Both threads are only accessing their assigned endpoints. Has somebody thoroughly tested this and found it working?