Windows CE 6.0 Bare Essentials

72
1 Windows CE 6.0 Bare Essentials Kurt Kennett Microsoft Corporation

Transcript of Windows CE 6.0 Bare Essentials

Page 1: Windows CE 6.0 Bare Essentials

1

Windows CE 6.0Bare Essentials

Kurt KennettMicrosoft Corporation

Page 2: Windows CE 6.0 Bare Essentials

2

Where do we start?We need to understand systems level software and how Windows CE fits in. 

Page 3: Windows CE 6.0 Bare Essentials

3

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

Page 4: Windows CE 6.0 Bare Essentials

4

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

User Application (ex: Word Processor)

Page 5: Windows CE 6.0 Bare Essentials

5

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

User Application (ex: Word Processor)

Computer Hardware(screen, keyboard)

Page 6: Windows CE 6.0 Bare Essentials

6

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

User Application (ex: Word Processor)

Computer Hardware(screen, keyboard)

Page 7: Windows CE 6.0 Bare Essentials

7

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

User Application (ex: Word Processor)

Computer Hardware(screen, keyboard)

Page 8: Windows CE 6.0 Bare Essentials

8

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

User Application (ex: Word Processor)

Systems Software

Computer Hardware(screen, keyboard)

Page 9: Windows CE 6.0 Bare Essentials

9

Where do we start?We need to understand systems level software and how Windows CE fits in. “Systems” has to do with the software that is in between the user programs and computer hardware.

Systems software provides a standard environment that application writers can depend on.

User Application (ex: Word Processor)

Systems Software

Computer Hardware(screen, keyboard)

Page 10: Windows CE 6.0 Bare Essentials

10

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.

Page 11: Windows CE 6.0 Bare Essentials

11

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.Microsoft includes in Windows CE 6.0 a choice of four possible CPU “architectures” that can be used to base your computer hardware on.

Page 12: Windows CE 6.0 Bare Essentials

12

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.Microsoft includes in Windows CE 6.0 a choice of four possible CPU “architectures” that can be used to base your computer hardware on.An architecture is the structure behind a way of computing ‐ adding, subtracting and multiplying bits, and loading them from or storing them to memory.

Page 13: Windows CE 6.0 Bare Essentials

13

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.Microsoft includes in Windows CE 6.0 a choice of four possible CPU “architectures” that can be used to base your computer hardware on.An architecture is the structure behind a way of computing ‐ adding, subtracting and multiplying bits, and loading them from or storing them to memory.

