What is wrong with Windows CE?
Posted by benoit on 30 Nov 2006 at 02:40 pm | Tagged as: embedded, ramblings
As an embedded guy, I deal mostly with C code (although recently, I’ve been up to my eyeballs in Assembler *sigh*). In my current job, I’m doing bare metal programming, without any Operating System. I also do .NET programming in C#, and it is so much more productive than your typical embedded environment. Recently, an oportunity arose for me to investigate the suitability of Windows CE for a particular embedded application.
Imagine my excitement! Windows CE 6.0 could provide me with a Visual Studio 2005 environment, the code could be done using the .NET Compact framework using C#. To feel alive again! Unfortunately, my bubble soon burst. What went wrong?
I believe that windows CE is inherently targeted towards mobile or end-user devices. This is reflected in the processor architectures supported: ARM, x86, MIPS (why? it’s all but extinct!) and SH4 (a niche player). No PowerPC or 68K processors.
ARM is king of the embedded space. This is mostly due to its ubiquity in telephone sets. I really like the ARM architecture, it has tons of vendors. Unfortunately, from asside from the Intel IXP4xx serie, the support for high-speed connectivity (10/100/1G Ethernet) and large data movement is limited.
x86 is a proven architecture, but generally speaking, the number of peripherals provided on the chip is rather limited (compared to other embedded processors). as a general computation platform, it’s ok, but if you have lots of I/O pins, many peripherals, etc… it is not the best choice.
The fact is, when talking about embedded devices which are not “consumer” oriented, PowerPC rules! It has such a diverse offering of peripherals and processors for all occasions. From sub $10 parts all the way to $200+. And for the particular application I am looking at, it’s a natural match. And I can’t use Windows CE and the VS2005 environment :-( I am bummed.
One of the interesting tid bit I can across during my research: Windows CE 6.0 supports up to 32,000 processes. Hello?! Anybody home? Who in their right mind would consider this a feature? Any designer doing an embedded application with more than 100 processes should have their head examined, 500 or more processes, they should be shot! This is what happens when maketing is in charge!
One simple question for Microsoft: What platform did you use to test that 32,000 processes are supported? Intel Duo with 16G of RAM?
Yes, I am just a bitter designer that has been deprived of a new toytool.
3 Responses to “What is wrong with Windows CE?”
Leave a Reply
You must be logged in to post a comment.
The developing experience for CE is indeed nice in general. There is justification be a bit jealous about that :).
In Windows CE 5.0 and before there was a limit of 32 processes. In CE 6.0 they dropped that limit and increased it to 32,000. Nobody really wants 32,000 processes, but once you decide to drop an old limit why not set the new upper bound to a point that nobody will reach in the near future?
Martin,
The problem with any “feature” in a product, is that it has to be supported. It also has to have been tested (right?). It’s not good enough to just say “We’ll make the Process Control Block’s Id 16 bit” and say we support 32K pocesses. So, what did they use to test that monster?
Probably they wrote a unit test and ran it. Probably that test succeeded.