Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
This Document is not yet Rated  Rate this Document

Why do I see Spurious Returns when using multiple Wait on IRQ Nodes on VxWorks Real Time Targets?

Primary Software: Driver Software>>NI-RIO
Primary Software Version: 2.3
Primary Software Fixed Version: N/A
Secondary Software: N/A
Hardware: CompactRIO>>Controllers>>cRIO-9012, CompactRIO>>Controllers>>cRIO-9014

Problem:
NI-RIO 2.3 with LabVIEW 8.5 supports multiple Wait on IRQ nodes in a single VI, however, I see spurious returns from the "Wait on IRQ" Method Node when using cRIO-901x Controllers. This does not occur on my cRIO-900x Controllers or any other Pharlap based Real-Time controller. Why does this occur?

Solution:
In LabVIEW 8.2 and earlier, a host interface VI could contain only one Wait on IRQ node. NI-RIO 2.3 with LabVIEW 8.5 supports multiple Wait on IRQ nodes in a single VI. However, if an application is using multiple "wait on IRQ" nodes, and getting time-outs, occasionally you may see "Wait on IRQ" nodes wake up when other nodes get signalled. Another characterization of the problem is that if you have more than one "Wait on IRQ" node, and they are waiting on different IRQs, if one times out, you may see a spurious IRQ on another node when the IRQ that timed out finally fires. The following sequence is what can cause a spurious return:

Task A waits on IRQ X, and times out one or multiple times
Task A waits on IRQ Y
IRQ X fires, waking Task A despite it being on a different IRQ.

This behavior will only occur on VxWorks based targets.  This issue was fixed in NI-RIO 2.3.1. 

Related Links: KnowledgeBase 4E2GSKLX: List of Bug Fixes for NI-RIO 2.3.1

Attachments:





Report Date: 08/15/2007
Last Updated: 02/08/2008
Document ID: 4CEFMFLX

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit