The Intel® System Studio is a comprehensive integrated software development tool suite solution targeted specifically at system software and application software development for Intel® architecture based Intelligent Systems and Embedded Devices. To achieve this the Intel® System Studio differs from other Intel® Development Tools and Studio products in several fundamental ways. This article goes into these differences and unique features highlighting what may be the key aspects to choose the Intel® System Studio as a basis fo your software development tools selection for Intelligent Systems and Embedded Devices.
One of the Intel® System Studio's key differences is in it's focus on stability and maturity through enhancements in the included analyzers as well as the addition of the Intel® JTAG Debugger and the System Visible Event Nexus (SVEN) ultra-low overhead data event tracing code instrumentation technology.
The second focus of the Intel® System Studio is on cross-development. The Intel® System Studio is aware of the host development environment and the target deployment system being considerably different as far as the details of the software stack are concerned. The Intel® System Studio provides cross-build, cross-analysis and cross-debug solutions to support this development paradigm. In addition it provides a *.tgz target components archive with those parts of the studio that a developer may want to have available on the target platform as well as the host.
Eclipse* CDT Integration
The Intel® System Studio comes with an automated Eclipse* IDE integration script eclipse_integration.sh. Easy access to the key features of the Intel® C++ Compiler and other components through an IDE commonly used throughout the industry is another idea the Intel® System Studio expands upon. Running the integration script creates a new Intel Tools menu entry, giving access to Guided Auto-Parallelism, Intel® C++ Compiler selection and an Intel® C++ Compiler envrionment file editor. This environment file editor (Fig. 1) is a unique feature for the Intel® System Studio allowing to customize the integration of the Intel® C++ Compiler into a GNU* cross-build toolchain, not just for Poky-Linux* based Yocto Project* or Wind River* Linux* but also for more uncommon cross-build development setups.
Fig. 1: Compiler Environment File Editor
Additionally the Eclipse* integration provides a set of cheat sheets for the Intel® C++ Compiler and easy menu drive access to the Intel® C++ Compiler specific build options (Fig. 2).
Fig. 2: Compiler build option access in Eclipse*
Similarly the SVEN date event tracing instrumentation framework, that we will go into in more detail later in this article integrates into Eclipse by adding an extra perspective to Eclipse* for it's SVEN Trace Viewer. (Fig. 3)
Fig. 3: SVEN Trace Viewer
Intel® C++ Compiler cross-build Support
The Intel® System Studio adds cross-build support and Intel® C++ Compiler integration for Yocto Project*, Wind River* Linux* and CE Linux* to the capabilities of the standard Intel® C++ Compiler. Integration with the Yocto Project* Application Development Toolkit User’s Guide at http://www.yoctoproject.org/docs/current/adt-manual/adt-manual.html is well documented. It boils down to setting some environment variables that define the top level of the build sysroot as well as the cross-toolchain location. Once this is set up the only thing needed additionally is to specify the correct cross-build environment file for the Intel® C++ Compiler.
In the case of Yocto Project* this would be something like
icc -platform=yl12 my_source_file.c
icpc -platform=yl12 my_source_file.cpp
For Wind River* Linux* 5 and its toolchain http://www.windriver.com/products/linux/ the same concept applies
where <install_dir> is the installation path for the Wind River* Linux* software development toolkit, e.g. /export/SDK and target is <ia32> or <intel64>.
The compiler option specifying the cross-compilation is
icc -platform=wrl50 my_source_file.c
icpc -platform=wrl50 my_source_file.c
And again for CE Linux* running on Intel® Atom™ Processor CE42xx or CE53xx you also would set up the environment similarly and use the tested Intel® System Studio provided Intel® C++ Compiler platform environment file
where <install_dir> is the installation path for the CE Linux* PR28 product release support package
icc -platform=celpr28 my_source_file.c
icpc -platform=celpr28 my_source_file.cpp
Intel® Integrated Performance Primitives and Intel® Math Kernel Library
The Intel® System Studio contains the Intel® Integrated Performance Primitives for highly optimized signal and media processing as well as the Intel® Math Kernel Library for optimized math calculations of an analytical and complex floating point arithmetic nature working on large data sets on Intel® Core™ processors.
Intel® VTune™ Amplifier for Systems
In addition to the performance and power analysis capabilities of the Intel® VTune™ Amplifier components found in other studio products, the Intel® VTune™ Amplifier for Systems contains a new remote data collection utility (Fig. 4) using ssh as the sampling data transport mechanism, doing away with the need for manual sampling data transfer between analysis host and test target.
Fig. 4: Remote Power and Performance Data Sampling via SSH
Furthermore the Intel® System Studio provides guidance on how to use the Intel® VTune™ Amplifier for Systems with virtualized target environments and how to build and deploy target event based sampling drivers for embedded systems, by building these drivers inside a cross-build setup.
Intel® Inspector for Systems
The Intel® Inspector like the other Intel® System Studio components is slightly different in that it is targeted at embedded use cases. In case of the Intel® Inspector that means that the system_studio_target.tgz package contains an additional command-line only version of the Intel® Inspector to be used on user interface and memory restricted platforms. Data analysis can be either done via command line on the development target or by copying the sampling results data over to the development host and analyzing it using the full Intel® Inspector graphical user interface (GUI).
Intel® JTAG Debugger
The Intel® JTAG Debugger is a system software debugger only available with the Intel® System Studio. It currently targets Intel® Atom™ processors only (Intel® Atom™ processor Z5xx, E6xx, N2xxx, D2xxx, CE4xxx, CE53xx and Intel® Puma6™ Media Gateway). It enables EFI/UEFI firmware, bootloader, Linux* OS kernel, and dynamically loaded device driver debug from within an Eclipse* RCP based GUI. (Fig. 5)
Fig. 5:Intel® JTAG Debugger User Interface
The Intel® JTAG Debugger in the current Intel® System Studio 2013 release is the one component that for Linux* targeted development supports Windows* host in addition to Linux* host. Supported JTAG devices are the Macraigor Systems* usb2Demon* and the Intel® ITP-XDP3 device. Please see the release notes for ordering details.
SVEN SDK - System Visible Event Nexus
The Intel® System Studio adds yet another software maturity focused tool to it's offering. The SVEN SDK provides a highly customizable instrumentation framework for data event tracing. This allows to track down hard to reproduce timing dependent issue on complex software stacks spanning multiple IP blocks on today's highly integrated chipsets
SVEN relies on a static code instrumentation and a small DRAM buffer with <5 µs timing overhead, minimizing opportunities for Heisenbugs (Fig. 6). SVEN enables developers to identify timing-dependent runtime issues that defy traditional methods. The instrumentation code can stay in production code and only impact execution when logging is active Thus, SVEN is well-suited for offline debug of applications deployed in hard-to-access locations.
Originally developed for Intel® Atom™ processor CExxxx based platforms, SVEN is a field-proven technology that is now available across Intel® architecture. The tool is designed for today’s complex systems, and can trace asynchronous message and data event propagation throughout a chipset. SVEN is highly configurable, and can be used to instrument system software as well as applications.
Fig. 6: SVEN Trace Viewer Concepts
The SVEN SDK comes with its own Eclipse* integrated trace viewer as well as integration with the Intel® JTAG Debugger that permits treating SVEN events as triggers for system level data breakpoints (Fig. 7), tying SVEN into real-time debug scenarios on a running target device.
Fig. 7: SVEN Events as triggers for Intel® JTAG Debugger Data Breakpoints
GDB - The GNU* Project Debugger
Finally the Intel® System Studio adds its own GDB, with Intel® architecture specific enhancements like branch instruction tracing for unwinding pat execution flow and identifying runtime issue root causes even in scenarios with corrupted callstack. Also, GDB in the Intel® System Studio provides an interactive debug extension to detect data race and concurrency issues as part of the regular debug flow so they can be dealt with along-side algorithmic coding issues.
Of course for GDB too, we provide information on how to integrate it into Eclipse* instead of the stock GDB on your host development system.
Target Components Archive
We pointed out that the focus of Intel® System Studio is on cross-development for embedded devices and intelligent systems. It is therefore only logical that we provide a target package called system_studio_target.tgz. This archive is located in the ../l_cembd_p_2013.0.xxx/rpm directory after unpacking the installation &.tgz file. If you are using the online installer instead it will be found in the /tmp/root/rpm directory (assuming the installation is done with super user rights).
This target components archive can be copied onto the development target. It contains components that are of interest to be present there for your cross-development environment. In it you will find:
- Redistributable runtime libraries for the Intel® C++ Compiler
- Sampling Collector (SEP) for Intel® VTune™ Amplifier as well as the target support package for Intel® VTune™ Amplifier remote data collection
- Command-line Intel® Inspector installation
- idbntf.ko dynamically loaded kernel module memory location and load status export handler for the Intel® JTAG Debugger
- gdbserver remote debug agent for GDB, the GNU* Project Debugger
In summary Intel® System Studio expands considerably on the development tools studios targeting native development on personal computers and high performance workstations, by adding improved Eclipse* IDE integration, support for cross-development and cross-debug methodologies, and by adding an even stronger focus on analysis and debug tools to ensure faster issue resolution, product maturity and time-to-market for your development project.
As such Intel® System Studio is the right choice for developers targeting Embedded Linux* in a cross-build environment with considerable software stack differences between the Linux* software development host and the embedded Linux* software deployment target.
Please find more details additionally in the attached use case notes.