Archived: LabVIEW Embedded Module for ARM Microcontrollers 1.0 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 has been archived and is no longer updated by National Instruments.

This document contains the Embedded Module for ARM Microcontrollers 1.0 known issues that were discovered before and since the release of the Embedded Module for ARM Microcontrollers 1.0. 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.0.

 Installation Known Issues
IDKnown Issue
Do not install the LabVIEW Microprocessor SDK 8.5.1 software after you install the Embedded Module for ARM Microcontrollers. If you install the LabVIEW Microprocessor SDK 8.5.1 software after you install the Embedded Module for ARM Microcontrollers, you will not be able to build ARM applications.
 General Known Issues
IDKnown Issue
44734You 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.
102464The Show Code item in the shortcut menu, available when you right-click a block diagram item during OCDI debugging, does not work.
The blue right-arrow button on the Manage Interrupts page of the Build Specification Properties dialog box is grayed out after you select a VI as an interrupt handler. However, you can assign the same VI to a different interrupt by first clicking another object in the Manage Interrupts page to make the blue right-arrow button active again.
106635If 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.
42967You 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.
4G5A62BRIf you hit the< RESET> button on the board, the Processor Status window may not reflect the actual processor status correctly.
4G5CTHBRWhen 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.
Indicators that contain variant data do not update on the front panel.

Workaround—Use a probe on the block diagram to see the data.
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.

Workaround—Set breakpoints on the wires to the controls or indicators you are debugging.
Probes on time stamps do not work with non-instrumented 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.
Combo box controls that use the string data type are unsupported.
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.
44698H30If you copy and paste global variables, you receive a link error when you try to build the ARM 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 ARM 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
IDKnown Issue
4EM8O000If you uninstall µVision on Vista without first releasing the µVision license, the license is permanently lost.

Workaround—Before uninstalling µVision on Vista, complete the following steps:
  1. Launch µVision.
  2. Select File»License Management.
  3. Select the license you want to uninstall from the Product list and then click the Uninstall button.
  4. Following the instructions on screen and then close µVision.
  5. Uninstall µVision.
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
IDKnown Issue
103664The 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.
106561The template VIs for creating custom Elemental I/O are located in the labview\Targets\NI\Embedded\eio\simulatedIOPlugins directory.
102752The 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.
4H3A5KX1Using the Bessel Filter VI causes compiler errors in the generated code.
4H7C2000The 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.
XNOR (Not XOR) and NAND (Not And) functions do not yield correct data with integer array inputs.
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.
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.
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.
When you wire two empty arrays to a Build Array function, the output is an array of one element rather than an empty array.
The Call Chain function cannot be used with Timed Loops, including any VIs called from within the Timed Loop.
When you drag and drop an Elemental I/O Node from Project Explorer window to the block diagram, the Run button for the VI is not broken even though the Elemental I/O Node requires an input. However, the Run button breaks as soon as you make another edit to the VI that does not wire an input to the Elemental I/O Node.
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
IDKnown Issue
You cannot build an empty VI with debugging information.
102393If 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.
4EM8KA00You cannot debug an application if the top-level VI you specify in the build specification is missing from the project. If you try to debug or run a build specification with a missing top-level VI, LabVIEW appears to do nothing. The wait mouse cursor appears then disappears, and the target does not build of download.

Workaround—Verify that the VI you specify as a top-level VI in the Source Files category of the Build Specification Properties dialog box is in the project.
4GAB06HQOn the Communication Options page of the ARM Build Specification Properties dialog box, LabVIEW allows you to select Serial port in the Console Output section even if you also select Serial port in the Debugging Mode section on the Advanced debugging Options page of the ARM Build Specification Properties dialog box. Serial port debugging mode is not compatible with serial port console output.
4GDEG6HQOn the Application Information page of the Build Specification Properties dialog box, LabVIEW allows you to select Use stack variables even if you also select USB ULINK2 JTAG in the Debugging Mode section on the Advanced debugging Options page of the ARM Build Specification Properties dialog box. USB ULINK2 JTAG debugging mode is not compatible with stack variables.
4H38HGBRIf you are using the C style function calls build option, front panel control and indicator values in the top-level VI are not generated correctly and are ignored.

Workaround—Use a top-level VI with an empty front panel or do not use the C style function calls build option.
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 Disable parallel execution and Generate C Style Function Calls build options on the Application Information page, the generated C code cannot build.
If you attempt to build an ARM application with the Generate C style function calls code generation option and the application contains subVIs with unwired inputs, you receive syntax errors.
 Debugging Known Issues
IDKnown Issue
You cannot debug global variables.

Workaround—Probe the wires coming into or out of the global variable.
59134Controls 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.
40485If 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
IDKnown Issue
106561The help topic, Creating Elemental I/O Plug-In VIs, states that you can find example plug-in VIs in the labview\examples\lvemb\EDM\EIO\EIOSimulationExample directory. The correct location is the labview\Targets\NI\Embedded\eio\simulatedIOPlugins directory.
Pressing the< ESC> key in the Build Error dialog box displays the Error Details dialog box.
4BPCFOWDThe 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 Detailed Help link in the Context Help window does not open the correct topic for the Real-Time FIFO VIs.

Workaround—Open the LabVIEW Help by selecting Help»Search the LabVIEW Help. Click the Index tab and select RTFIFO VIs (Embedded Targets).
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.
4D5GDNHQThe File Mapping dialog box is called the VI Mapping dialog box in the documentation, which was the name of the dialog box in previous versions of the software. In addition to mapping VIs, you also can now map external files, so the VI Name text box is now the File Name textbox.

 

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