Archived: LabVIEW 8.6 Microprocessor SDK Known Issues

NI does not actively maintain this document.

This content provides support for older products and technology, so you may notice outdated links or obsolete information about operating systems or other relevant products.

Overview



This document contains the LabVIEW 8.6 Microprocessor SDK known issues that were discovered before and since the release of the LabVIEW 8.6 Microprocessor SDK. Not every issue known to NI will appear on this list; it is intended to only show the severe and more common issues that can be encountered.

Known Issues

The following items are known issues in the LabVIEW 8.6 Microprocessor SDK.

 General Known Issues
ID
Known Issue
112169
Fixed point controls on Embedded targets support a maximum word length of 32 bits. If you attempt to use a word length longer than 32 bits, you receive a broken Run button and an error message of "Type not supported in current target".
112339
VI refnums inside of variants are unsupported.
114912
Flattening and unflattening the following types of refnums causes run-time crashes: Application, Data Log File, VI, UDP Network Connection, Semaphore, and Analog Waveform and Digital Waveform data types.
117279
The LabVIEW C Generator Test Framework might time out on an automated test even though the built application executes successfully.

Workaround—Run the application outside of the LabVIEW C Generator Test Framework.
Comparing cluster aggregates that contain fixed point numbers of different sizes do not work.
Target syntax checking might not happen until you edit an embedded VI.
Target syntax checking does not work on data types inside of clusters.
Because reading and writing of strings, clusters, and arrays is not synchronized in Microprocessor SDK applications, sometimes front panel controls and indicators do not update properly.

Workaround—Set breakpoints on the wires to the controls or indicators you are debugging.
Building 2D arrays using index tunnels is unsupported for Microprocessor SDK targets that use static memory allocation.
4BCG6400
The Microprocessor SDK does not support creating a source distribution. If you right-click Build Specifications in the Project Explorer window and select New»Source Distribution from the shortcut menu, LabVIEW displays an error message in the Source Distribution Properties dialog box.
You must set the following options in the Options dialog box for the CCGVIRefSupport_coverage_Test and LVTdp_coverage_Test embedded tests to pass:

VI Server: Configuration Options Page—Under Protocols, place a checkmark in the TCP/IP checkbox.
VI Server: Machine Options Page—Allow access by entering localhost or * in the Machine name/address text box and clicking the Add button.
49DARLBR
You can use integer values as inputs to expressions. However, functions that operate on the input use C rounding rules when the input is integer. This means that each function rounds down when returning its value to the rest of the expression. On Windows desktop targets, the functions round to nearest integer instead.
MathScript is unsupported on embedded targets.
44698H30
If you copy and paste global variables, you receive a link error when you try to build the Microprocessor SDK VI into an application.
When you create a VI that uses multiple global variables, do not copy controls from one global variable to another global variable. Controls copied from one global variable to another global variable result in errors when you build the Microprocessor SDK VI into an application.
When a timestamp in a Microprocessor SDK VI is rounded to the nearest integer, the timestamp is always rounded down to the next lowest integer. The effect of this behavior is that the Round to Nearest and Round to -Infinity functions produce the same output on timestamps.
Microprocessor SDK VIs do not support the values of Z, X, or T in digital data controls and digital waveform controls. You can use values of 0, 1, L, and H.
 User Interface Known Issues
ID
Known Issue
114955
Charts draw incorrectly when the number of points on screen exceeds the chart history length.

Workaround—Change the chart history length to accommodate the number of points drawn on the chart before it scrolls.
110828
Decorations do not draw correctly on tab controls.
 VIs, Functions, and Structures Known Issues
ID
Known Issue
111408
When you use the Display Message to User Express VI to display a message to a user, execution of other loops is halted.

Workaround—Use a subVI instead of a dialog box.
49155
Elemental I/O Nodes and Elemental I/O Property Nodes can execute items in the wrong order.

