With NI Linux Real-Time, it is possible to target NI hardware using the LabVIEW Real-Time Module, C/C++, or a combination of both.
Figure 2. Choose the LabVIEW Real-Time Module, C/C++, or a combination of the two for targeting NI Linux Real-Time systems.
Design Patterns 1 & 2: LabVIEW RIO Architecture
The LabVIEW reconfigurable I/O (RIO) architecture combines LabVIEW system design software with reconfigurable off-the-shelf hardware. This architecture is based on four components: a processor, a reconfigurable FPGA, measurement I/O hardware, and LabVIEW. Using an integrated hardware and software platform built on the LabVIEW RIO architecture, you can simplify system development across a variety of industries and applications.
Figure 3. Use the LabVIEW Real-Time and LabVIEW FPGA modules to target the real-time processor, FPGA, and I/O in the LabVIEW RIO architecture.
The LabVIEW Real-Time Module includes a full suite of compiler, linker, and debugging tools with hundreds of math, control, and signal processing algorithms that run deterministically in NI Linux Real-Time.
FPGA chip adoption across all industries to augment processor-based systems is driven by the fact that FPGAs combine the best parts of custom designed ASICs and processor-based systems. With the LabVIEW FPGA module, engineers can leverage this technology in their designs without learning hardware description languages like VHDL. Start learning more about the LabVIEW FPGA Module.
In choosing the LabVIEW RIO Architecture for your application software architecture, you have access to the following features out of the box:
- A full integrated development environment (IDE) with built-in, automatic cross compilers for all NI real-time hardware
- Integration of C/C++ shared libraries and applications
- Enhanced debugger with the Real-Time Trace Viewer
- Real-time FIFOs for deterministic inter-process communication
- Timed Loops for setting timing constraints, specifying priorities, and dividing tasks between execution cores.
- Watchdog functions for automatic recovery and maximum uptime.
- Built-in analysis and control IP for your FPGA designs.
- One-step deployment to NI hardware.
The LabVIEW RIO architecture provides all the tools to develop and debug sophisticated embedded systems in less time and with fewer resources; see examples here. To learn how to use LabVIEW to program your NI Linux Real-Time system, please see Using LabVIEW for NI Linux Real-Time System Design.
Design Pattern 3: Real-Time C/C++ Development With LabVIEW FPGA
You can also develop, debug, and deploy applications to the open embedded processor written entirely in C or C++ using Eclipse or any other IDE while gaining the benefits of LabVIEW for programming the FPGA.
As stated above, FPGAs combine the best parts of custom designed ASICs and processor-based systems in applications that span all industries. With the LabVIEW FPGA Module, you can use this technology in your designs without learning hardware description languages like VHDL. Learn more about LabVIEW FPGA.
The FPGA Interface C API provides a communication layer between the FPGA and real-time application for I/O control and data streaming. This offers an interface for accessing FPGA controls, indicators, DMA FIFOs, interrupts, and arrays.
To learn how to use C/C++ to program your NI Linux Real-Time system, see Building C/C++ Applications for NI Linux Real-Time.