Archived: LabVIEW Embedded Module for ARM Microcontrollers 1.1 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 Embedded Module for ARM Microcontrollers 1.1 known issues that were discovered before and since the release of the Embedded Module for ARM Microcontrollers 1.1. 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 Embedded Module for ARM Microcontrollers 1.1.

 General Known Issues
ID Known Issue
130687 If you place a checkmark in the Generate C function calls checkbox on the Application Information page of the Build Specification Properties dialog box, the application crashes.
130929 The following combinations of settings in the Application Information page of the Build Specification Properties dialog box cause generated code to crash or cause compiler or run-time errors:
  • Selecting VI initialization from the Allocate constants pull-down menu and Out of scope from the Deallocate constants pull-down menu.
  • Selecting Application initialization from the Allocate constants pull-down menu and Out of scope from the Deallocate constants pull-down menu.
  • Selecting Application initialization from the Allocate constants pull-down menu and VI end from the Deallocate constants pull-down menu.
123244 The Embedded Module for ARM Microcontrollers does not appear in the license status or splash screens.
It is not possible to close a listen socket and release the socket's resources. Closing the socket only performs a TCP disconnect. This is a known behavior of the RLM TCP stack.
44734 You cannot use strings in VIs you create to handle interrupts. In addition, interrupt handler VIs do not support array operations that use dynamic memory. If you use a VI or function in an interrupt handler VI that interrupt handler VIs do not support, you will receive an Invalid Context error when you try to build.
Sometimes you might receive a dialog box telling you that quitting LabVIEW will abort all running VIs, even though no VIs appear to be running. You can click the OK button to close this dialog box.
102464 The Show Code item in the shortcut menu, available when you right-click a block diagram item during OCDI debugging, does not work.
106635 If you abort an ARM application while a Simulate IO VI is running, the STOP button on the front panel of the Simulate IO VI does not stop the Simulate IO VI. Click the Abort button to stop the Simulate IO VI. The next time you try to run the Simulate IO VI, the VI runs and then stops. Click the Run button again and the Simulate IO VI runs normally.
107754 You cannot add Elemental I/O items to the Project Explorer window if you create a project using the Create New ARM Project wizard and then drop an Elemental I/O Node on the block diagram before interacting with the target in the Project Explorer window.

Workaround—Save and close the project. When you reopen the project, right-click the target in the Project Explorer window and select New»Elemental I/O from the shortcut menu to add Elemental I/O items to the project. Then right-click the item in the Elemental I/O Node on the block diagram and select Select Elemental I/O»xxx from the shortcut menu, where xxx is the type of Elemental I/O you want to add.
Comparing cluster aggregates that contain fixed point numbers of different sizes do not work.
4G5CTHBR When you create a target for a generic processor, the Interrupt Service Manager might not correctly configure the interrupts. If you do not explicitly specify the microcontroller in the General page of the Target Properties dialog box, then the interrupt list on the Manage Interrupts page of the Build Specification Properties dialog box is empty.

Workaround—Right-click the microcontroller target in the Project Explorer window and select Properties from the shortcut menu. Click the Target processor pull-down menu and select the microcontroller, even if the correct microcontroller target is already listed.
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 ARM applications, sometimes front panel controls and indicators do not update properly when you use the JTAG/non-instrumented debugging mode.

Workaround—Set breakpoints on the wires to the controls or indicators you are debugging.
Probes on time stamps do not work with non-instrumented (JTAG) debugging.
The Embedded Module for ARM Microcontrollers 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 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.
When you use time stamp constants or controls to enter time stamps on the host PC, the time zone of the host machine is used, but time stamps print out in GMT. This is because ARM targets do not support time zones, so time stamps are always considered GMT, regardless of the time stamp on the host PC.
MathScript is unsupported on embedded targets.
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
  • Serial I/O
Indicators represented as double data types do not update for integer values. Change the representation of the indicator by right-clicking the indicator, selecting Representation from the shortcut menu, and selecting a different data type.
A linker error occurs if you include an external C file in a project and the external C file has the same name as a VI in the same project.
If you flatten data that contains an extended precision or complex precision floating-point data type, the flattened data is incompatible with any other LabVIEW version or add-on except the Embedded Module for ARM Microcontrollers.
Any binary operation involving a dynamic data type and a non-scalar non-dynamic data type, such as a 1D array, does not work correctly.
When you create a VI that uses multiple global variables, do not copy controls from one global variable to another global variable. If you copy and paste global variables, you receive an error when you try to build the VI into an application.
ARM 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.
 Windows Vista Known Issues
