accelerating software development for responsive and reliable … · accelerating software...

6
ACCELERATING SOFTWARE DEVELOPMENT FOR RESPONSIVE AND RELIABLE IOT M2M SOLUTIONS Solution Brief Intel® System Studio DEVELOP FAST AND STABLE SYSTEM SOFTWARE FASTER WITH INTEL® SYSTEM STUDIO, A COMPREHENSIVE SOFTWARE BUILD, DEBUG, ANALYSIS, AND PERFORMANCE TUNING SOLUTION FOR WIND RIVER* IDP OR YOCTO PROJECT*-BASED IOT GATEWAYS. Challenges Developing for Connected Devices Distributed software workloads running on connected devices in Internet of Things (IoT) applications, such as those supporting industrial, transportation, or infrastructure use cases, can be very time sensitive. Connected devices must process data in a multitude of formats and with different priorities, which creates significant demands with respect to managing I/O streams, responsiveness, and continuous reliability – notwithstanding temporary workload spikes or changing environmental conditions. This makes it necessary to have development tools that can streamline IoT gateway development with a strong focus on performance analysis to reduce stress on memory and CPU, and debug to resolve device driver, I/O, and system software issues before they show up in the field.

Upload: others

Post on 09-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS

Solution Brief Intel® System Studio

DEVELOP FAST AND STABLE SYSTEM SOFTWARE FASTER WITH INTEL® SYSTEM STUDIO, A COMPREHENSIVE SOFTWARE BUILD, DEBUG, ANALYSIS, AND PERFORMANCE TUNING SOLUTION FOR WIND RIVER* IDP OR YOCTO PROJECT*-BASED IOT GATEWAYS.

Challenges Developing for Connected DevicesDistributed software workloads running on connected devices in Internet of Things (IoT) applications, such as those supporting industrial, transportation, or infrastructure use cases, can be very time sensitive. Connected devices must process data in a multitude of formats and with different priorities, which creates significant demands with respect to managing I/O streams, responsiveness, and continuous

reliability – notwithstanding temporary workload spikes or changing environmental conditions. This makes it necessary to have development tools that can streamline IoT gateway development with a strong focus on performance analysis to reduce stress on memory and CPU, and debug to resolve device driver, I/O, and system software issues before they show up in the field.

Page 2: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

Figure 1. Wind River* Workbench* Integration of Intel® System Studio

Figure 2. Intel® System Studio Overview

2

Security

�����

OpenSSL* Library

SRM Signing Tool

Certificate Management

Secure Boot

Application Integrity

Monitor

Application Resource

Control

Secure Package

Management

Encrypted Storage

Connectivity

• 2G/3G/4G

• Bluetooth*

• Ethernet

• Zigbee* Stack

• Serial

USB

• VPN

• Wi-Fi Access Point

• MQTT

2

Manageability

• OMA DM

• TR-069

• Web Config

Runtime

Environment

• Lua*

• Java*

• OSGi*

Cloud Connector

Ecosystem

Applications

and Services

System Integrators,

IT Outsourcers,

Customers

Wind River* Linux*

McAfee Embedded

Control

Intel BSP: Board and Modules (Intel® Quark SoC, Intel® Atom Processor)TM TM

Intel® IoT Gateway Software Stack

Win

d R

ive

r D

ev

elo

pm

en

t E

nv

iro

nm

en

t

Plugs into

Performance

Reliability

Time-to-Market

Performance and Analysis Studio for your IoT GatewayIntel® System Studio provides a one-stop software development suite solution, tying closely into the Wind River* Intelligent Device Platform Workbench* IDE, as illustrated in Figure 1. In doing so, it allows developers to customize, optimize, and enhance the reliability of the system software stack running on Intel® IoT Gateway.

Intel System Studio (Figure 2) covers the three central pillars of the software design cycle: Build, Analysis, and Debug. Its components are shown in Figure 3 and described in the following:

DEBUGGERS & TRACING

Embedded or Mobile System

1Linux*, Embedded Linux, Wind River* Linux, Yocto Project*, Tizen*

ANALYZERS COMPILIERS & LIBRARIES

System ApplicationPower & Performance

CPU / Graphics

Memory &

Threading

Image, Signal, Media,

