Embedded Control Redefined: New C/C++ Options on NI Linux Real-Time

Similar documents
NI Linux Real-Time. Fanie Coetzer. Field Sales Engineer SA North. ni.com

The LabVIEW RIO Architecture and the Newest Member to the CompactRIO Family

Simplify System Complexity

Simplify System Complexity

Running OPAL-RT s ehs on National Instruments crio: Sub-microsecond power-electronic simulation

LabVIEW 2009 Real-Time & FPGA 最新技術剖析. National Instruments 美商國家儀器 行銷部技術經理吳維翰

Open Platform for Developing and Testing Smart Grid Automation Systems. Igor Alvarado National Instruments Corp.

Introduction to LabVIEW and NI Hardware Platform

CompactRIO System on Module

ni.com Integrating EPICS and LabVIEW

Using COTS Hardware with EPICS Through LabVIEW A Status Report. EPICS Collaboration Meeting Fall 2011

High-Level Synthesis with LabVIEW FPGA

MOIS Overview. 1. Developer Walkthrough

ni.com Decisions Behind the Design: LabVIEW for CompactRIO Sample Projects

FPGA design with National Instuments

ni.com Best Practices for Architecting Embedded Applications in LabVIEW

Sviluppa Sistemi embedded con LabVIEW Design Real Systems, Fast

ni.com What s New in 2013

SoC Systeme ultra-schnell entwickeln mit Vivado und Visual System Integrator

Best Practices for Architecting Embedded Applications in LabVIEW Jacques Cilliers Applications Engineering

Application State Machine

ni.com Smaller Size, Increased Flexibility: Introducing the Newest Board-Level Embedded Target

Copyright 2014 Xilinx

LabVIEW programming I

TmL Creation Review. First Proposal

SoC Systeme ultra-schnell entwickeln mit Vivado und Visual System Integrator

FPGA Solutions: Modular Architecture for Peak Performance

User Guide. Introduction. Requirements. Installing and Configuring. C Interface for NI myrio

Tips for Code Re-Use. Rejwan Ali, Marketing Engineer NI Africa and Oceania

NI Smart Cameras PRODUCT FLYER CONTENTS. Have a question? Contact Us.

What's New in CDT 7.0? dominique dot toupin at ericsson dot com

Designing Real-Time Control Applications Using LabVIEW and CompactRIO. Developer Days 2009

LabVIEW FPGA Module Version 2013

Making the Most of your FPGA Design

NiFpga Example Documentation

Data Communication in LabVIEW

What s New in LabVIEW 2018 and LabVIEW NXG

Introduction to Embedded System Design using Zynq

Hardware and Software Co-Design for Motor Control Applications

LabVIEW FPGA Module Release and Upgrade Notes

Resource 2 Embedded computer and development environment

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Introducing HP NonStop Development Environment Version 2.0 for Eclipse (NSDEE 2.0)

Graphical System Design

GET STARTED FAST WITH THIS COMPREHENSIVE ENABLEMENT OFFERING FOR LPC800 MCUS

Getting Results with CompactRIO and LabVIEW

LabVIEW FPGA Module Release and Upgrade Notes

Welcome to the Software Overview section of the MIPS Software Training course. In this section I will discuss software and software tools you can use

LabWindows /CVI Release Notes Version 2010

Don t Think You Need an FPGA? Think Again!

MATLAB/Simulink 기반의프로그래머블 SoC 설계및검증

ECD140/ECD140e INSTRUCTION MANUAL. Eddy-Current Displacement Sensor. Measurement Systems from LION PRECISION. for National Instruments CompactRIO

Page 1. Agenda. Programming Languages. C Compilation Process

CHAPTER 3 LabVIEW REAL TIME APPLICATION DEVELOPMENT REFERENCES: [1] NI, Real Time LabVIEW. [2] R. Bishop, LabVIEW 2009.

An NVMe-based Offload Engine for Storage Acceleration Sean Gibb, Eideticom Stephen Bates, Raithlin

ECM583 Special Topics in Computer Systems

Manual Eclipse CDT Mac OS Snow Leopard

Installation and Quick Start of isystem s winidea Open in DAVE. Tutorial Version 1.0, May, 2014

NSIGHT ECLIPSE EDITION

Enterprise Architect. User Guide Series. Hybrid Scripting. Author: Sparx Systems. Date: 26/07/2018. Version: 1.0 CREATED WITH

The CompactRIO Advantage

Precision Characterization of Ethernet Devices with LabVIEW Real-Time and FPGA

Agenda. Programming FPGAs Why Are They Useful? NI FPGA Hardware Common Applications for FPGAs How to Learn More

Matej Krajnc. Managing Director of NI Oceania. ni.com

LabVIEW FPGA Module Release Notes

GigaX API for Zynq SoC

Semantic Web T LS Update

