Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Multithreading

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Multithreading
Moderator:
RSKV

Post Reply
Follow this topic



Multithreading

Sil posted on 28 Aug 2012 6:08 AM PST
Top Contributor
93 Forum Posts

Hi

 

Is it possible to have two threads running on the host computer that are communicating to the same FX3 device but use different endpoints?

 

-Sil




Re: Multithreading

RSKV posted on 28 Aug 2012 06:57 AM PST
Cypress Employee
655 Forum Posts

Hi Sil,

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.

Regards,

sai krishna.



Re: Multithreading

Sil posted on 30 Aug 2012 02:08 AM PST
Top Contributor
93 Forum Posts

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.

 

-Sil



Re: Multithreading

RSKV posted on 30 Aug 2012 04:28 AM PST
Cypress Employee
655 Forum Posts

Yes. You can do that.



Re: Multithreading

Sil posted on 14 Sep 2012 04:36 AM PST
Top Contributor
93 Forum Posts

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?






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.