New Tool Suite Releases Now Targeting Intel® Atom™ Processor Z6xx and N4xx

Submit New Article

June 14, 2010 12:00 AM PDT



Introduction : 
The Intel(R) Atom(TM) processor in all it's various forms finds ever broader acceptance in different form factors from the embedded market all the way to netbooks, tablets, slates and handhelds. Intel recently launched new Intel(R) Atom(TM) processor based platform technologies with the Intel(R) Atom(TM) processor N450 and N470 targeting Netbooks and tablets as well as the Intel(R) Atom(TM) processor Z600 targeting handlhelds, tablet slates and media phones.

Simultaneously Moblin* is transitioning to MeeGo* with the first MeeGo 1.0 release for netbooks having taken place in early June.

To provide application and system developers with the latest software development tools and Intel(R) Atom(TM) processor targeted optimizations the Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor have been updated. The intent of this article is to highlight the new exciting features and improvements implemented in version 2.2 of these tool suites.  The article will take a look at some of the capabilities, insights and optimizations the Intel(R) Application Software Development Tool Suite and Intel(R) Embedded Software Development Tool Suite for Intel(R) Atom(TM) processor deliver in version 2.2.  

Version :
Intel(R) Application Software Development Tool Suite 2.2 for Intel(R) Atom(TM) processor
Intel(R) Embedded Software Development Tool Site 2.2 for Intel(R) Atom(TM) processor

Benefits :

The Intel(R) Software Development Tool Suites 2.2 for Intel(R) Atom(TM) processor are a complete set of tools to develop highly optimized applications for Moblin technology based on devices using Intel(R) Atom(TM) processors. They provide a sophisticated set of tools for application, system and driver development. They assist with optimization and debugging for Intel(R) Atom(TM) processor powered devices running Moblin*  technology. Increased performance of critical software helps to reduce the power consumption, and hence extending battery life of handheld devices. Close integration with the image creator build environment and graphically assisted application debug capabilities speed up the development cycle. Some Intel(R) Software Development Tool Suite components have already been tested against select MeeGo* Preview releases. 

Supported Target Hardware Platforms :

Hardware platforms based on the Intel(R) Atom(TM) processor Z5xx, Z6xx, N2xx, N4xx, D4xx, D5xx, Intel(R) Atom(TM) processor CE4100 or the Intel(R) Media processor CE3100

Supported Software Environments :

The target platform should be based on one of the following environments:
Moblin* 2.x compliant OS
The VTune(TM) Analyzer has been tested against MeeGo* 1.0 Netbook Preview 20100316
The Intel(R) Application Debugger has been tested against MeeGo* 1.0 Netbook Preview 20100330 and 20100420
The Intel(R) JTAG Debugger has been tested against MeeGo* 1.0 Preview 20100330 and 20100420 releases

As development host we recommend

Fedora* 10 or Fedora* 11 for all targets
Ubuntu* 9.10 or SLES* 11 in addition for netbook targeted development
Please consult the system requirements in the release notes and installation guides for details.


Product Components :

The Intel(R) Embedded Software Development Tool Suite 2.2 for Intel(R) Atom(TM) processor is a bundle of five product components. With the aded Intel(R) JTAG Debugger it is a super-set of the Intel(R) Application Software Development Tool Suite 2.2 for Intel(R) Atom(TM) processor.
toolsoverview.JPG
The following development tools are included: 

Intel(R) C++ Compiler 11.1 Update 6 for Linux*
- A highly optimizing compiler with the latest optimization technology for Intel(R) Atom(TM) processors.

Intel(R) Integrated Performance Primitives 6.1 Update 5 for Linux*
- A comprehensive set of math, signal, image, data processing and multimedia functions for optimized codecs, and performance critical applications.

Intel(R) VTune(TM) Performance Analyzer 9.1 Update 8 for Linux*
- A performance analyzer to detect bottlenecks in application code. Drill down from the function level, through C source level down to assembler code, and identify where your code requires the most CPU time.

