LabVIEW Embedded Development Module 2.0.1 Readme
February 2007
This file contains known issues about the LabVIEW Embedded Development Module 2.0.1.
Refer to the LabVIEW 8.2.1 Readme, available by selecting Start»All Programs»National Instruments»LabVIEW 8.2»Readme and opening readme.html, for LabVIEW known issues.
Changes from 2.0
General Known Issues
Documentation Known Issues
Additional Resources
LabVIEW Embedded Development Module 2.0 Readme
- A linker error no longer occurs if you include an external C file in an embedded project and the external C file has the same name as a VI in the same project.
- The Format Into String function no longer fails with strings containing embedded nulls.
- If you are upgrading to LabVIEW 8.2.1, the Embedded Development Module 2.0.1, and the Embedded Module for Blackfin Processors 2.0, you must uninstall and install the components in the following order:
- Uninstall the Embedded Development Module 2.0.
- Install LabVIEW 8.2.1.
- Install the Embedded Development Module 8.2.1.
- Install the Embedded Module for Blackfin Processors 2.0.
Failure to follow these steps could result in missing files. If this happens, you can resolve the issue by repairing the NI LabVIEW 8.2.1 Embedded Support installation in Add or Remove Programs.
- To port the LabVIEW Analysis library, you must have a C++ compiler that supports the C++ Standard Template Library (STL).
- You must set the projectDebugPumpOSMsgs LabVIEW INI token to TRUE to debug plug-in VIs. LabVIEW.ini is located in the labview directory.
- 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. To resolve this issue, 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.
- Because the default fonts on Windows Vista are different than the default fonts on previous versions of Windows, you might notice cosmetic issues, such as overlapping or truncated text strings, in VIs and LabVIEW dialog boxes. To resolve this issue, change the theme of the operating system to Windows Classic in the Theme Settings dialog box and then restart LabVIEW. Select Start»Control Panel»Appearance and Personalization and click Change the theme to display the Theme Settings dialog box. You might encounter similar cosmetic issues on Windows XP if you use large fonts.
- If you use refnums in a cluster and try to build the embedded VI into an embedded application using the debug mode, you receive a run-time error or LabVIEW crashes. To resolve this issue, build the application using release mode.
- The Fire External Timing Source VI generates an external timing source only once regardless of the value of the count input.
- When you use the Configure Target Syntax dialog box to generate the target syntax XML file, you receive an error if any of the fields in the dialog box contain a file that does not already exist. To resolve this issue, verify all files exist before you generate the target syntax XML file.
- If you wire a cluster or arrays of integer refnums, such as menu refnums, occurrence refnums, and so on, to the number/path/refnum input in the Not A Number/Path/Refnum? function, the NaN/Path/Refnum? Boolean output always returns FALSE.
- The Detailed Help link in the Context Help window does not open the correct topic for the Serial Compatibility VIs and the RT FIFO VIs. To access the help for these VIs, open the LabVIEW Help by selecting Help»Search the LabVIEW Help. Click the Index tab and search for Serial Compatibility VIs and RTFIFO VIs, respectively.
LabVIEW includes extensive online and PDF documentation for new and experienced LabVIEW users. Refer to the Embedded Development Module Documentation section in the LabVIEW Embedded Development Module Release Notes for more information about LabVIEW documentation. Visit the National Instruments Web site at ni.com for a searchable KnowledgeBase, product manuals, step-by-step troubleshooting wizards, thousands of example programs, tutorials, application notes, instrument drivers, and so on.
Some of the additional resources for the Embedded Development Module includes:
- The LabVIEW Embedded Target Development Community provides a place for Embedded Development Module users to upload, share, and download plug-in VIs for various hardware platforms.
- The LabVIEW Embedded Discussion Forum provides a discussion forum for the Embedded Development Module and the Embedded Module for Blackfin Processors.
- DevZone Tutorial: Optimizing LabVIEW Embedded Applications
June 2006
This file contains important last-minute and known issues about the LabVIEW Embedded Development Module 2.0.
Refer to the LabVIEW 8.2 Readme, available by selecting Start»All Programs»National Instruments»LabVIEW 8.2»Readme and opening readme.html, for LabVIEW known issues.
General Known Issues
VIs and Functions Known Issues
Timed Loops Known Issues
Example Target Known Issues
Debugging Known Issues
Automated Embedded Tests Known Issues
Target Syntax Checking Known Issues
VxWorks Known Issues
Documentation Issues
- The Localization Codes syntax elements for format specifiers are unsupported for embedded targets.
- Combo box controls that use the string data type are unsupported.
- 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.
- If you wire an array to an Inline C Node and set the Generate serial only and Generate C Function Calls build options, the generated C code cannot build.
- Embedded 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.
- Building 2D arrays using index tunnels is unsupported for embedded targets that use static memory allocation.
- Indicators that contain variant data do not update on the front panel. To resolve this issue, use a probe on the block diagram to see the data.
- 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. To resolve this issue, change the name of the variables to something else.
- MathScript is unsupported on embedded targets.
- 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. To resolve this issue, 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.
- Multi-dimensional arrays do not work with Formula Nodes. To correct this problem, you can 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. To resolve this issue, 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. To resolve this issue, turn off debugging or use a Timed Loop and update the Period terminal from within the Timed Loop.
- Elemental I/O Property Nodes are either read or write. If your users need a Property Node that is both read and write, you can complete the following steps to enable that functionality:
- Create a Property Node Implementation VI that has the property as a control.
- Create another Property Node Implementation VI that has the property as an indicator.
- In the Elemental I/O Device Wizard, add the implementation VIs to your Elemental I/O device. The Elemental I/O Device Wizard generates an eio.xml file.
- Edit the eio.xml file, which is located in the directory you specify in the wizard, in a text or XML editor. The eio.xml file contains both properties—one as an in and one as an out. Change the in and out to either.
- Save and close the eio.xml file.
- Call Library Nodes do not check the error in input before executing, which means a Call Library Node executes even if there is a previous error.
- Expression Node inputs must be scalar values. You cannot use arrays or clusters as inputs to an Expression Node in an embedded VI.
- The File I/O functions are implemented only for the Windows Console Application and Unix Console (cygwin) example targets. You receive link errors if you use the File I/O functions with any of the other example targets.
- The Format Into String function does not support complex numbers.
- 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.
- The Draw Text at Point VI and the Get Text Rect VIs are unsupported in embedded VIs.
- The following Express VIs do not function correctly in embedded VIs because maintaining state in front panel variables between calls to a subVI is not supported:
- Delay Values
- Trigger and Gate
- The Generate Occurrence function in embedded VIs generates a new occurrence in each iteration, which is different than LabVIEW for Windows. The Generate Occurrence function in desktop VIs generates the same occurrence in each iteration.
- If your OS does not support time resolution at the fractional level, the fractional part of a timestamp is always zero, which means a timestamp in an embedded VI is rounded to the next lower integer. The effect of this behavior is that the Round to Nearest and Round to -Infinity functions produce the same output on timestamps.
- The Open Application Reference function contains a memory leak if you leave the machine name input in the Open Application Reference function unwired and the AsyncOpenAppRef=1 macro is defined.
- The Call Chain function cannot be used with Timed Loops, including any VIs called from within the Timed Loop.
- The Timed Loop introduces threads to the generated C code. However, the following parts of LabVIEW are not thread-safe:
- Local and global variables
- Data types that use reference numbers (refnums)
- VI Server
- Queues and notifiers—Use the RT FIFO VIs to pass data between Timed Loops instead
- File I/O
- Serial I/O
- Elemental I/O between different classes (You can have one thread just for analog and a thread just for digital)
- The Axiom CMD565, VxWorks RAM Image example target you can use with OCDI debugging does not contain support for CAN.
- The Advanced Analysis libraries for the Windows Console Application example target, which includes 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.
- Probes and front panel updates do not work with the Unix Console example target if you are debugging using LabVIEW and Eclipse.
- 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. 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 with the OnChip (Release) build setting. 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 the 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.
- To get the CCGVIRefSupport_coverage_Test and LVTdp_coverage_Test embedded tests to pass, you must set the following options in the Options dialog box:
- VI Server: Configuration Options Page—Under Protocols, place a checkmark in the TCP/IP checkbox.
- VI Server: TCP/IP Access Options Page—Allow access by entering localhost or * in the Host text box and clicking the Add button.
- Target syntax checking might not happen until you edit an embedded VI.
- Target syntax checking does not work on data types inside of clusters.
- To use the Embedded CAN VIs, you must define the CANSupport compiler directive to be 1 and you must 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.
- The Help button in the Add/Remove Headers dialog box does not open the correct help topic. To resolve this issue, select Add/Remove Headers dialog box (Embedded Targets) on the Index tab in the LabVIEW Help.
- The LabVIEW Help incorrectly states in the Events Tab topic that you right-click a target in the Target Editor and select Properties from the shortcut menu to open the Build Specification Type Properties dialog box. You right-click a build specification type in the Target Editor and select Properties from the shortcut menu to open the Build Specification Type Properties dialog box.
- The LabVIEW Help incorrectly shows the refnum input in the Unregister Interrupt Service Routine VI and the refnum output in the Register Interrupt Service Routine VI as a 32-bit unsigned integer numeric. The correct data type is a 32-bit signed integer numeric.
Copyright
© 2006–2007 National Instruments Corporation. All rights reserved.
Under the copyright laws, this publication may not be reproduced or transmitted in any form, electronic or mechanical, including photocopying, recording, storing in an information retrieval system, or translating, in whole or in part, without the prior written consent of National Instruments Corporation.
Trademarks
National Instruments, NI, ni.com, and LabVIEW are trademarks of National Instruments Corporation. Refer to the Terms of Use section on ni.com/legal for more information about National Instruments trademarks.
Other product and company names mentioned herein are trademarks or trade names of their respective companies.
Patents
For patents covering the National Instruments products, refer to the appropriate location: Help»Patents in your software, the patents.txt file on your CD, or ni.com/patents.