About EmbeddedCraft. Embedded System Information Portal, regularly publishes. Follow us on

OS PORTING AND ABSTRACTION LAB USER MANUAL

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A

NSIGHT ECLIPSE EDITION

Hands-On Workshop: ARM mbed : From Rapid Prototyping to Production

Gnu Emacs Tutorial Windows Chip

The Road to CCSv4. Status Update

Pico Computing M501 PSP User Guide Linux Version 1.0.1

DAQ & Control with PXI. Murali Ravindran Senior Product Manager

C Support for myrio 5.0 User Guide

NI-Industrial Communications for EtherCAT

LabVIEW Communication Techniques for Distributed Applications

AN5171 Application note

High Performance Embedded Applications. Raja Pillai Applications Engineering Specialist

Android OS and Power Architecture

Scientific Instrumentation using NI Technology

LabVIEW Real-Time Module Release and Upgrade Notes

Accelerating Delivery of Quality Systems with Eclipse-based Tools. Sebastien Marineau-Mes QNX Software Systems

The LabVIEW FPGA course prepares you to design, debug, and implement efficient,

Dynamic Cuda with F# HPC GPU & F# Meetup. March 19. San Jose, California

Integrating Open Source Tools for Developing Embedded Linux Applications

Optimizing HDL IP Development with Real-World I/O. William Baars National Instruments

BUD Navigating the ABI for the ARM Architecture. Peter Smith

Scientific Software Development with Eclipse

How to validate your FPGA design using realworld

System Wide Tracing User Need

Here to take you beyond. ECEP Course syllabus. Emertxe Information Technologies ECEP course syllabus

PRU Firmware Development. Building Blocks for PRU Development: Module 2

Eclipse CDT Tutorial. Eclipse CDT Homepage: Tutorial written by: James D Aniello

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

APPLICATION COMMON OPERATING ENVIRONMENT (APPCOE)

AN 834: Developing for the Intel HLS Compiler with an IDE

ID 321L: KPIT GNU compiler plug-ins for HEW / KPIT Eclipse IDE

Transcription:

Embedded Control Redefined: New C/C++ Options on NI Linux Real-Time Anna Kozminski Software Product Manager

Agenda NI Embedded Software Architecture Communicating between C/C++ and LabVIEW Development practices for C/C++ on NI CompactRIO 2

NI Embedded Software Architecture Real-Time Processor FPGA Modular I/O Deterministic OS Reuse existing applications and libraries Program in LabVIEW, C, C++ or.m Interoperate with LabVIEWprogrammed FPGA Programmable Hardware Offload critical, decision-making code to the FPGA Use graphical programming to leverage FPGA technology without HDL expertise 3

NI Embedded Software Architecture 1 LabVIEW 34 2 C/C++ FPGA Interface C API LabVIEW FPGA Real-Time Processor FPGA 1 LabVIEW RT and FPGA 2 LabVIEW RT app for I/O, with C/C++ app or library 3 C/C++ RT app for I/O, with LabVIEW app or library 4 C/C++ on RT, LabVIEW FPGA 4

Communicating between C/C++ and LabVIEW LabVIEW C/C++ LabVIEW FPGA Real-Time Processor FPGA 5

Communicating between C/C++ and LabVIEW LabVIEW Call Library Function Node Call a DLL or Linux shared library from LabVIEW 6

Communicating between C/C++ and LabVIEW Import Shared Library wizard Create a LabVIEW project library of wrapper Vis for functions in a.dll or.so file using the header file Uses the Call Library Function Node 7

Communicating between C/C++ and LabVIEW System Exec VI Launch another application from your LabVIEW VI Provide any parameters supported by the application 8

Communicating between C/C++ and LabVIEW Localhost communication Pass data between applications using TCP sockets int getaddrinfo(const char *node, const char *service, const struct addrinfo *host_info, struct addrinfo **res); 9

Communicating between C/C++ and LabVIEW C/C++ FPGA Interface C API LabVIEW FPGA Real-Time Processor FPGA 10

Communicating between C/C++ and LabVIEW C/C++ FPGA Interface C API LabVIEW FPGA Real-Time Processor FPGA 11

FPGA Interface C API Enables C/C++ applications to interact directly with compiled LabVIEW FPGA VIs on RIO devices Must be downloaded in addition to C/C++ toolchain Supports Reading/writing to named controls and indicators DMA data transfers Wait on and acknowledge interrupts Is NOT an interface for RSI or Scan Engine. 12

Known Limitations of the FPGA Interface C API Limited data type support, no support for Floating point Fixed point Clusters Arrays of any data type other than supported scalar types To use a different FPGA VI, user must regenerate the header and recompile the application Challenging to create application that works with multiple bitfiles 13

Programmer Workflow Remote Development And Debug Deploy (Windows) LabVIEW FPGA development C/C++ development in Eclipse CompactRIO 1. Develop LabVIEW FPGA VI, compile bitfile & generate C API. 2. Build and deploy C/C++ application with generated C API & debug. 3. Deploy built application and bitfile and run. 14