ldr r0, [r1, #8]

Page 14: Windows CE 6.0 Bare Essentials

14

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.Microsoft includes in Windows CE 6.0 a choice of four possible CPU “architectures” that can be used to base your computer hardware on.An architecture is the structure behind a way of computing ‐ adding, subtracting and multiplying bits, and loading them from or storing them to memory.

ldr r0, [r1, #8] mov eax, dword ptr edx+8

Page 15: Windows CE 6.0 Bare Essentials

15

What does Windows CE do for me?A Windows CE Operating system “Image” is a collection of systems software.Microsoft includes in Windows CE 6.0 a choice of four possible CPU “architectures” that can be used to base your computer hardware on.An architecture is the structure behind a way of computing ‐ adding, subtracting and multiplying bits, and loading them from or storing them to memory.

The choice of an architecture is the starting point for the design of a computer system.

ldr r0, [r1, #8] mov eax, dword ptr edx+8

Page 16: Windows CE 6.0 Bare Essentials

16

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.

CPU – Genus and Species

Page 17: Windows CE 6.0 Bare Essentials

17

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

CPU – Genus and Species

Page 18: Windows CE 6.0 Bare Essentials

18

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

CPU – Genus and Species

CPU COREARCH

Page 19: Windows CE 6.0 Bare Essentials

19

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

The choice of an CPU core (and therefore an architecture) is typically the second thing you do in defining a computer.

CPU – Genus and Species

CPU COREARCH

Page 20: Windows CE 6.0 Bare Essentials

20

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

The choice of an CPU core (and therefore an architecture) is typically the second thing you do in defining a computer.

CPU – Genus and Species

CPU / SoC

CPU COREARCH

CPU CORE

Page 21: Windows CE 6.0 Bare Essentials

21

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

The choice of an CPU core (and therefore an architecture) is typically the second thing you do in defining a computer.

A CPU core is typically built in to a ‘SoC’ or System‐On‐Chip.  This is a combination of a CPU Core and some support logic and peripherals highly tuned to work with that core.

CPU – Genus and Species

CPU / SoC

CPU COREARCH

CPU CORE

Page 22: Windows CE 6.0 Bare Essentials

22

An architecture isn’t a physical thing.  It’s a specification of how a CPU core should work.An actual implementation of an architecture version ends up as a particular CPU core.

The choice of an CPU core (and therefore an architecture) is typically the second thing you do in defining a computer.

A CPU core is typically built in to a ‘SoC’ or System‐On‐Chip.  This is a combination of a CPU Core and some support logic and peripherals highly tuned to work with that core.The ‘SoC’ is sold as a product.

CPU – Genus and Species

CPU / SoC

CPU COREARCH

CPU CORE

Page 23: Windows CE 6.0 Bare Essentials

23

ARCH

"Boards" –making a product

ARM

SH

MIPS

X86

Page 24: Windows CE 6.0 Bare Essentials

24

CPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

Page 25: Windows CE 6.0 Bare Essentials

25

CPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

Page 26: Windows CE 6.0 Bare Essentials

26

CPU / SoCCPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

MARVELL PXA27x

TI OMAP 3430

QUALCOMM 7X00

Page 27: Windows CE 6.0 Bare Essentials

27

CPU / SoCCPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

MARVELL PXA27x

TI OMAP 3430

QUALCOMM 7X00

Page 28: Windows CE 6.0 Bare Essentials

28

BoardCPU / SoCCPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

MARVELL PXA27x

TI OMAP 3430

QUALCOMM 7X00

phyCore270

EM‐X270

Mainstone II

Page 29: Windows CE 6.0 Bare Essentials

29

BoardCPU / SoCCPU COREARCH

"Boards" –making a product

ARM

SH

MIPS

X86

ARMv5TE

ARM11EJ‐S

Pentium

80486

MARVELL PXA27x

TI OMAP 3430

QUALCOMM 7X00

phyCore270

EM‐X270

Mainstone II

Page 30: Windows CE 6.0 Bare Essentials

30

Board

"Boards" –making a product

phyCore270

EM‐X270

Mainstone II

Page 31: Windows CE 6.0 Bare Essentials

31

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

A Board needs systems software to adapt it to the applications.  We call the collection of systems software that is used an operating system.

Page 32: Windows CE 6.0 Bare Essentials

32

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

A Board needs systems software to adapt it to the applications.  We call the collection of systems software that is used an operating system.An operating system like Windows CE is a choice.

Page 33: Windows CE 6.0 Bare Essentials

33

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

A Board needs systems software to adapt it to the applications.  We call the collection of systems software that is used an operating system.An operating system like Windows CE is a choice.Usually a choice is made based on a number of factors.

Page 34: Windows CE 6.0 Bare Essentials

34

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

A Board needs systems software to adapt it to the applications.  We call the collection of systems software that is used an operating system.An operating system like Windows CE is a choice.Usually a choice is made based on a number of factors.

Existing applications for the OSDifficulty of application developmentCost of licensingMany other reasons

Page 35: Windows CE 6.0 Bare Essentials

35

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

In order for the Board to be useful, the systems software must adapt its hardware so the applications can use it.

Page 36: Windows CE 6.0 Bare Essentials

36

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

In order for the Board to be useful, the systems software must adapt its hardware so the applications can use it.A component is a piece of the systems software that allows a well defined set of functionality to operate.

Display InputSound

Page 37: Windows CE 6.0 Bare Essentials

37

Software for a “Board”

Board

phyCore270

EM‐X270

Mainstone II

In order for the Board to be useful, the systems software must adapt its hardware so the applications can use it.A component is a piece of the systems software that allows a well defined set of functionality to operate.

Display InputSound

To support the variety of needs of the systems software for a board, typically a large variety of ‘components’ are available.

Page 38: Windows CE 6.0 Bare Essentials

38

Software Componentization

Board

phyCore270

EM‐X270

Mainstone II USB HOSTWINDOW MANAGER

OS Components

DEBUG SHELL

Page 39: Windows CE 6.0 Bare Essentials

39

Software Componentization

Board

phyCore270

EM‐X270

Mainstone II USB HOST

DISPLAY SYSTEM

WINDOW MANAGER

OS Components

DEBUG SHELL

Page 40: Windows CE 6.0 Bare Essentials

40

Software Componentization

Board

phyCore270

EM‐X270

Mainstone II

USB CORE

USB HOST

DISPLAY SYSTEM

WINDOW MANAGER

OS Components

DEBUG SHELL

Page 41: Windows CE 6.0 Bare Essentials

41

Software Componentization

Board

phyCore270

EM‐X270

Mainstone II

DEVICE MANAGER

USB CORE

USB HOST

DISPLAY SYSTEM

WINDOW MANAGER

OS Components

DEBUG SHELL

Page 42: Windows CE 6.0 Bare Essentials

42

Software Componentization

Board

phyCore270

EM‐X270

Mainstone II

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

OS Components

DEBUG SHELL

Page 43: Windows CE 6.0 Bare Essentials

43

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 44: Windows CE 6.0 Bare Essentials

44

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

COLLECTION OF OS COMPONENTS

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 45: Windows CE 6.0 Bare Essentials

45

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

INDUSTRIALAPPLIANCE

Page 46: Windows CE 6.0 Bare Essentials

46

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 47: Windows CE 6.0 Bare Essentials

47

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

MY COOL WINDOWS CE 

PROJECT

Page 48: Windows CE 6.0 Bare Essentials

48

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 49: Windows CE 6.0 Bare Essentials

49

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 50: Windows CE 6.0 Bare Essentials

50

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

Page 51: Windows CE 6.0 Bare Essentials

51

Defining the systems software

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIALAPPLIANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS ComponentsARCH

ARM

SH

MIPS

X86

Page 52: Windows CE 6.0 Bare Essentials

52

For CE – what is provided?

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIAL APPLICANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS ComponentsARCH

ARM

SH

MIPS

X86

ARMKERNEL

MIPSKERNEL

X86KERNEL

SHKERNEL

Page 53: Windows CE 6.0 Bare Essentials

53

For CE – what is provided?

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIAL APPLICANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS ComponentsARCH

ARM

SH

MIPS

X86

ARMKERNEL

Page 54: Windows CE 6.0 Bare Essentials

54

For CE – what is provided?

Board

phyCore270

EM‐X270

Mainstone II

Window CE “Project” 

(VS Solution)

INDUSTRIAL APPLICANCE

ENTERPRISEWEBPAD

MY COOL WINDOWS CE 

PROJECT

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

Page 55: Windows CE 6.0 Bare Essentials

55

For CE – what is provided?

Board

phyCore270

EM‐X270

Mainstone II

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

Page 56: Windows CE 6.0 Bare Essentials

56

Defining a CE‐based product

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

BoardBoard

Hardware

Page 57: Windows CE 6.0 Bare Essentials

57

Defining a CE‐based product

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

BoardBoard

Hardware

Page 58: Windows CE 6.0 Bare Essentials

58

Defining a CE‐based product

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

BoardSupport Package

Board

Hardware

Page 59: Windows CE 6.0 Bare Essentials

59

BoardSupport Package

The board support package

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

HardwareARM Core

Page 60: Windows CE 6.0 Bare Essentials

60

BoardSupport Package

The board support package

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

HardwareARM Core

OAL

Page 61: Windows CE 6.0 Bare Essentials

61

BoardSupport Package

The board support package

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

HardwareARM Core

OAL

Page 62: Windows CE 6.0 Bare Essentials

62

BoardSupport Package

The board support package

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

Driver

HardwareARM Core

DriverDriverDriver

OAL

Page 63: Windows CE 6.0 Bare Essentials

63

BoardSupport Package

The board support package

DEVICE MANAGER

DISPLAY SYSTEM

WINDOW MANAGER

DEBUG SHELL

OS Components

ARMKERNEL

Driver

HardwareARM Core

Driver

Driver

Driver

OAL

Page 64: Windows CE 6.0 Bare Essentials

64

The board support package

ARMKERNEL

OAL

Page 65: Windows CE 6.0 Bare Essentials

65

So the bare bones are…An Architecture‐Specific KernelSystems software componentsA Board‐Specific BSP (OAL and drivers)

ARMKERNEL

OAL

Page 66: Windows CE 6.0 Bare Essentials

66

So the bare bones are…An Architecture‐Specific KernelSystems software componentsA Board‐Specific BSP (OAL and drivers)

ARMKERNEL

The kernel already knows how to talk to the CPU core, which is the same for every CPU of a particular architecture.

OAL

Page 67: Windows CE 6.0 Bare Essentials

67

So the bare bones are…An Architecture‐Specific KernelSystems software componentsA Board‐Specific BSP (OAL and drivers)

ARMKERNEL

The kernel already knows how to talk to the CPU core, which is the same for every CPU of a particular architecture.The BSP must abstract everything else.

OAL

Page 68: Windows CE 6.0 Bare Essentials

68

Summary

We now know the basics of how a Windows CE system is structured.

Page 69: Windows CE 6.0 Bare Essentials

69

Summary

We now know the basics of how a Windows CE system is structured.Microsoft provides a kernel for any of the four supported architectures.

Page 70: Windows CE 6.0 Bare Essentials

70

Summary

We now know the basics of how a Windows CE system is structured.Microsoft provides a kernel for any of the four supported architectures.A board support package (BSP) is the bridge between the high‐level components and the specific hardware that is used.

Page 71: Windows CE 6.0 Bare Essentials

71

Summary

We now know the basics of how a Windows CE system is structured.Microsoft provides a kernel for any of the four supported architectures.A board support package (BSP) is the bridge between the high‐level components and the specific hardware that is used.Many OS components are available for you to select from, to fulfill the needs of your customized product.

Page 72: Windows CE 6.0 Bare Essentials

72

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, 

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.