ID Known Issue
The Embedded Module for ARM Microcontrollers does not run on the Windows Vista x64 Edition, the 64-bit version of the operating system.
 VIs, Functions, and Structures Known Issues
ID Known Issue
130413 If a VI uses the Format Into String function and you remove the checkmark from the Generate guard code checkbox on the Application Information page of the Build Specification Properties dialog box, the VI crashes.
103664 The EKLM3S8962 Display VIs do not include a VI to clear the display.

Workaround—You can clear the screen by using EKLM3S8962 Display Set Foreground VI and EKLM3S8962 Display Draw Rect VI. Set the color input of the EKLM3S8962 Display Set Foreground VI to match the background color. Then set the filled input of the EKLM3S8962 Display Draw Rect VI to TRUE and draw a rectangle the size of the whole display.
106561 The template VIs for creating custom Elemental I/O are located in the labview\Targets\NI\Embedded\eio\simulatedIOPlugins directory.
You cannot open and update the front panel of a subVI within a Timed Loop. Updating the front panel of a subVI within a Timed Loop can cause LabVIEW to crash.

Workaround—Place the subVI in a While Loop.
If a VI contains a Timed Loop without at least one While Loop running in parallel, the VI uses 100% of the processor.

Workaround—Place a While Loop containing a Wait (ms) function, or something similar, in the VI outside of the Timed Loop.
102752 The maximum combined total of Timed Loops and asynchronous Call Library Nodes that ARM applications can run simultaneously is sixteen.
ARM targets do not support port 0 with UDP communication. The port output for the UDP Open function always returns 0. Do not wire the port output to other VIs or functions.

Workaround—Wire the port input to the UDP Open function and to the next VI or function in the diagram to maintain the proper port specification.
4H3A5KX1 Using the Bessel Filter VI causes compiler errors in the generated code.
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.
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.
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.
38853 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 ARM VIs.
Dynamic Add/Remove Signals is unsupported.
You must use strict C code in Formula Nodes you use in ARM VIs. However, LabVIEW does not check the C syntax in the Formula Node syntax while in edit mode. If you build a VI into an ARM 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 ARM VIs because maintaining state in local variables between calls to a subVI is not supported.
 Building VIs into Applications Known Issues
ID Known Issue
128561 The Inline subVI code generation option is unsupported if your project contains XNodes or if the VI was implemented using a C function call. VIs that are implemented using a C function call contain a comment on the block diagram of the VI.
128499 You receive a compiler error if you use UNC file paths.

Workaround—Use a non-UNC file path.
121512 If you are using JTAG debugging, the Optimization setting on the Advanced Compiling Options page is ignored. JTAG debugging always uses Level 0 (-O0).
You cannot build an empty VI with debugging information.
102393 If you move an ARM project between computers, make sure the directory path to LabVIEW is the same on both computers. If the Embedded Module for ARM Microcontrollers is installed in different locations on the computers, you receive a build error, PRJ_ADD_FILE.
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.
 Debugging Known Issues
ID Known Issue
126860 (EK-LM3S8962) LabVIEW fails to connect to the target if you are using serial debugging.
106785 If you use OCDI debugging, the Pause button is ignored.

Workaround—Use instrumented debugging.
107189 Profiling is limited to to a millisecond resolution.

Workaround—To profile nodes faster than 1 millisecond, put the nodes in a loop and look at how long it takes the whole loop to run.
127523 Breakpoints might be ignored depending on the speed of your computer.

Workaround—Pause the execution before setting breakpoints.
You cannot debug global variables.

Workaround—Probe the wires coming into or out of the global variable.
59134 Controls that can update with continuous values, such as knobs and sliders, might not synchronize correctly. For example, if you wire an indicator to a knob and move the knob to a value, the indicator might not show the value of the knob.

Workaround—Use controls the require discrete values, such as Numeric controls.
40485 If you single-step through an ARM VI and step into an Elemental I/O Node, you will see ghost images of nodes on the block diagram.

Workaround—Set a breakpoint after the Elemental I/O Node and then single-step through the block diagram.
Debugging reentrant VIs is not supported.
 Documentation Known Issues
ID Known Issue
97051 Pressing the <ESC> key in the Build Error dialog box displays the Error Details dialog box.
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).
The ARM VIs reference topics in the LabVIEW Help do not contain the Place on the block diagram or the Find on the Functions palette buttons.
ARM-specific VIs do not contain the Open example buttons. ARM-specific examples are available in the LabVIEW\examples\arm directory. Open the .lvproj file to open the project and the example ARM VI.

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).