Qt Commercial on Windows Embedded 7

Authored by: Janne Anttilia, Qt Commercial R&D Engineer

The Qt Commercial R&D team is working to get Qt Commercial running on Windows Embedded Compact 7 and Windows Embedded Standard 7 operating systems. Our target is to officially support these with Qt Commercial 4.8. Here is a preview of what we have been working on.

Introduction
Windows Embedded 7 has several different flavors and provides the possibility to build custom configurations, but the high level Windows Embedded 7 is divided into two different products called Windows Embedded Standard 7 (WES7) and Windows Embedded Compact 7 (WEC7). There are also more tailored Windows Embedded products for specific use cases or industry areas; sometimes they are also referred to as Windows Embedded platforms. These platforms are typically based on either WES7 or WEC7.

Windows Embedded Standard 7
Windows Embedded Standard 7 is basically Windows 7 with some additional embedded features and better customization/configuration possibilities. Microsoft uses the term "a componentized form" of Windows 7. Windows 7 and WES7 share the common kernel and due to a common foundation and building blocks with desktop OSs, the footprint of WES7 is quite high. A relative high footprint also means WES7 is best suited for products where close to desktop level HW is feasible and a viable solution. Typical WES7 products are, for example, kiosk PCs, medical devices, industry automation devices etc.  The following picture highlights the history of Windows Embedded Standard operating systems and platforms (supported Qt versions in parenthesis):

Qt Commercial Windows Embedded Standard 7

As you can see from above figure, there has not been official support for Windows Embedded Standard operating systems in Qt before the upcoming Qt Commercial 4.8 release.

Windows Embedded Compact 7
In contrast to WES7, Windows Embedded Compact 7 is optimized for small-footprint enterprise and consumer devices. It is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows, but it still shares some functionality with its big brother. Formerly Windows Embedded Compact 7 was known as Windows CE or Windows Embedded CE. WEC7 powers devices from demanding consumer electronics to critical industrial automation and medical devices. Typical devices are such as Barcode and RFID Scanners, Digital Picture Frames, Set-top boxes and Health Monitoring Devices.

The following picture highlights the history of Windows Embedded Compact operating systems and platforms (supported Qt versions in parenthesis):

Qt Commercial Windows Embedded Compact 7

For more information about the different Windows Embedded products and their features, please visit Microsoft Windows Embedded site (http://www.microsoft.com/windowsembedded/en-us/windows-embedded.aspx)

Current Status

Qt Commercial support for Windows Embedded Standard 7
A manual verification for Qt Commercial 4.8 snapshot in 32-bit Windows Embedded Standard 7 has been performed by Qt Commercial R&D.  The results of verification were:

  •     Qt 4.8 works with WES7 minimum configuration if  QtOpenGL is disabled
  •     To enable QtOpenGL WES7 module ‘Graphics Platform’ needs to installed
  •     All Qt Demos&Examples seem to work fine
  •     Selected auto tests were passed (Full auto test suite is not yet executed)


At the moment, we are integrating the WES7 to our automated build, test, release creation and release testing environment for regular verification. We will also deploy WES7 configuration for our support team, to enable them to quickly answer WES7 specific support tickets. We are looking forward to launch the official support for WES7 in the Qt 4.8.0 timeframe.


Qt Commercial support for Windows Embedded Compact 7
As a base for the WEC7 port, we took the existing WinCE port.  We will evaluate later on whether rewriting the port based on Qt Platform Abstraction layer will provide useful benefits.

The porting was started in MS Virtual PC environment and later on porting efforts were expanded towards actual hardware platforms. For testing and development purpose we are currently using TI BeagleBoard and in future we plan to extend the HW testing for more ARM and X86 based boards as well.

Current status of the porting is as follows:

  • Qt 4.8 modules, except Qt3Support and QtWebkit, builds for both MS Virtual PC and HW target
  • QtGui: Gestures and Accessibility support is disabled  
  • There are a few hacks here and there to make modules work in WEC7
  • Selected demos & examples have been manually tested and working
  • Selected auto tests haven been manually executed and passe
  • Testing has been performed with “Enterprise Handheld” profile of WEC7

 

To give you some visual proof about the work and performance on the BeagleBoard, take a look at the video.


Our current plain is that we will not provide Qt3Support for WEC7, but we are working to include all other Qt features and modules to the WEC7 port.  At the same time we are cleaning-up the code base from hacks and other rough edges. To minimize Bill-of-Material cost for our customers, we will also study the minimum possible WEC7 configuration where Qt runs smoothly.

Before starting to support WEC7 officially, we will of course integrate the WEC7 to our automated testing and release creation environments. In addition we will pay attention to verifying the seamless integration of WEC7, Visual Studio and Qt VS-Add-in.

At the moment we are aiming to provide the official support for WEC7 during the Qt 4.8.x lifetime.


Comments