Workaround—Put one I/O operation on each Elemental I/O Node and use error chaining or a Sequence structure to execute the nodes in the desired order. Or, you can show error terminals on the Elemental I/O Node and wire error in and error out to execute the nodes in the desired order.
99491
If you set the ignore previous input on the Wait on Occurrence function to FALSE and a Set Occurrence function is called only one time, the Wait on Occurrence function will continually execute.

Workaround—Always set the ignore previous input to TRUE and delay calling Set Occurrence so it executes while you are blocked on a Wait On Occurrence.
102450
The Equal function does not enforce coercion. Other functions might also have this issue.
4H7C2000
The Escape XML and Unescape XML VIs are unsupported.
If you receive empty dynamic data from functions with two inputs and one output, check to see if you have a dynamic data type wired to one input and an array of scalars wired to the other input.

Workaround—Use the Convert to Dynamic Data Express VI to convert the scalar array to a dynamic data type before you wire the input to the function.
If you set the allow empty tokens? input to TRUE in the Scan String for Tokens function and the string starts with a delimiter, the offset past token output and the token string output contains incorrect values.
Multi-dimensional arrays do not work with Formula Nodes.

Workaround—Use the Inline C Node to obtain a pointer to the first element in the array and do your own index calculations.
If you declare outputs inside of a Formula Node, the Formula Node causes syntax errors in the generated C code.

Workaround—Create an input with the same name and type as the output so you do not have to declare the output inside of a Formula Node.
If you are using instrumented debugging, the Wait Until Next ms Multiple function does not change the timing if the function updates inside of a loop.

Workaround—Turn off debugging or use a Timed Loop and update the Period terminal from within the Timed Loop.
The File I/O functions are implemented only for the Windows Console Application and Unix Console (cygwin) example targets. You receive linker errors if you use the File I/O functions with any of the other example targets.
When you use a #include in an Inline C Node to add a header file, the #include is inserted in the middle of the C file, which can cause problems with scoping.

Workaround—Use the Add/Remove Header Files dialog box to add header files. Adding header files using the Add/Remove Header Files dialog box inserts the code at the top of the generated C file.
Reserved words are used in the generated C code. Using these words as inputs or outputs in an Inline C Node can cause unexpected behavior or the embedded application to crash.

Workaround—Change the name of the variables to something else.
The Call Chain function cannot be used with Timed Loops, including any VIs called from within the Timed Loop.
The Draw Text at Point and the Get Text Rect VIs are unsupported in Microprocessor SDK VIs.
Dynamic Add/Remove Signals is unsupported.
You must use strict C code in Formula Nodes you use in Microprocessor SDK VIs. However, LabVIEW does not check the C syntax in the Formula Node syntax while in edit mode. If you build a VI into a Microprocessor SDK application that contains a Formula Node with non-strict C code, LabVIEW returns a general error.
The Delay Values Express VI and the Trigger and Gate Express VI do not function correctly in Microprocessor SDK VIs because maintaining state in local variables between calls to a subVI is not supported.
 Building VIs into Applications Known Issues
ID
Known Issue
117046
If you use the incremental build option with an application that contains global VIs, you might receive link errors.

Workaround—Leave the front panel windows of the global VIs open you build the VI into an application.
If you try to build an embedded VI that is password-protected into an embedded application, the build fails with syntax errors if you enter the wrong password.
4G4DGC00
You might receive an error that states This property is writable only when the VI is in edit mode, or this method is available only when the VI is in edit mode. This error occurs if the VI is running on the host and you try to build the VI into an application. You must stop the VI on the host before building.
 Debugging Known Issues
ID
Known Issue
The Wind River visionICE emulator can cause a communication error if the target memory is read and the breakpoint event is received at same time. Due to this limitation, it is not possible to step though an embedded application with live front panel updates and probes.

