Why Do I See Spurious Returns When Using Multiple Wait on IRQ Nodes on VxWorks Real Time Targets?Primary Software: Driver Software>>NI-RIOPrimary Software Version: N/A Primary Software Fixed Version: N/A Secondary Software: N/A Hardware: CompactRIO>>Controllers>>cRIO-9012, CompactRIO>>Controllers>>cRIO-9014
Problem: The NI-RIO 2.3 driver with LabVIEW 8.5 supports multiple Wait on IRQ nodes in a single VI. Unfortunately, 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. The upgrade to 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, you may occasionally see Wait on IRQ nodes wake up when other nodes get signaled. Another characterization of the problem is when you have multiple Wait on IRQ nodes 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: 11/07/2008 Document ID: 4CEFMFLX |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
