LabVIEW Embedded for ARM Porting Guide - Chapter 1: Introduction
Overview
The 32-bit RISC ARM processor architecture developed by ARM Limited is widely used across many embedded designs due to its low price, low power consumption, and wide variety of peripherals for many of the major silicon vendors. Today, the ARM family accounts for more than 75 percent of all 32-bit RISC CPUs. You can use the NI LabVIEW Embedded Module for ARM Microcontrollers for programming ARM microcontrollers with the RTX embedded operating system.
This document offers a general outline for targeting LabVIEW code to any custom ARM target. It is the first document in a five-part series that demonstrates the steps you need to take to port LabVIEW code to the Phytec LPC3180 ARM9 microcontroller. For additional information, read these chapters:
Chapter 2: Integration of LabVIEW and Keil Toolchains
Chapter 3: Implementing Elemental I/O
Chapter 4: Porting the RTX Real-Time Kernel
Chapter 5: Integrating the Real-Time Agent
Table of Contents
Chapter 1 - Introduction
With the NI LabVIEW Embedded Module for ARM Microcontrollers, you can port LabVIEW software to any of more than 260 ARM7, ARM9, and Cortex-M3 microcontrollers for system deployment. By using a single development tool from concept to finished product, you can ease the development process and increase end quality while reducing time to market. For more information on the graphical system design process, visit ni.com/embedded.
Taking Your Graphical Design to a New ARM Microcontroller
While the LabVIEW Embedded Module for ARM features several example targets including the Keil MCB2300 and the Luminary Micro EK-LM3S8962 evaluation boards, there are a large number of additional ARM microcontrollers that LabVIEW can target. This document offers a general process for incorporating a new ARM target provided it meets hardware and software requirements. This specific example demonstrates a Philips NXP LPC3180 ARM9 microcontroller on the phyCORE-ARM9/LPC3180 evaluation board.
A general process for incorporating a new ARM target follows these basic steps:
- Porting the RTX Real-Time Kernel
- Integrating the Real-Time Agent module for debugging
- Creating the target in LabVIEW and incorporating the Keil toolchain
- Developing peripheral and I/O drivers
Note that while this tutorial demonstrates specific steps taken to incorporate the Phytec LPC3180 evaluation board, it provides a generic guideline for each process that you can apply to any target. To incorporate an arbitrary ARM microcontroller, you need to custom tailor many of the step details provided below to the specific microcontroller.
At the time this article was written, the RTX Real-Time Kernel and Real-Time Agent module had not been developed for the LPC3180. Therefore, this tutorial demonstrates all four processes. However, this may not be necessary for all targets. For more information about incorporating the RTX Real-Time Kernel and the Real-Time Agent module, see chapters 4 and 5.
This tutorial assumes that you have the LabVIEW Microprocessor SDK installed. If this is not the case, see the following tutorial on modifying the generic 'Other' target that is installed by the LabVIEW Embedded Module for ARM Microcontrollers. For further documentation, see http://www.ni.com/arm.
Table of Contents
Chapter 2: Integration of LabVIEW and KEIL Toolchains
Chapter 3: Implementing Elemental I/O
Chapter 4: RTX Real-Time Kernel
Chapter 5: Integrating the Real-Time Agent
Solution Files
The following .zip file provides a complete solution for each chapter of this document. Use these files to follow along with the guide, or use the LPC3180 folder in the chapter 3 files for the final working solution. Ensure that the LPC318x.h file included in the Chapter 1 solutions is copied to the \Keil\ARM\INC\Philips directory before following this tutorial or using the LPC3180 target.
Reader Comments | Submit a comment »
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