Workaround—Wind River recommends you use Wind River ICE instead of visionICE. The LabVIEW Embedded Development Module has not been tested with Wind River ICE.
The Wind River visionICE emulator supports up to 32 software breakpoints, which prevents single-stepping through an embedded VI that has more than 32 nodes. You receive an error if you attempt to single-step through more than 32 nodes. Do not use LabVIEW's single-stepping feature unless you build the embedded application using the OnChip (Release) debugging mode.

Workaround—Wind River recommends you use Wind River ICE instead of visionICE. The LabVIEW Embedded Development Module has not been tested with Wind River ICE.
If a Linux target and host are different machines, you must build the run-time libraries with TCP_USE_LOCALHOST undefined and pass the IP address of the debugger as a command line argument to the embedded application. If the Linux target and host are the same machine, define TCP_USE_LOCALHOST as 1.
You must set the projectDebugPumpOSMsgs LabVIEW INI token to TRUE to debug plug-in VIs.
If you have multiple active debugging sessions in Eclipse, you might need to select the correct session in Eclipse before you can see the code updating in Eclipse.
Instrumented debugging over a serial connection can lose synchronization because of buffer overflows when front panel updates are too frequent or the data is too large.
48PDDLX1
Debugging reentrant VIs is not supported.
 Example Targets Known Issues
ID
Known Issue
115209
Use the default font on the Unicon example target for better performance. The default font is Helvetica 12 point, which is a bitmap-based font. The other supported fonts are TrueType fonts and are more CPU intensive.
117188
You receive linker errors if you use a Call By Reference Node in VIs on the Windows Console (Code Elimination) example target or any example target that uses source-level deadstripping.

Workaround—Use the Windows Console example target or another target that does not use source-level deadstripping.
115644
The LabVIEW Control Design and Simulation Module supports the following Microprocessor SDK example targets: Windows Console, Unix Console, and Axiom CMD565, eCos.
109394
The Build Specification Properties dialog box for the Unicon example target does not list *.a files as valid additional file type, but *.a files are supported.
110622
LVThreadClose is never called for a thread when a Timed Loop exits, which causes memory leaks on eCos example targets.
115201
The Unicon and Unix UI example targets support the Event structure, but the structure is not on the palettes for those targets. The Event structure is not supported on targets that do not implement user interface support.

Workaround—Move the VI under the My Computer target to access the Event structure on the Functions palette.
94541
The High Resolution build setting for the Unix UI and Unicon example targets is not supported.
The Axiom CMD565, VxWorks RAM Image example target you can use with OCDI debugging does not contain support for CAN.
4ALGPASG
Because of a third-party issue, embedded applications you build with instrumented debugging for the Axiom CMD565 eCos example target can lose characters on the serial port and can cause CRC and run-time errors when debugging. Do not use dial and slider controls with front panel updates on this target because they generate heavy traffic on the serial port and can cause these errors.
The Advanced Analysis libraries for the Windows Console Application example target, which include lv_analysisd.lib, lv_analysis.lib, LabVIEWD.lib, and LabVIEW.lib, were compiled with Microsoft Visual Studio 6.0. You might need to rebuild those libraries if you are using a different version of Visual Studio.
4AEFLN00
gcc version 4.1 from CodeSourcery generates invalid code for floating-point math at extremes +Inf, -Inf, and NaN This issue is fixed in gcc version 4.2. Refer to http://gcc.gnu.org/ml/gcc-bugs/2006-12/msg00441.html for more information. This invalid code results in overflow/underflow conditions, which causes the following tests to fail on the ColdFire example target:
arr-drv2 - Fail (Test 'thresh sgl': Failed, Test 'thresh sgl 2': Failed)
cmplx - Fail (Test 'prod128': Failed, Test 'sum64': Failed, Test 'sum128': Failed)
cmplx2 - Fail (Test 'eq-neq-csg': Failed, Test 'nan-csg': Failed)
func2 - Fail (Test '0TestInc': Failed, Test '0TestMul': Failed)
unary - Fail (Test 'int32': Failed, Test 'sgl': Failed, Test 'sgl 2': Failed)
4AEFLN00
gcc for ColdFire follows the C90 standard, which means a signed integer is represented on 32 bits. The maximum negative value is -2147483648. The maximum positive value is -2147483647. The absolute value for the maximum negative value is coerced to the maximum positive value, which causes the following tests to fail when testing these limit conditions on the ColdFire example target:
func2 - Fail (Test '0TestInc': Failed, Test '0TestMul': Failed)
func3 - Fail (Test '0TestSign': Failed)
unary - Fail (Test 'int32': Failed, Test 'sgl': Failed, Test 'sgl 2': Failed)
4AEFLN00
The Linux kernel crashes when using the timer for Timed Loops, which causes the following test to fail on the ColdFire example target:
kernel - Fail (kernel BUG at kernel/posix-cpu-timers.c:1292! Kernel panic - not syncing: BUG!)
4AEFLN00
gcc version 4.1 from CodeSourcery limits the application size to 1 MB. Refer to http://www.codesourcery.com/archives/coldfire-gnu-discuss/msg00022.html for more information. This limit causes the following test to fail on the ColdFire example target:
func2 - memory allocation error if used with parallel code)
 Example Toolchains Known Issues
