From Microsoft's Windows CE documentation (http://msdn2.microsoft.com/en-us/library/bb419218.aspx):
"Microsoft Windows CE 5.0 is an open, scalable, 32-bit operating system (OS) that integrates reliable, real-time capabilities with advanced Windows technologies. Windows CE allows you to build a wide range of innovative, small footprint devices."
Windows CE is a mature embedded operating system which supports rapid development. The development tools are highly integrated, with comprehensive support provided by Microsoft, and application development uses the Win32 API. There are a large number of third party applications available for Windows CE.
- Fast time to market.
- One stop shop for toolchain and OS components.
- Comprehensive application development tool support.
- Familiar Win23 API to desktop Windows.
- Closed source
- Runtime license costs.
Two standard tools are provided by Microsoft for developing embedded applications with Windows CE: Platform builder and Visual Studio.
Platform builder is an Integrated Development Environment (IDE) which is used to customise and build the low-level parts of a Windows CE based operating system. Platform builder uses simple drag and drop operations to allow developers to quickly add and remove operating system components. The Microsoft Shared Source Initiative (http://www.microsoft.com/resources/sharedsource/licensing/windowscep.mspx) gives developers full access to the Windows CE kernel source code. Using Platform Builder and Shared Source, new device drivers can be quickly developed. Platform Builder and Shared Source also allow for source level debugging of Windows CE, which can greatly reduce development time.
Visual Studio 2005 is used to develop the application level software for Windows CE based devices. Visual Studio is an IDE which combines a source editor, Windows Forms editor, debugger, documentation, compilers and many other features into a single easy to use application. It supports a wide range of languages including: C, C# and Visual Basic. Windows CE supports a compact version of the .NET framework, which allows many applications developed for the .NET framework to run without modification on Windows CE devices. Windows CE also supports a compact version of the Win32 API, which allows applications written for desktop versions of Windows to be ported to Windows CE with minimal effort. An article on porting Win32 software to Windows CE can be found at: http://www.developer.com/ws/pc/article.php/1483401
Costs and Licensing
Microsoft supplies Platform Builder at around $1000 US per developer, and Visual Studio at around $800 US per developer. The ease of development with these tools, along with support from Microsoft can greatly reduce development time, minimising the impact of these upfront costs. The runtime royalties for Windows CE are around $3 US for only the core operating system, or around $15 US for the full feature operating system. The core operating system provides only the basic operating Windows CE GUI and core applications, while the full feature operating system provides additional applications such as Internet Explorer and Windows Media Player which are useful for PDA devices.
In order to deploy a device running Windows CE it is necessary to sign an OEM Customer Licensing Agreement (CLA), which is a set of general terms and conditions with Microsoft. Devices can then be shipped with a Certificate of Authenticity (COA). The COA is a non-removable, serialised label which is attached to Windows CE based devices as a proof of purchase, anti-piracy, and product tracking tool. If the Windows CE image is loaded onto devices by a third party, it may also be necessary to sign a third party installer agreement with Microsoft.
Microsoft have an in-depth guide to planning an embedded device available at: http://www.microsoft.com/windows/embedded/plan_faq.mspx. The major steps involved in developing an embedded device running Windows CE are:
- Purchase the Windows CE development tools.
- Select or develop a boot loader suitable for booting Windows CE.
- Develop an OEM Adaptation Layer (OAL) for your platform.
- Develop any necessary device drivers for your platform (requires licensing the Windows CE Shared Source).
- Choose an appropriate operating system feature set.
- Build the kernel and file system.
- Sign CLA with Microsoft (valid for 1 year).
- Purchase runtime licenses for each device. The COA stickers are provide by Microsoft.
- Sign a third party installer agreement with Microsoft if required.
- Ship the final product.
Bluewater Systems Experience
Bluewater can offer the option of using Windows CE on any of the Snapper based platforms. We have developed and ported drivers for all types of custom hardware. Recently a PDA like product was designed using an embedded Snapper270. The customer required more COM port's than could normally be provided by the Marvell PXA270 as well as a 3 Mega Pixel Camera. Bluewater developed a carrier board for the Snapper270 that included a Xilinx Spartan FPGA that was used to provide the extra features. This required the development of custom drivers that interfaced to the FPGA COM ports and Camera and provided standard Windows CE API's.