Communicating between C/C++ and LabVIEW LabVIEW C/C++ FPGA Interface C API LabVIEW FPGA Real-Time Processor FPGA 15

Elements to the C/C++ Development Option Software Required LabVIEW + LabVIEW FPGA FPGA Interface C API (free) C/C++ cross-compiler for CompactRIO RTOS (free) Optional Software C/C++ IDE o Develop, debug, deploy o Eclipse (free), WindRiver, Vim, Emacs etc. 16

NI CompactRIO Technology Evolution crio-9002 crio-9004 crio-9072 crio-9074 crio-9075 crio-9076 crio-9012 crio-9014 crio-9024 crio-9025 crio-9081 crio-9082 crio-9068 17

NI Embedded Real-Time OSs VxWorks NI Linux Real-Time 18

VxWorks

VxWorks Development Process Obtain Code Configure Build Port Code Build Code Debug/Run Code Our mature VxWorks platform already has good process documentation The Definitive Guide: Programming NI VxWorks Real-Time Controllers in C/C++ This presentation is limited to the highlights 20

Build Environments for VxWorks Two options: WindRiver toolchain o Proprietary IDE GCC toolchain o Free command-line method o Requires a Make file for compiler instructions 21

Porting Code for VxWorks VxWorks has limited OS support for some core libraries Porting code can be time consuming Some libraries exist, but they exist in different headers 22

Building Code for VxWorks: GCC Toolchain From the command prompt, GCC provides standard errors Because this is not an IDE, it does not link directly to the code 23

NI Linux Real-Time

The Redesigned CompactRIO System NI LabVIEW System Design Program with LabVIEW Real-Time and LabVIEW FPGA modules Quickly port existing LabVIEW applications Ultra Rugged -40 to 70 C operating temperature range 50 g shock and 5 g vibration tolerance 26 High Performance and Throughput Dual-Core ARM 667 MHz processor Xilinx 7 Series FPGA fabric with 85k logic cells 16 DMA FIFO channels for data streaming Community and Code Reuse NI Linux Real-Time Operating System Integrate existing applications and libraries Develop, debug, and deploy C/C++ code

New: NI CompactRIO 9068 C/C++ Community Applications and Libraries NI Linux Linux Real-Time Operating Operating System System 27

NI Linux Real-Time Development Process Locate Code Configure Build Port Code Build Code Debug Code Download Library Learn Code Run Code 28

Accessing the Linux Community: Package Manager What is a package manager? Set of software tools for installing, updating, configuring and removing applications Think of the App Store, VIPM, etc. CompactRIO-9068 shipping with a package manger preinstalled called opkg Does not take the place of MAX Access to hundreds of applications in the Linux community 29

Leveraging the Linux Community Enable OPKG access to repositories Download and configure applications as necessary Rely on the System Execution VI, Call Library Function Node, or localhost communication to interact Databases Security Code Reuse Connectivity Raima IPTables C/C++ NTP MySQL OpenVPN Shell Scripts SNMP PostgreSQL fail2ban Python IPv6 30

Configuring Builds for NI Linux Real-Time Eclipse IDE for C and C++ Download Eclipse and compiler from Set-up instructions on Once configured, can build and debug code for NI Linux Real- Time Any other code editor NI Provides: Mentor Graphics Sourcery G++ Lite 2010.09-50 for ARM GNU/Linux (GCC 4.4.1) armv7a compatible cross-compiler 32

What is Eclipse? Free IDE Framework, originally for Java development De facto Standard IDE for Embedded Development Updated with tools for C/C++ development and debugging Eclipse C/C++ Development Toolkit (CDT) Target Management/Remote System Explorer Note: NI Provided Installer is for Windows It is not necessary to use Eclipse 33

Porting to NI Linux Real-Time Open source code can frequently be compiled for Linux without issue Replace Win32 functions with equivalent Linux calls 34

DEMO

NI Linux Real-Time: Flexible Software Integration Code Reuse Real-Time Processor Integrate existing applications and libraries Develop, debug and deploy C/C++ code Use Eclipse or IDE of choice Leverage the Linux ecosystem Interoperate with LabVIEW-programmed FPGA FPGA Programmable Hardware Modular I/O Offload critical, decision-making code to the FPGA Reliable, precision timing for control or processing Achieve high-speed, high-accuracy I/O Use graphical programming to leverage FPGA technology without HDL expertise 36

Key Resources Ni.com/EmbeddedSystems/Csupport Download Eclipse and compiler toolchain Setup and getting started instructions Download FPGA Interface C API Linux Real-Time Community Tutorials Documentation Forum for discussions /linux Links to whitepapers Embedded and Desktop uses 37

Thank you! Questions?