| Last Modified On : | October 13, 2008 4:46 PM PDT |
Rate |
|
by Bernth Andersson, Technical Consulting Engineer and
Max Domeika, Technical Consulting Engineer
One of the merits of the Ultra Mobile Device (UMD) is the large degree of compatibility with existing software that targets the notebook and desktop PC market segments. In addition, the need for high performance on applications targeting UMD provides motivation to use a high performance C++ compiler for compilation. This document shows you how to use the Intel® C++ Compiler 9.1 for Windows* to build programs running on a UMD device.
It is assumed that you have access to an UMD device. This document employs the Samsung Q1 UMPCi in all the examples. The high level features of the device are as follows:
As a development host environment an IBM ThinkPad* T41p was used with Microsoft Visual Studio 6.0 with Service pack 6 and the Intel® C++ Compiler 9.1 for Windows* installed. In addition the Microsoft Tablet PC Platform SDK was installed on the laptop. The two devices were connected via a local area network (LAN) with the Samsung Q1 on a fixed IP address. The Intel® C++ Compiler was installed on the development host using the default installation options.



The first example (“Hello World”) does not use any specific functionality either available on the Samsung Q1 device or in the Intel® C++ Compiler. The Microsoft Tablet PC Platform SDK does contain several sample programs illustrating the use of specific functionality available on a UMD – for example handwriting recognition.


The Intel® C++ Compiler may generate executable files that employ the compiler’s dynamic runtime libraries. These libraries need to be available on the UMD device for the generated executable to run correctly. For example, Figure 8 shows a Console Application which computes the value of pi. The major loop in the program is parallelized with help of the OpenMP* capabilities in the Intel® C++ Compiler. A #pragma omp is added just in front of the for-loop in the code.



The Intel® C++ Compiler 9.1 for Windows* supports instruction sets available on newer Intel® IA-32 architectures. For example, the UMD device employed in this paper possesses an Intel® Celeron® processor which does not support SSE3. The developer should avoid using options that generate SSE3 instructions that will not execute correctly on a given UMD device. Please refer to the fo llowing table:
| Instructions | Compiler options | Comments |
| SSE3 | -QxP, -fast | If the processor executes an instruction that it does not support, a runtime exception occurs and the application terminates. |
The Samsung Q1 device allows you to connect an external DVD drive to the device. This is recommended if you would like to install the Microsoft Visual Studio and Intel® C++ Compiler on such a device. It has been verified that it works – just follow the installation guide. However you should be aware that the limited screen size makes it cumbersome to use as a development environment.
You can use the Intel® C++ Compiler to develop applications for a UMD device. As this is a typical embedded cross development environment you need to be aware that if your application is dependent on any run-time libraries these must be transferred over to the device for the application to run properly. Also be aware of the processor used in the UMD device to make sure the compiler options specified generates code that is compatible.
Bernth Andersson is a staff software engineer in the Developer Products Division at Intel, creating software tools targeting the Intel Architecture market. Over the past 20 years, Bernth has held several positions at Intel in software and architecture support and training. Bernth currently provides technical consulting for a variety of products targeting Embedded Intel Architecture. Bernth earned a BS in Mathematics from the University of Umea (Sweden).
Max Domeika is a senior staff software engineer in the Developer Products Division at Intel, creating software tools targeting the Intel Architecture market. Over the past 10 years, Max has held several positions at Intel in compiler development which include project lead for the C++ front end and developer on the optimizer and the IA32 code generator. Max currently provides technical consulting for a variety of products targeting Embedded Intel Architecture. Max also provides software tools training serving as an instructor with the Intel Software College. Max earned a BS in Computer Science from the University of Puget Sound, an MS in Computer Science from Clemson University, and a MS in Management in Science & Technology from Oregon Graduate Institute.
ihttp://www.samsung.com/Products/UltraMobilePC/UltraMobilePC/NP_Q1_V000SEA.asp*

English | 中文 | Русский | Français
Maximillian Domeika (Intel)
| ||
| Bernth A. (Intel) |