Intel(R) Application Debugger 2.0 for Intel(R) Atom(TM) Processor (Build ID [1.2097.2.301])
- A full Eclipse* GUI-based high-level language debugger with support for the Intel on-chip execution trace mechanism, as well as other useful debug features.
- This debugger allows loop-back native debugging on the host-PC for device-independent testing and debugging. As a cross-debugger, the actual device can be connected through TCP/IP to the host PC and debugged.
- Debugging from the host environment connecting to a process running on Moblin* inside a KVM* or VMWare* virtual machine.

Intel(R) JTAG Debugger 2.2 for Intel(R) Atom(TM) Processor (Build ID [1.2097.2.360])
- A full Eclipse* GUI-based high-level language debugger with support for the Intel on-chip execution trace mechanism, as well as other useful debug features.
- Support for System, OS kernel, driver, firmware and bootloader debug.
- Bitfield editor with detailed view of chipset and microarchitecture specific registers

Intel(R) C++ Compiler for Linux* :

The Intel(R) C++ Compiler 11.1 for Linux*combines it's well known high level optimization capabilities (interprocedural optimization (IPO), profile guided optimization (PGO) and parallelism support (OpenMP*, vectorization, auto-parallelism) with Intel(R) Atom(TM) processor specific optimizations that are constantly being moved forward.


Not only does the in-order scheduler add an additional optimization pass reordering assembly level instructions to ideally match with the processor's instruction pipeline. It also uses a wide variety of heuristics to determine when to use byte-wise division vs. integer division, when to take advantage of the Load Effective Address (LEA) instruction and when the use of a movbe instruction may be beneficial to increased code density. 

Beyond that the compiler is taking advantage of the Intel(R) Atom(TM) processor's  SSE3 instruction set and using it for speeding up loop processing through data vectorization and auto-parallelization of well-formed loops.

Our developers are constantly looking for opportunities to increase the compilers optimization capabilities and this process has again resulted in additional gains with this release.

Intel(R) Integrated Performance Primitives (IPP) :

This release includes an updated version of the Intel(R) Integrated Performance Primitives. A variant of the library and it's features that has been specifically rebuilt and hand-optimized om the assembly level for Intel(R) Atom(TM) processor based devices. This special low-power IA32 version of the Intel(R) IPP is not available with any other Intel software development tools bundle, but only as part of the Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor.

Intel(R) VTune(TM) Performance Analyzer :
The Intel(R) VTune(TM) Performance Analyzer for Linux* is included and combined with an SEP sampling collector specifically designed for Intel(R) Atom(TM) processor support. In version 9.1 Upd 8 it has been tested for Linux* kernels up to kernel version 2.6.33 and 2.6.34 including one MeeGo* for Netbooks Preview release. To the wide range of supported Intel(R) Atom(TM) processor based devices (e.g. Z5xx, N2xx, N3xx, ... ), including the consumer electronics and connected TV targeted Intel(R) Media Processor CE3100 and Intel(R) Atom(TM) processor CE4100, the newly released Intel(R) Atom(TM) processors Z6xx and N4xx have been added.  
sepsampling.JPG

When collecting performance data for the Intel® VTune™ Performance Analyzer on an Intel(R) Atom(TM) Processor based device the first consideration is that the usually small form factor makes it inconvenient to sample and analyze the collected data on it. Thus the obvious solution is to have a sampling collector on your Intel® Atom™ Processor based device, but instead of analyzing it locally you simply transfer the sampling results file (*.tb5) to your development host machine.

The Intel® VTune™ Performance Analyzer sampling data collector is a standalone command-line tool that provides the event-based sampling (EBS) functionality on a local system. The hardware-based sampling is a low-overhead, system-wide profiling that helps to identify which modules and functions are consuming the most time, giving a detailed look at the operating system and application. This tool enables you to configure the data collection, perform the system-wide profiling, and store the results in a file.

There are some additional interesting articles on using the VTune(TM) Performance Analyzer Sampling Collector for Intel(R) Atom(TM) Processor based devices as well as a brief demo video available.

Intel(R) Application Debugger :

The fully Eclipse GUI based Intel(R) Application Debugger supports now Intel(R) Atom(TM) Processors Z6xx and N4xx and has been tested on two MeeGo* 1.0 Preview test releases.
It provides a fully Eclipse RCP based GUI for fast issue resolution and improved time to market and product maturity in a manner that is convenient and productive for the developer.

appsdebug.jpg