Data & Math ProcessingC/C++

Compiler

System & Application Code Running on Linux* , Android*, or Windows*1

Intel® Quark SoCTM

Intel® Atom ProcessorTM

Intel® Core i7, Intel® Core i5, Intel® Core i3 ProcessorsTM TM TM

Intel® Xeon® Processor

JTAG Interface

Debuggers & Tracing

• The Intel® System Debugger provides in-depth insight into memory configuration, processor register sets, and OS kernel threads.

» The system debugger uses OpenOCD* communication API with TinCanTools* FLYSWATTER2 or Olimex* devices for JTAG based UEFI firmware, BIOS as well as OS, and device driver debug on Intel® Quark™ SoC-based Intel IoT Gateway.

» Intel IoT Gateway based on the Intel® Atom™ processor E3800 product family use the Intel® ITP-XDP 3BR device for the same purpose.

Accelerating Software Development for Responsive and Reliable IoT M2M Solutions

Page 3: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

Figure 3. Intel® System Studio and Its Components Targeting Intel® IoT Gateway

» If an EFI Development Kit (EDK II) compliant debug agent is part of the firmware, BIOS debug without a JTAG device is also available.

» The System Visible Event Nexus (SVEN) Technology SDK provides a static code-instrumentation-based approach that supports ultra-low overhead data event tracing, which is useful for debugging I/O timing and data hand-shake issues between device driver and application space

• The Intel-enhanced GNU* Project Debugger (GDB*) provides the ability to interactively debug data race conditions in Intel® Compiler generated code. It also provides process-specific Branch Trace Storage (BTS)-based instruction tracing in User Space, permitting debugging of the execution history even in scenarios where reverse execution is not possible or the callstack is corrupted.

Analyzers• The Intel® VTune™ Amplifier for Systems provides

remote performance analysis and energy profiling from a Linux* or Windows*-based host development system via SSH protocol. Performance bottlenecks and their root causes can be pinpointed quickly and efficiently.

Debuggers & Tracing

Analyzers

Compiler & Libraries

Intel-enhanced GDB* Application Debugger

Intel® VTune Amplifier for SystemsTM

Intel® Inspector for Systems

Intel® C++ Compiler

Intel® Integrated Performance Primatives

Intel® Math Kernel Library

Intel® Threading Building Blocks

SVEN Technology SDK

Intel® System Debugger (JTAG)3

Integrated Development Environment

Host Operating Systems Linux, Window*

Eclipse*, Wind River*Workbench*

Category

Co

mp

ose

rE

dit

ion

Inte

l®Q

ua

rkS

oC

TM

Pro

fess

ion

alE

dit

ion

Ult

ima

teE

dit

ion

Inte

l® A

tom

Pro

ce

sso

rTM

Linux* Target SKU1 Platform Target

Component

√√√√√√√√√

√√√

√√

√√√√√√√

Pro

fess

ion

alE

dit

ion

√√√√

√2

√√√√√√√√√

√√√√√√√√√

1Linux*, Embedded Linux, Wind River* Linux, Yocto Project*, Tizen*

2Analyzing F-Trace and Perf data in Intel® VTune Amplifier on host

3Via Intel® ITP-XDP3 probe, OpenOCD* and EDKII* for UEFI*

On Intel® Atom™ processor-based platforms, the tool can additionally use the processor’s performance monitoring unit (PMU) for system-level performance analysis and general exploration of memory bandwidth, caching, and instruction latency concerns. In addition to its own performance analysis data format, it also can visualize Linux Ftrace and Perf data.

Compilers and Libraries• The Intel® C++ Compiler is a highly-optimized compiler

with state-of-the-art architectural optimizations for Intel Atom processors and Intel Quark SoC as well as advanced vectorization and loop optimizations. It seamlessly plugs into a Wind River Linux cross-build environment and allows developers to mix and match GNU* GCC* and Intel C Compiler-generated binaries as it reuses the GNU linker and binutils. Whenever data parallelism and fast compute are of the essence, the Intel C++ Compiler can be used to drive the responsiveness of gateways forward.

• The Intel® Integrated Performance Primitives provide a rich set of software building blocks that enable developers to write highly-optimized and easy-to-maintain signal and media processing codecs.

