Introduction to Embedded Software Development

35
Introduction to Embedded Introduction to Embedded Software Development Software Development School of software School of software Engineering Engineering 2005 2005 3. Introduction to 3. Introduction to Windows CE Windows CE

description

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. - PowerPoint PPT Presentation

Transcript of Introduction to Embedded Software Development

Page 1: Introduction to Embedded Software Development

Introduction to Embedded Software Introduction to Embedded Software DevelopmentDevelopment

School of software EngineeringSchool of software Engineering

20052005

3. Introduction to Windows CE3. Introduction to Windows CE

Page 2: Introduction to Embedded Software Development

AgendaAgenda Hello Windows CE!Hello Windows CE!

Windows CE featuresWindows CE features Compare with desktop versionCompare with desktop version Compare with other embedded OSCompare with other embedded OS

Page 3: Introduction to Embedded Software Development

Demo :Demo :Hello Windows CE!Hello Windows CE!

Page 4: Introduction to Embedded Software Development

What can CE do: Mobile PhoneWhat can CE do: Mobile Phone

Page 5: Introduction to Embedded Software Development

What can CE do: PDAWhat can CE do: PDA

Page 6: Introduction to Embedded Software Development

Portable Media CenterPortable Media Center

Page 7: Introduction to Embedded Software Development

What can CE do: What can CE do: Entertainment devicesEntertainment devices

LinuxLinuxWindowsWindows

Page 8: Introduction to Embedded Software Development

What can CE do: What can CE do: Car automotiveCar automotive

BMWBMW

CitroënCitroën

Clarion Co. Ltd.Clarion Co. Ltd.

DaimlerChryslerDaimlerChrysler

FiatFiat

SubaruSubaru

HondaHonda

HyundaiHyundai

MitsubishiMitsubishi

Toyota…Toyota…

Page 9: Introduction to Embedded Software Development

What can CE do : OtherWhat can CE do : Other GatewaysGateways Industrial AutomationIndustrial Automation Set-Top BoxesSet-Top Boxes Medical Devices and SystemsMedical Devices and Systems ATMsATMs Projectors and Large Screen DisplaysProjectors and Large Screen Displays VoIP DevicesVoIP Devices ……

Page 10: Introduction to Embedded Software Development

Windows CE historyWindows CE history First edition released in 1996First edition released in 1996

Windows CE .NET 4.x is widely usedWindows CE .NET 4.x is widely used

The latest version Windows CE 5.0The latest version Windows CE 5.0

Page 11: Introduction to Embedded Software Development

Windows CE featuresWindows CE features

Page 12: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Hardware platformHardware platform

Desktop WindowsDesktop Windows Only runsOnly runs on x86 on x86

architecturearchitecture

Windows CEWindows CE ARM / XscaleARM / Xscale MIPS MIPS PowerPC PowerPC SH SH x86 x86

Page 13: Introduction to Embedded Software Development

Windows CE feature listWindows CE feature list Windows CE can run on different Windows CE can run on different

hardware platforms.hardware platforms.

How can we do that?How can we do that?

Page 14: Introduction to Embedded Software Development

New Platform WizardNew Platform Wizard

The answer is BSP !The answer is BSP !

Page 15: Introduction to Embedded Software Development

Introduction to BSPIntroduction to BSP Board Support Package is the software Board Support Package is the software

that implements and supports the OEM that implements and supports the OEM adaptation layer (OAL) and device adaptation layer (OAL) and device drivers for a standard development drivers for a standard development board (SDB). board (SDB).

HardwareHardware

Operation SystemOperation System

Board Support PackageBoard Support Package

Page 16: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Image SizeImage Size

Desktop WindowsDesktop Windows Windows 3.x : 2-5MBWindows 3.x : 2-5MB Windows 98 : 400MBWindows 98 : 400MB Windows XP : 1.5GBWindows XP : 1.5GB Lager and lager…Lager and lager… Can NOT be Can NOT be

customizedcustomized

Windows CEWindows CE Minimal : 200KBMinimal : 200KB Networking about Networking about

800KB800KB GWES, Shell and GWES, Shell and

Apps about 4MBApps about 4MB Internet Explorer Internet Explorer

about 3MBabout 3MB

Page 17: Introduction to Embedded Software Development

Windows CE feature listWindows CE feature list ComponentizationComponentization

More than 200 optional componentsMore than 200 optional components

Quick and easy to customize OS for a Quick and easy to customize OS for a particular systemparticular system

Page 18: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Real TimeReal Time

Desktop WindowsDesktop Windows No No inherentinherent real real

time supporttime support

Windows CEWindows CE 256 levels of thread 256 levels of thread

prioritypriority Nested interruptsNested interrupts Per-thread quantumsPer-thread quantums Priority inversionPriority inversion

Page 19: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list:

Windows CE provide Real-time supportWindows CE provide Real-time support

Real-time support is essential when Real-time support is essential when dealing with time-critical applications.dealing with time-critical applications.

Page 20: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Power managementPower management

Desktop WindowsDesktop Windows No power No power

managementmanagement

Windows CEWindows CE Battery power / AC Battery power / AC

powerpower Devices can have their Devices can have their

own power stateown power state Turn off unnecessary Turn off unnecessary

devicedevice

Page 21: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Windows CE provides a Power Manager Windows CE provides a Power Manager

to manage device power and improve to manage device power and improve overall OS power efficiencyoverall OS power efficiency

Windows CE can reduce the power Windows CE can reduce the power consumption of a target device and to consumption of a target device and to maintain and preserve the file system maintain and preserve the file system in RAM during the reset, on, idle, and in RAM during the reset, on, idle, and suspend power states.suspend power states.