ID
Known Issue
95655
Code execution continues to stop in Eclipse as if you set a breakpoint and then remove the breakpoint.

Workaround—Click Resume in Eclipse.
To use the Embedded CAN VIs, you must define the CANSupport compiler directive to be 1 and have a VxWorks image that has wnCAN support linked in.
VxWorks builds do not work with network paths.
A gcc compiler bug causes numerous alignment problems with clusters containing a mixture of double-precision, floating-point numerics and other data types when you run embedded applications on the VxWorks Simulator.
4BF98JVQ
Eclipse does not support Vista in versions prior to 3.2.2, which is compatible with version 3.2.1 referred to in the IDE Integration documentation. Also, use CDT SDK version 3.1.2 with Vista, which is compatible with version 3.1.1.
 Documentation Known Issues
ID
Known Issue
109490
The LEP_Utilities_GetSetProjectData VI contains a new input for the Variant polymorphic instance. Is Persistent indicates whether date is saved permanently in the project file. This input is optional and TRUE by default.
112224
You can run the automated tests from a command line using the following command: LabVIEW.exe LEP_AutoTest_RunAll.vi -- LEP_Autotest.ini.
The LabVIEW Microprocessor SDK Target Distribution Guide is named the LabVIEW Embedded Development Module Target Distribution Guide, which is the former name of this SDK.
4BPCFOWD
The Detailed Help link in the Context Help window does not open the correct topic for the Inline C Node.

Workaround—Open the LabVIEW Help by selecting Help»Search the LabVIEW Help. Click the Index tab and select Inline C Node.
The Help button in the Add/Remove Headers dialog box does not open the correct help topic.

Workaround—Open the LabVIEW Help by selecting Help»Search the LabVIEW Help. Click the Index tab and select Add/Remove Headers dialog box (Embedded Targets, PDA, TPC).
4AIEH2WD
The Microprocessor SDK VIs reference topics in the LabVIEW Help do not contain the Place on the block diagram or the Find on the Functions palette buttons.

 

Glossary of Terms

 

  • Bug ID - When an issue is reported to NI, you may be given this ID or find it on ni.com.  You may also find IDs posted by NI on the discussion forums or in KnowledgeBase articles.
  • Legacy ID – An older issue ID that refers to the same issue.  You may instead find this issue ID in older known issues documents.
  • Description - A few sentences which describe the problem. The brief description given does not necessarily describe the problem in full detail.
  • Workaround - Possible ways to work around the problem.
  • Reported Version - The earliest version in which the issue was reported.
  • Resolved Version - Version in which the issue was resolved or was no longer applicable. "N/A" indicates that the issue has not been resolved.
  • Date Added - The date the issue was added to the document (not the reported date).