Hello cypress community,
I'm using Fx3 for my product development.
I have 2 versions of Src Codes : 1. with Library 1.3.3 version, 2 with library 1.3.4 version
I've a total of 3 threads running
1. USB Rx thread -> which will be triggered when respective USBevent is set when USB bulk out data is received .
2. Timer thread
3. GPIO therad that will be awake when an GPIOevent is set when respective GPIO gets triggered.
Now My sequence goes like this -> I send USB data on Bulk-out endpoint so that some events will get triggered and threads wokeup as expected and the data will be handled as required. I can do this exercise seamlessly without any issues using 1.3.3 library, but If I use 1.3.4 Library source code I see that USB Rx event is not being set and therefore Fx3 is not able to get any data over BULK-out endpoint.
This weird behavior happens everytime when I use 1.3.4 library, and try to send data continuously within ~1 sec frequency.
Is this expected (i believe not), Can I know the differences with two libraries that can cause this sort of behavior. I have gone through release notes of 1.3.4 library but unable to find any relevant information.
I say that events are not triggered based on the logs that I implemented in FW.
will be waiting for your responses.
Thanks and regards,
Solved! Go to Solution.
1. Please check return status of CyU3PEventSet() in CyFxIntrSrcSinkDmaCallback() and check if it is failing when you see the issue.
2. In the CyFxIntrSrcSinkDmaCallback, you use the log - DEBUG_LOG(DBG1, 0xEB, 0x00);
Instead of hardcoding to 0xEB, please make it as a variable and increment the variable value for each log? Similarly, in USB_DataRxHandlerThread_Entry, as soon as CyU3PEventGet is successful (irrespective of the if-condition), perform the logging with a variable incrementing each time.
This way it can be clear that event is really set and not got in the thread.
3. We have not seen such issue before.
Please try to share a firmware that we can test on FX3 explorer kit for reproducing the issue.