Introduction
Intel offers a wide range of software development tools designed for enabling the software developer to get great performance and end-user experience out of their application. At the same time it ensures with its wide range of development tools that performance bottlenecks can be identified quickly and coding errors and runtime issues can be pinpointed and fixed quickly. The purpose is to enable on-time delivery of mature and fast applications that showcase the user-friendliness, performance and feature richness of your applications.
Specifically for development projects targeting Moblin compliant applications and devices taking advantage of the Intel® Atom™ processor a set of software development tool suites is being offered. It bundles key development components addressing all phases of development from design, testing, bug fix cycle to performance tuning.
The following paragraphs will provide an insight into the Intel® Application Software Development Tool Suite for Intel® Atom™ processor and the Intel® Embedded Software Development Tool Suite for Intel® Atom™ processor, Intel’s software development products to .develop and optimize applications for Windows* running on Intel® Atom™ processors. They will highlight the tools components included and their effective use.
Tools Overview
The Intel® Atom™ processor is specifically targeted at low-power IA-32 based designs for a wide range of small form factor devices. These include netbooks, settop boxes, consumer electronics, in-vehicle infotainment and other designs focusing on internet content consumption, telephony and mobile location based services. The one thing most of these designs have in common is that their form factor makes it inconvenient to develop software natively on these platforms. The Intel® Software Development Tool Suites for Intel® Atom™ processor take this into account and offer solutions that address cross development requirements for designs running Moblin compliant Linux* OS and other Linux* based operating systems.
The Intel® Application Software Development Tool Suite consists of 4 development tools components.
Intel® C++ Compiler
The Intel® C++ Compiler for Linux* has been optimized to harness key properties or the Intel® Atom™ processors architecture and get optimal performance out of it. The option switch –xSSE3_ATOM(Linux ) and /QxSSE3_ATOM(Windows) will cause the Intel® C++ Compiler optimize instructions to target Intel® Atom™ processor and minimizes dependency and resource stalls. Additionally it takes advantage of a complex set of heuristics to decide which type of assembly instructions to generate to speed up memory access, improve branch prediction and take account of the Intel® Atom™ processor’s floating point properties. Finally it also aggressively takes advantage of the SSE3 instruction set for vectorization and sped-up execution of thus parallelized loops.
Intel® Integrated Performance Primitives
The Intel® IPP offer a rich set of library functions and codecs to be used to speed up development of highly optimized routines for the handling of multimedia formats and data of any kind. They have been low-level hand optimized to provide their known performance strength and ease of use for Intel® Atom™ processor based platforms.
Intel® VTune™ Performance Analyzer
Finding the bottlenecks in your application, identifying where most time is spent during application and using event-based sampling to find hardware resource constraints that limit the performance potential of your application. This is the domain of the Intel® VTune™ Performance Analyzer. A VTune™ Performance Analyzer Sampling Collector (SEP) is included that allows for low overhead command line based performance data collection on the Intel® Atom™ processor based target device without any instrumentation of the code base to be analyzed.
Intel® Application Debugger
A rich and user friendly Eclipse* RCP based graphical user interface combined with OS signal awareness and thread awareness enable the developer to use this TCP/IP cross-debug solution to more easily find coding issues that affect application runtime behavior and correct them.
Intel® JTAG Debugger
In addition to these components the Intel® Embedded Software Development Tool Suite for Intel® Atom™ processor provides a JTAG debug solution that utilizing the same Eclipse* RCP based graphical user interface to give you access to the descriptor tables, page tables and all chipset registers with the detail that only it’s bitfield editor can provide. This debugger allows for high level language source level debugger of bootcode, OS kernel and device drivers.
Benefits for your development projects
The benefits of using these comprehensive tool suites are many and impact every phase of the software development process.
- Improved performance in your critical applications and codecs due to the use of the Intel® C++ Compiler’s optimizations for the Intel® Atom™ processor or the Intel® IPP.
- Performance tuning and avoidance of inefficient code in your application with the help of the Intel® VTune™ Performancer Analyzer, leading to a smoother and more responsive end-user experience
- Faster coding issue detection and correction and thus improved maturity as well as faster time-to-market, faster development cycles for your project.
How to start with application development for Moblin on Intel® Atom™ processor
The Intel® Application Software Development Tool Suite supports a wide variety of Intel® Atom™ processor based devices. This means that there is not one single use case or usage model that will fit the needs of every developer. Development for Intel® Atom™ processor based devices tends to have one aspect in common however. In most cases you will want to take advantage of the performance and the high screen resolution of your regular development environment and deploy your build to the real hardware for validation and analysis only. In short, most commonly the usage model will be one of cross development.
The Intel® Application Software Development Tool Suite for Intel® Atom™ processor addresses this in multiple ways.
- The Intel® C++ Compiler and the Intel® Integrated Performance Primitives will by default be installed on the development host system. To provide a protected build environment without host system library pollution it is however also supported to install these components into the Moblin* Image Creator 2 jailroot system or to install them into a Moblin* 2 developer image running inside a KVM* virtual machine or even on a real target. For the installation into Moblin* Image Creator 2 or into a KVM* image it is recommended to do this following the yum rpm repository based installation process outlined in the Moblin* Integration Guide Moblin_Integration.htm.
Moblin* Image Creator 2 kickstart scripts can be found at
http://software.intel.com/en-us/articles/meego-integration-software-development-tool-suite-atom/ - A template rpm repository definition file for the direct KVM* image installation of compiler and Intel® IPP can be found at
http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/ - The Intel® Application Debugger will with the standard installation package be installed on your development host. Via TCP/IP you can connect to and debug a process either running on actual Intel® Atom™ processor based target hardware or a KVM* virtual machine or some other virtualization method that assures you that the application to be debugged runs in a software environment identical to the later application deployment. Please also have a look at the Getting Started Guide Getting_Started.html that is part of the tool suite distribution for further details on the Intel® Application Debugger usage.
- The Intel® VTune™ Performance Analyzer analyzes event based and time based sampling data on the development host. The data has been gathered on an Intel® Atom™ processor based target platform with low overhead giving you accurate sampling data. The analysis can be done within the standard KDE* or Gnome* based standard Linux* GUI you are used to for your development efforts.
How to develop, and optimize applications for Windows* running on Intel® Atom™ processors
When developing for a Microsoft Windows* XP or Windows* 7 based netbook whose platform is based on the Intel® Atom™ processor, the software development methodology is basically identical to what you are familiar with for writing an application that targets regular notebook PCs.
The whole range of Intel’s software development products are at your disposal.
- Intel® Parallel Studio
A plug-in into Microsoft* Visual Studio* to analyze, and develop multithreaded applications for netbooks, and other Windows/Intel Atom processor based systems - Intel® C++ Compiler for Windows*
A build solution to generate highly optimized application code - Intel® Integrated Performance Primitives Library for Windows*
A highly optimized multimedia library – already including multi-threading / autoscaling - Intel® Threading Building Blocks
A template library to implement multi-threading through C++ templates
For more information on these tools please check on our website for more details on download, evaluation, usage and purchase: http://www.intel.com/software/products.
Additional details on Intel® Atom™ specific development under Windows can be found at
- Developing for Intel® Atom™ Processor running Linux* and Microsoft Windows* XP
http://software.intel.com/en-us/articles/development-atom-linux-and-windows/ - Optimized for the Intel® Atom™ Processor with Intel's Compiler
http://software.intel.com/en-us/articles/atom-optimized-compiler - Using VTune™ Peformance Analyzer for Intel® Atom™ Processor on Windows* XP
http://software.intel.com/en-us/articles/using-vtune-atom-windows
Usage Details & Examples
The Intel® Developer Zone offers a wide range of further reading and whitepapers detailing the different use cases for the Intel® Software Development Tool Suites for Intel® Atom™ processor and its components.
- Optimized for the Intel® Atom™ Processor with Intel's Compiler http://software.intel.com/en-us/articles/atom-optimized-compiler/
- Application Debugging in Cross-Debug Environment
http://software.intel.com/en-us/articles/cross-application-debugging/ - Using the VTune™ Performance Analyzer Sampling Collector for Mobile Internet Devices
http://software.intel.com/en-us/articles/sampling-collector-mid/ - Optimized for the Intel® Atom™ Processor with Intel's Compiler
http://software.intel.com/en-us/articles/atom-optimized-compiler/ - Integrating Intel® Software Development Tool Suite Components with MeeGo* SDK and Image Creator
http://software.intel.com/en-us/articles/meego-integration-software-development-tool-suite-atom/ - Installing the Intel® C++ Compiler and Intel® Integrated Performance Primitives into KVM* for Intel® Atom™ Processor targeted development
http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/ - Compile moblin2 kernel sources with Intel Compiler
http://software.intel.com/en-us/articles/compiler-moblin2-kernel-sources-with-intel-compiler/ - Device Driver Debugging on Intel® Atom™ processor based devices
http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf - Building Clutter* GUI libraries using the Intel® C++ Compiler
http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler/ - Building FFMEG using the Intel® C++ Compiler
http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2/
References
- Product Page:
http://www.intel.com/software/products/atomtools - Documentation:
http://software.intel.com/en-us/articles/intel-application-tool-suite-documentation/
http://software.intel.com/en-us/articles/intel-embedded-tool-suite-documentation/ - Forum:
http://software.intel.com/en-us/forums/intel-software-development-products
Conclusions
The Intel® Software Development Tool Suites for Intel® Atom™ processor provide a comprehensive development tools solution for Moblin compliant and Intel® Atom™ processor based platforms that is versatile and highly configurable in its usage model, tightly integrates with the Moblin SDK and brings the power of Intel’s software development tools solutions to the new class of devices and applications targeted by the Intel® Atom™ processor.

Comments
I am wondering if there is any relationship between the tools listed here and the SDK for IADP which planned to be announced in early Nov?
Hello Phoenix,
from the perspective of a developer you can use the tools described in this article to improve the speed of your software.
You don't have to use these tools, but if your application/component makes heavy use of the CPU, you can gain noticeable performance improvement and thus make your customers more happy and your sales more successful in the Intel® Atom™ Developer Program.
Best Regards,
Andre B.
Intel® Atom™ Developer Program