The Intel(R) Application Debugger supports cross debugging of processes running on real hardware as well as in virtual machine environments. If the device you are developing for is too small for convenient use of a full blown graphical debugger solution, the best solution is to debug remotely. This is done by establishing a debug message protocol and using an interface like TCP/IP for communication between host development system and the target system, where the application to be debugged actually runs. The communication between host and target needs to provide all the information about application load location, process id number, shared object dependencies and load locations, execution state and memory layout to the host development system. This is achieved via a small debug handler application running in user space on the target.
To read about debuger usage and the cross-debug concept in more detail, please check out this article and demo video.


Intel(R) JTAG Debugger :

Similar to the Intel(R) Application Debugger, the Intel(R) JTAG Debugger is a full Eclipse* GUI-based high-level language debugger. This debugger is only included in the Intel(R) Embedded Software Development Tool Suite and not in the purely application developer targeted Intel(R) Application Software Development Tool Suite. It is ideal for use in system, OS kernel, driver, firmware and bootloader debug.  It provides Linux* OS hosted cross-debug solutions for Linux* software developers to debug the Linux* kernel sources and dynamically loaded drivers and kernel modules on Intel(R) Atom(TM) processor based devices. It does so using the In-Target Probe eXtended Debug Port on Intel(R) Atom(TM) processor (Z5xx, Z6xx, CE3100, CE4100) based platforms. Beyond this the debugger also offers convenient and in-depth access to underlying hardware properties through a powerful graphical user interface (GUI). This makes it an ideal assistant for initial platform bringup and firmware and BIOS debugging. A set of leading edge features for debugging the development platform complete the rich offering for system developers:

Execution trace support for identifying incorrect execution paths or memory accesses
Bitfield editors for comprehensive and bit level access to silicon platform registers
Graphical representation of the page translation table with full access of the descriptor tables
Flash writer plug-in that allows to update the BIOS or firmware on Intel(R) Atom(TM) processor Z5xx and allos to update NAND on Intel(R) Atom(TM) processor Z6xx based platforms.

jtagdebug.JPG

For Intel(R) Atom(TM) processor Z5xx or Z6xx based platforms the Macraigor Systems* usb2Demon*(http://www.macraigor.com/usbDemon.htm) JTAG hardware adapter from Macraigor Systems* LLC is supported. 

usb2demon.jpg

For all supported platforms alternatively Intel's XDP3 JTAG Hardware Adapter may be available on a very limited and restrictive loaner basis.

xdp.jpg

MeeGo* Image Creator Integration :

The Intel(R) Software Development Tool Suites support a wide variety of Intel(R) Atom(TM) 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(R) Atom(TM) 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(R) Software Development Tool Suites for Intel(R) Atom(TM) processor addresses this in multiple ways.

The Intel(R) C++ Compiler and the Intel(R) 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 MeeGo* Image Creator  jailroot system or to install them into a developer image running inside a KVM* virtual machine or even on a real target. For the installation into MeeGo* Image Creator  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 that is part of the installation image.
MeeGo* Image Creator  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 instalaltion of compiler and Intel(R) IPP can be found at http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/.

The Intel(R) 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(R) Atom(TM) 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(R) Application Debugger usage.
The Intel(R) JTAG Debugger will with the standard installation package be installed on your development host. Via a JTAG device you can connect to your target platforms eXtended Debug Port (XDP) and thus commence remote cross-debugging of your entire platform and system level software.
The Intel(R) VTune(TM) Performance Analyzer analyzes event based and time based sampling data on the development host. The data has been gathered on an Intel(R) Atom(TM) 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.

Summary :

The Intel(R) Software Development Tool Suites 2.2 for Intel(R) Atom(TM) processor offer a complete tool suite solution that complements and extends the MeeGo* SDK and Moblin* SDK. In addition they provide the in-depth hardware insight the embedded developer needs for driver and  platform development along with the performance consciousness that characterizes Intel's software products. With version 2.2 these capabilities have now also been made extended with full support for the Intel(R) Atom(TM) processor N4xx and Z6xx.

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 optimization 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 product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804



Do you need more help?


This article applies to: Intel® AppUp(SM) Developer Community,   MID,   Mobility,   Tools,   Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base