Accelerating Software Development for Responsive and Reliable IoT M2M Solutions

3

Page 4: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

Figure 4. Using the Intel® C++ Compiler Inside the Wind River* IDP Build Environment

4

Using the Intel® C++ Compiler from within Wind River* IDP Workbench* Developers can use Intel C++ Compiler in the Wind River Workbench to build and optimize their code. To do this, create and build a Wind River Linux platform project in the workbench, or import a Wind River Linux SDK into Wind River workbench. The following steps describe how to use the Intel C++ Compiler inside the Workbench:

1. Create a new project in the Wind River workbench by selecting File > New > Example > WR Linux Application Sample Project >, select “The Hello World Demonstration Program”, click Finish.

2. Select Project > Properties > Build Properties > Build Support and Specs. Select an Active build spec that supports the Intel C++ compiler, the one that has the –icc extension in the name. For example, intel-x86-64-glibc_std-x86-64-wrl6_x86_64_prj-icc, as shown in Figure 4.

3. Build the application.

4. Modify the ICC (Intel C++ Compiler) build flags and linker flags, if needed. Select Project > Properties > Build Properties > Tools; select Build tool C++ Compiler or other tool, if needed; check the build flags and modify, if needed.

Accelerating Software Development for Responsive and Reliable IoT M2M Solutions

Page 5: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

Figure 5. Debugging UEFI BIOS on an Intel® IoT Gateway Device

System Software Debug on Intel® Quark™ SoC Made EasyGrant write access to the proper /dev/bus/usb entry every time a device is connected in order to run OpenOCD using a non-root account. The process can be automated by adding a udev rule. Simply create a text file in the rules directory:

$ sudo vim /etc/udev/rules.d/99-openocd.rules

The product ID codes depend on the JTAG device. For example, for the Flyswatter2* and the Olimex* device, the rules file must have the following content:

SUBSYSTEM==”usb”, ATTR{idVendor}==”0403”,

ATTR{idProduct}==”6010”, MODE=”0666”

SUBSYSTEM==”usb”, ATTR{idVendor}==”15ba”,

ATTR{idProduct}==”002b”, MODE=”0666”

Starting a Debug Session1. Launch OpenOCD*

• Go to the place where the OpenOCD component was installed

Default location:

<install-dir>/system_studio_2015.0.xxx/debugger/openocd/bin

• Launch OpenOCD:

$ cd <installdir>/system_studio_2015.0.xxx/debugger/openocd/

$ ./bin/openocd -f scripts/interface/ftdi/olimex-armusb-ocd- h.cfg –f scripts/board/quark_x10xx_board.cfg

2. Launch the Intel System Debugger

After you power on the target and launch OpenOCD

• Start “start_xdb_gdb_remote.bat”

• Click on the “connect icon” at the upper left corner of the Intel System Debugger graphical user interface.

It will automatically try to connect to the OpenOCD’s local host default settings (127.0.0.1:3333), as shown in Figure 5.

Accelerating Software Development for Responsive and Reliable IoT M2M Solutions

5

Page 6: AccelerAting SoftwAre Development for reSponSive AnD reliAble … · AccelerAting SoftwAre Development for reSponSive AnD reliAble iot m2m SolutionS Solution Brief Intel® System

Next StepsThe Intel System Studio provides a complete build, analysis, optimization, and debug solution that enables developers to customize, optimize, and maximize the reliability of system software and C/C++ application software stack running on an Intel IoT Gateway. Its close and seamless integration with the Intelligent Device Platform build environment from Wind River enables developers to have full control over the gateway software stack.

For more information about Intel System Studio visit http://intel.ly/system-studio.

For more information about Intel solutions for the Internet of Things, visit www.intel.com/iot.

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

Copyright 2015, Intel Corporation. All rights reserved. Intel, the Intel logo, the Intel Inside logo, Intel Atom, Intel Core, Quark and Xeon are trademarks of Intel Corporation in the United States and/or other countries.

*Other names and brands may be claimed as the property of others. 0615/MG/TM/PDF Please Recycle 332579-001

Optimization Notice

Intel’s compilers may or may not optimize to the same degree for non-Intel® microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimizations on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

Accelerating Software Development for Responsive and Reliable IoT M2M Solutions