Introduction to Embedded Software
Development
3. Introduction to Windows CE
School of software Engineering
2005
Agenda
Hello Windows CE!
Windows CE features
Compare with desktop version
Compare with other embedded OS
Demo :
Hello Windows CE!
What can CE do: Mobile Phone
What can CE do: PDA
Portable Media Center
What can CE do:
Entertainment devices
Windows
Linux
What can CE do:
Car automotive BMW
Citroën
Clarion Co. Ltd.
DaimlerChrysler
Fiat
Subaru
Honda
Hyundai
Mitsubishi
Toyota…
What can CE do : Other
Gateways
Industrial Automation
Set-Top Boxes
Medical Devices and Systems
ATMs
Projectors and Large Screen Displays
VoIP Devices
…
Windows CE history
First edition released in 1996
Windows CE .NET 4.x is widely used
The latest version Windows CE 5.0
Windows CE features
Compare with Desktop Version:
Hardware platform
Desktop Windows Windows CE
Only runs on x86 ARM / Xscale
architecture MIPS
PowerPC
SH
x86
Windows CE feature list
Windows CE can run on different
hardware platforms.
How can we do that?
New Platform Wizard
The answer is BSP !
Introduction to BSP
Board Support Package is the software
that implements and supports the OEM
adaptation layer (OAL) and device
drivers for a standard development
board (SDB).
Operation System
Board Support Package
Hardware
Compare with Desktop Version:
Image Size
Desktop Windows Windows CE
Windows 3.x : 2-5MB Minimal : 200KB
Windows 98 : 400MB Networking about
Windows XP : 1.5GB 800KB
Lager and lager… GWES, Shell and
Apps about 4MB
Can NOT be
customized Internet Explorer
about 3MB
Windows CE feature list
Componentization
More than 200 optional components
Quick and easy to customize OS for a
particular system
Compare with Desktop Version:
Real Time
Desktop Windows Windows CE
No inherent real 256 levels of thread
time support priority
Nested interrupts
Per-thread quantums
Priority inversion
Windows CE feature list:
Windows CE provide Real-time support
Real-time support is essential when
dealing with time-critical applications.
Compare with Desktop Version:
Power management
Desktop Windows Windows CE
No power Battery power / AC
management power
Devices can have their
own power state
Turn off unnecessary
device
Windows CE feature list:
Windows CE provides a Power Manager
to manage device power and improve
overall OS power efficiency
Windows CE can reduce the power
consumption of a target device and to
maintain and preserve the file system
in RAM during the reset, on, idle, and
suspend power states.
Compare with Desktop Version:
Programming Interface
Desktop Windows Windows CE
ASCII / UNICODE UNICODE only
Rich API set Compact Version of
Win32 API, MFC..
Powerful hardware
platform Processor, RAM, File
System limitation
Windows CE feature list:
Windows CE only support UNICODE
CHAR -> TCHAR / WCHAR
strlen -> wcslen
Some APIs provide limited function
Windows CE only have limited resource
Compare with Desktop Version:
Micro Kernel
Desktop Windows Windows CE
NT series is Complete micro kernel
claimed to be micro File system and device
kernel. drivers run on user
mode
9x series is not Kernel is responsible for
micro kernel. passing message
Windows CE feature list:
Complete micro kernel
Enhanced reliability
Enhanced scalability
Compare with Desktop Version:
Share source code
Desktop Windows Windows CE
Commercial 70% of Windows CE
software, source 5.0 source code is
code is MS 1st level shared.
secret. User can modify it.
Windows CE feature list:
Source code is shared
User can find shared source code
under “%_WINCEROOT%\private”
folder
Compare with other Embedded
OS: Multimedia support
Other EOS: Windows CE
Little build-in support Rich UI element
for audio & video Windows Media
No commercial web Player 9, support
browser. mp3, wav, avi,
wmv…
Internet Explorer 6
& Pocket IE
Windows CE feature list:
Rich User Interface Element
Strong Multimedia support
Interact with desktop windows
Pocket Word, Excel, PowerPoint, adobe
reader
Pocket MSN messenger
Pocket IE, Windows Media Player
SQL Server CE edition
ACD See
……
Compare with other Embedded
OS: Programming Interface
Other EOS: Windows CE
Different Win32 API
programming MFC, ATL, STL…
interface
COM, ActiveX
Typically use C/C++ &
j2me .NET Compact
Framework
Java VM
EVB, EVC…
Windows CE feature list:
Easy to get start for Windows
programmer
Support multiple programming
languages
Compare with other Embedded
OS: image size and real time
Other EOS: Windows CE
RTLinux, µC/OS-II No hard real time
support hard real support
time Image size is too
Vxworks min size : 8k large for specific
µC/OS-II min size : 2k usage
Windows CE advantages:
Rich optional components and
functions.
Can be strongly customized.
Easy to use.
Same programming interface with
desktop windows.
Rich MS and third party applications.
Windows CE
disadvantages:
Image size is still too large for specific
use.
Real time?
Not free :
3$ per runtime license
995$ for Platform Builder
Performance & Security ??
Homework
1. Build
your own Windows CE platform
with Platform Builder and run it.
2. Be
familiar with Windows CE GUI, File
System structure, Control Panel…
3. Write
a tic-tac-toe application with
Platform Builder and play it on your
own Windows CE platform.