Windows CE may have previously seemed a bit behind the times, as hardware capabilities have sometimes outstripped the aging embedded OS in terms of capacity and modern-day features. With 6.0, however, CE has jumped ahead again with massive upgrades in memory capability, number of processes, and a host of other important improvements. CE 6.0 sports a completely redesigned kernel that is now also 100% “shared source” – Microsoft’s answer to the growing popularity of open-source embedded options such as Linux.
CE 6.0 has been granted a major uplift in process capacity – now up to 32,000 simultaneous processes – and a generous uplift in virtual memory space – up to 2GB. For those that were bumping their heads on the limited headroom of previous versions of CE, the ceiling has been raised considerably. There is also a new file system that has been updated to support today’s larger, more sophisticated embedded mass storage devices, including those with encryption options.
Microsoft already has an advantage in CE with embedded systems that require compatibility with (and interoperability with) desktop computing environments. Until recently, however, that interoperability hasn’t extended smoothly into the embedded developer community. Now, Microsoft has moved to a development system that plugs into the ubiquitous Visual Studio environment, creating a single space for developing both your embedded OS and your applications. Their Platform Builder plugs in to Visual Studio 2005 and includes new capabilities including run-time analysis, device emulation for ARM-based systems, improved syntax-directed editing, and enhanced compilers.
As in the past, Windows CE is scalable, depending on what capabilities your system requires. You can opt for a lean, small footprint version or add some combination of the 700 or so components to tailor your system with the features you require. The OS supports a number of processor cores, including ARM, MIPS, SH4, and x86.
Also new with 6.0 are several key middleware modules that can shorten your design times for certain types of devices. First of these is the “Cellcore Stack” that allows your embedded design to take advantage of data and voice connections over cellular networks. “We see a wide variety of applications for the Cellcore Stack,” says Mukund Ghangurde, group product manager for Windows Embedded. “Vending machines could alert operators of low inventory, GPS systems could download maps, electronic transactions could be facilitated…” The stack provides the needed middleware components so that coding the interface to the network hardware is basically transparent.
Another module available with CE 6.0 includes the multimedia-enabled “Windows Media Connect and Digital Video Recording” components. This is a bundled set of capabilities that allow embedded devices to consume media from desktop PCs and to provide typical DVR functionality such as record, pause, and rewind of video streams.
On the subject of video – there is also a new Windows Network Projector component that allows an embedded system in a digital projector to take advantage of wireless video connection to a Windows Vista PC or laptop. Once implemented, this feature could help shorten meetings worldwide by the five to ten minutes usually wasted trying to get PCs and projectors to play nicely together.
As in the past, Microsoft stands as the alternative to the widespread “do-it-yourself” attitude among embedded systems developers. Certainly with the easy availability of open-source, non-royalty operating systems like Linux, or one-time license options like Mentor’s Nucleus, a team needs to think carefully about the tradeoff between tracking royalties, up-front investment, and implementation time between the various embedded OS options. If your design is one of the many emerging, feature-rich, network-connected applications that are increasingly also requiring some interaction with desktop PC-based software, however, it is hard to ignore CE’s value proposition.
With CE 6.0’s improved capacity in memory and process limits, many of the existing barriers for some of these feature-rich applications have been removed. Also, with the improved integration into Visual Studio, you have probably the world’s largest population of trained developers having at least working familiarity with the embedded development environment – often a major obstacle for teams working hard to recruit embedded software development engineers.
While CE 6.0 certainly isn’t the best solution for every embedded application, there is a wide section of the market that should at least take a look at Windows’s CE 6.0’s new array of capabilities and particularly at the ecosystem and support that surround it. With 10 years in the CE business under their belt, Microsoft has proven that the embedded market is not just something they’re “dabbling” in. Given the current trends in convergence between embedded and desktop applications, that strategy makes a lot of sense.