Post on 09-Jul-2020
transcript
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.
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
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
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
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
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