Page 22: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Programming InterfaceProgramming Interface

Desktop WindowsDesktop Windows ASCII / UNICODEASCII / UNICODE Rich API setRich API set Powerful hardware Powerful hardware

platformplatform

Windows CEWindows CE UNICODE onlyUNICODE only Compact Version of Compact Version of

Win32 API, MFC..Win32 API, MFC.. Processor, RAM, File Processor, RAM, File

System limitationSystem limitation

Page 23: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Windows CE only support UNICODEWindows CE only support UNICODE

CHAR -> TCHAR / WCHARCHAR -> TCHAR / WCHAR strlen -> wcslenstrlen -> wcslen

Some APIs provide limited functionSome APIs provide limited function Windows CE only have limited resourceWindows CE only have limited resource

Page 24: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Micro KernelMicro Kernel

Desktop WindowsDesktop Windows NT series is NT series is

claimed to be micro claimed to be micro kernel. kernel.

9x series is not 9x series is not micro kernel.micro kernel.

Windows CEWindows CE Complete micro kernelComplete micro kernel

File system and device File system and device drivers run on user drivers run on user modemode

Kernel is responsible for Kernel is responsible for passing messagepassing message

Page 25: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Complete micro kernelComplete micro kernel

Enhanced reliabilityEnhanced reliability

Enhanced scalabilityEnhanced scalability

Page 26: Introduction to Embedded Software Development

Compare with Desktop Version:Compare with Desktop Version:Share source codeShare source code

Desktop WindowsDesktop Windows Commercial Commercial

software, source software, source code is MS 1st level code is MS 1st level secret. secret.

Windows CEWindows CE 70% of Windows CE 70% of Windows CE

5.0 source code is 5.0 source code is shared.shared.

User can modify it.User can modify it.

Page 27: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Source code is sharedSource code is shared

User can find shared source code User can find shared source code under “%_WINCEROOT%\private” under “%_WINCEROOT%\private” folderfolder

Page 28: Introduction to Embedded Software Development

Compare with other Embedded Compare with other Embedded OS: Multimedia supportOS: Multimedia support

Other EOS:Other EOS: Little build-in support Little build-in support

for audio & videofor audio & video No commercial web No commercial web

browser.browser.

Windows CEWindows CE Rich UI elementRich UI element Windows Media Windows Media

Player 9, support Player 9, support mp3, wav, avi, mp3, wav, avi, wmv…wmv…

Internet Explorer 6 Internet Explorer 6 & Pocket IE& Pocket IE

Page 29: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Rich User Interface ElementRich User Interface Element Strong Multimedia supportStrong Multimedia support Interact with desktop windowsInteract with desktop windows

Pocket Word, Excel, PowerPoint, adobe Pocket Word, Excel, PowerPoint, adobe readerreader

Pocket MSN messengerPocket MSN messenger Pocket IE, Windows Media PlayerPocket IE, Windows Media Player SQL Server CE editionSQL Server CE edition ACD SeeACD See … …… …

Page 30: Introduction to Embedded Software Development

Compare with other Embedded Compare with other Embedded OS: Programming InterfaceOS: Programming Interface

Other EOS:Other EOS: Different Different

programming programming interfaceinterface

Typically use C/C++ & Typically use C/C++ & j2mej2me

Windows CEWindows CE Win32 APIWin32 API MFC, ATL, STL…MFC, ATL, STL… COM, ActiveXCOM, ActiveX .NET Compact .NET Compact

FrameworkFramework Java VMJava VM EVB, EVC…EVB, EVC…

Page 31: Introduction to Embedded Software Development

Windows CE feature list:Windows CE feature list: Easy to get start for Windows Easy to get start for Windows

programmerprogrammer

Support multiple programming Support multiple programming languageslanguages

Page 32: Introduction to Embedded Software Development

Compare with other Embedded Compare with other Embedded OS: image size and real timeOS: image size and real time

Other EOS:Other EOS: RTLinux, µC/OS-II RTLinux, µC/OS-II

support hard real support hard real timetime

Vxworks min size : 8kVxworks min size : 8k µC/OS-II min size : 2kµC/OS-II min size : 2k

Windows CEWindows CE No hard real time No hard real time

supportsupport Image size is too Image size is too

large for specific large for specific usageusage

Page 33: Introduction to Embedded Software Development

Windows CE advantages:Windows CE advantages: Rich optional components and Rich optional components and

functions.functions. Can be strongly customized.Can be strongly customized. Easy to use.Easy to use. Same programming interface with Same programming interface with

desktop windows.desktop windows. Rich MS and third party applications.Rich MS and third party applications.

Page 34: Introduction to Embedded Software Development

Windows CE Windows CE disadvantages:disadvantages: Image size is still too large for specific Image size is still too large for specific

use.use. Real time?Real time? Not free : Not free :

3$ per runtime license3$ per runtime license 995$ for Platform Builder995$ for Platform Builder

Performance & Security ??Performance & Security ??

Page 35: Introduction to Embedded Software Development

HomeworkHomework1.1. Build your own Windows CE platform Build your own Windows CE platform

with Platform Builder and run it.with Platform Builder and run it.

2.2. Be familiar with Windows CE GUI, File Be familiar with Windows CE GUI, File System structure, Control Panel…System structure, Control Panel…

3.3. Write a tic-tac-toe application with Write a tic-tac-toe application with Platform Builder and play it on your Platform Builder and play it on your own Windows CE platform.own Windows CE platform.