Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduction to Windows CE
Versions
Design Goals
Windows CE Fundamentals
Terminology
Processors, CPUs, SoCs
OS Components and projects
Windows CE Architecture
Kernel, Threads, Processes, Drivers
Memory map for User & Kernel Space
OS Layout and Component Interaction
Divergence in requirements
Some independent actions resulted in Pursuing a Win32 API
Subset
An entirely different object-oriented OS was used for quite a
while.
Pegasus/Alder
Windows CE 1.0
11/1996
Cedar
Macallan
Windows CE 3.0
4/2000
Windows CE 5.0
8/2004
Tomatin
NMD FP
SP1 SP2
2.11 2.12
Birch
Windows CE 2.0
11/1997
Jameson
4.1
Talisker
Windows CE
.NET 4.0
1/2002
McKendric
4.2
Yamazaki
Windows CE 6
9/2006
PND
Point of Service
Consumer
Portable media
Thin Client
Entertainment
Medical
Telematics
for Embedded systems
Industrial Automation
Robotics
General Embedded
Industrial Automation
Thin Client
General Embedded
Module
EXE or DLL Code that will run or is part of CE 6.0
Component
The smallest unit of functionality that you can add to an OS
design.
OS Run-Time Image
Everything in the OS Design is built into a file containing
ROM data & code (usually NK.BIN)
Microsoft
Windows CE
Kernel
X86
(ARCH)
ARM
Board
Support
Package
SoC
SH
MIPS
(Ti,QC,Marvell,,etc.)
SD 4.0
ARCH
X86
MIPS
ARM
SH
CPU CORE
CPU / SoC
Board
80486
phyCore270
Pentium
MARVELL
PXA27x
ARMv5TE
ARM11EJ-S
QUALCOMM
7X00
TI OMAP
3430
EM-X270
Mainstone
III
Board
OS Components
DEVICE
MANAGER
phyCore270
USB CORE
DISPLAY
SYSTEM
USB HOST
WINDOW
MANAGER
EM-X270
Mainstone
III
DEBUG SHELL
ARCH
X86
Board
phyCore270
MIPS
EM-X270
Window CE
Project
(VS Solution)
COLLECTION
INDUSTRIAL
OF OS
APPLIANCE
COMPONENTS
ENTERPRISE
WEB
PAD
ARM
SH
Mainstone
III
MY COOL
WINDOWS CE
PROJECT
OS Components
DEVICE
MANAGER
DISPLAY
SYSTEM
WINDOW
MANAGER
DEBUG SHELL
ARCH
Board
X86
X86
KERNEL
MIPS
MIPS
KERNEL
ARM
ARM
KERNEL
SH
SH
KERNEL
phyCore270
EM-X270
Mainstone
III
Window CE
Project
(VS Solution)
INDUSTRIAL
APPLICANCE
ENTERPRISE
WEB
PAD
MY COOL
WINDOWS CE
PROJECT
OS Components
DEVICE
MANAGER
DISPLAY
SYSTEM
WINDOW
MANAGER
DEBUG SHELL
Unified Kernel
Critical OS components moved into kernel space
Process
Launched from an executable file
A collection of threads (at least one) with a common execution
environment
Can create threads to handle interrupts
Driver
A DLL, (dynamically loaded library) loaded into the kernel or into
a user-mode driver host process.
Can create threads to handle interrupts
2 GB
Kernel
Space
Kernel
Filesystem
GWES
Drivers
2 GB
per
Process
Process Code
User VM
32 K
Processes
0x80000000
User Space
2 Gigabytes
Each process has
its own mapping
Process space
1 GB per process
0x00000000
0xFFFFFFFF
Kernel Space
2 Gigabytes
Fixed mapping
independent of
user space
CPU Specific VM
Kernel VM
256 / 512 MB
Static Mapped
Uncached
512 MB
Uncached access to
physical memory
Static Mapped
Cached
512 MB
Cached access to
physical memory
0x80000000
Shell
Services
Manager
UM Driver
Manager
Services
User Mode
Drivers
Applications
Applications
Applications
Applications
User
Mode
Kernel.DLL
OAL.EXE
FileSys.DLL
GWES.DLL
Device.DLL
Kernel Drivers
Bootloader
Hardware
Kernel
Mode
kernel.dll
NKGLOBAL
OEMGLOBAL
NKStub.lib
KITL IOCTL
oal.exe
(nk.exe)
IOCTL
library
Caches
Interrupt
library
Cache
library
Timers
Startup
library
OS Timer
library
RTC
library
RTC
kitl.dll
Hardware
USB
port
Ethernet Serial
port
port
Board
phyCore270
ARM
KERNEL
EM-X270
Mainstone
III
Window CE
Project
(VS Solution)
INDUSTRIAL
APPLICANCE
ENTERPRISE
WEB
PAD
MY COOL
WINDOWS CE
PROJECT
OS Components
DEVICE
MANAGER
DISPLAY
SYSTEM
WINDOW
MANAGER
DEBUG SHELL
Board
Support Package
OS Components
DEVICE
MANAGER
phyCore270
ARM
KERNEL
Hardware
EM-X270
Mainstone
III
DISPLAY
SYSTEM
WINDOW
MANAGER
DEBUG SHELL
Board
Support Package
Driver
ARM
KERNEL
OAL
OS Components
DEVICE
MANAGER
DISPLAY
SYSTEM
DEBUG
KITL
WINDOW
MANAGER
ARM
Core
Hardware
DEBUG SHELL
An Architecture-Specific Kernel
A Board-Specific OEM Adaptation Layer (OAL)
Some sort of data transport for KITL
ARM
KERNEL
OAL
KITL