Post on 17-Jan-2016
Windows CE DevelopmentWindows CE Development
He Jianbang
22
AgendaAgenda
Introduction Introduction Features OverviewFeatures Overview Development OverviewDevelopment Overview Tools DemonstrationTools Demonstration RoadmapRoadmap How To Start Developing!How To Start Developing!
33
Thin ClientsThin Clients
Digital Audio Digital Audio Receivers and PlayersReceivers and Players
Smart DisplaysSmart Displays
Voice-over IPVoice-over IPDevicesDevices
Medical DevicesMedical Devices
IndustrialIndustrialAutomationAutomation
Wide Range Of Devices Wide Range Of Devices
Mobile Mobile HandheldsHandhelds
Set-Top BoxesSet-Top Boxes
GatewaysGateways
44
What Is Windows CE .NET?What Is Windows CE .NET?
Microsoft’s latest embedded OS platform Microsoft’s latest embedded OS platform 32-bit, real-time, Win32-based API32-bit, real-time, Win32-based API Easy to use, familiar development toolsEasy to use, familiar development tools Highly componentized, small-footprint Highly componentized, small-footprint Broad CPU supportBroad CPU support Full feature functionality and flexibilityFull feature functionality and flexibility Low cost tools and run-time licensingLow cost tools and run-time licensing
55
Windows CE ArchitectureWindows CE ArchitectureOverview of Windows CE Architecture
The Hardware
The OEM Adaptation Layer
The Kernel Module
The File sys Module
The GWES Module
Communication Support
66
Windows CE ArchitectureWindows CE Architecture
OEM HardwareOEM HardwareOEM HardwareOEM Hardware
Embedded ShellEmbedded ShellEmbedded ShellEmbedded Shell
ApplicationsApplicationsApplicationsApplications
WIN32 APIsWIN32 APIsCOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPICOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
WIN32 APIsWIN32 APIsCOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPICOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Windows CE Shell ServicesWindows CE Shell ServicesWindows CE Shell ServicesWindows CE Shell Services
Remote Remote ConnectivityConnectivity
Remote Remote ConnectivityConnectivity
KernelKernelLibraryLibraryKernelKernelLibraryLibrary
IrDAIrDAIrDAIrDAGWESGWESGWESGWES Device Device ManagerManagerDevice Device
ManagerManagerFileFile
ManagerManagerFileFile
ManagerManagerTCP/IPTCP/IPTCP/IPTCP/IP
OALOALBootloaderBootloader
OALOALBootloaderBootloader DriversDriversDriversDrivers Device Device
driversdriversDevice Device driversdrivers File driversFile driversFile driversFile drivers
MicrosoftMicrosoftMicrosoftMicrosoft OEMOEMOEMOEM ISVISVISVISV
NetworkNetworkdriversdrivers
NetworkNetworkdriversdrivers
77
The OEM Adaptation LayerThe OEM Adaptation LayerLayer between the kernel and the H/W
Coded by OEMs to adapt Win CE to their own platforms
Linked with processor-independent code provided by MS to build the kernel
Set of functions related to system startup, interrupt handling, power management, profiling, timer, and clock
88
Shipping BSPs In 4.2Shipping BSPs In 4.2FamilyFamily CPUCPU SDB NameSDB Name BSPBSP KernelKernel
ARMARM
Intel SA1110Intel SA1110 Ship CSP for SA11x1Ship CSP for SA11x1 N/AN/A ARMV4ARMV4
Samsung S3C2410Samsung S3C2410ARM920ARM920
Samsung SMDK-2410 SDBSamsung SMDK-2410 SDBARM Integrator AP Dev KitARM Integrator AP Dev Kit
Samsung_2410Samsung_2410ARMIntegratorARMIntegrator ARMV4IARMV4I
Intel XScaleIntel XScale Intel Lubbock Platform Intel Lubbock Platform (DBPXA250)(DBPXA250) XSC1BDXSC1BD ARMV4ARMV4
ARMV4IARMV4I
MIPSMIPS
MIPS II flavorsMIPS II flavorsAlchemy DBAu1500 SDB (web Alchemy DBAu1500 SDB (web release)release)NEC DDB-Vr4122 (Eagle) SDB NEC DDB-Vr4122 (Eagle) SDB
DBAu1500DBAu1500EagleEagle MIPSIIMIPSII
MIPS IV flavors (NEC MIPS IV flavors (NEC Vr5432)Vr5432) NEC Solution Gear SeriesNEC Solution Gear Series SG2_VR5500SG2_VR5500
MIPSIIMIPSIIMIPSII_FPMIPSII_FPMIPSIVMIPSIVMIPSIV_FPMIPSIV_FP
SHxSHx
SH4SH4 Hitachi US7750 HARP SDB Hitachi US7750 HARP SDB (“Aspen”) (“Aspen”) AspenAspen SH4SH4
SH3SH3 Hitachi US7729 HARP SDB Hitachi US7729 HARP SDB (“Keywest”) (“Keywest”) KeywestKeywest SH3SH3
x86x86
X86 (Intel, AMD, Via, X86 (Intel, AMD, Via, SiS…)SiS…) Generic CE/PC machineGeneric CE/PC machine CEPCCEPC x86x86
Geode GX1 seriesGeode GX1 series National Pompano PlatformNational Pompano PlatformAny Geode based platformAny Geode based platform GeodeGeode x86x86
99
BSP’sBSP’s
Platform Builder ships with at least one Platform Builder ships with at least one BSP for each supported processorBSP for each supported processor
Many 3rd party BSP’sMany 3rd party BSP’s Roll your own…Roll your own…
1010
Board Support PackagesBoard Support Packages
ElementElement DescriptionDescription
Boot loaderBoot loader During development, downloads the During development, downloads the operating system (OS) images. operating system (OS) images.
OEM adaptation OEM adaptation layer (OAL) layer (OAL)
Links to the kernel image and supports Links to the kernel image and supports hardware initialization and management. hardware initialization and management.
Device drivers Device drivers Support peripherals on-board or are Support peripherals on-board or are attached at run time. attached at run time.
Configuration files Configuration files Once created, a BSP can be reconfigured Once created, a BSP can be reconfigured through environment variables and .bib and through environment variables and .bib and .reg file modifications. .reg file modifications.
The following table shows the elements that are contained in a board support package (BSP).
1111
Windows CE Boot LoadersWindows CE Boot LoadersWindows CE Boot LoadersWindows CE Boot Loaders The boot loader is a utility that is an integral part of the OEM device development process and, in some cases, the boot loader is also included in the final OEM product. The general purpose of the boot loader is to place the OS image into memory and then jump to the OS startup routine. The boot loader can obtain the OS image in a number of different ways, including loading it over a cabled connection, such as Ethernet, universal serial bus (USB), or serial. The boot loader also loads the OS from a local storage device, such as Compact Flash, or hard disk. The boot loader may store the OS image in RAM or in nonvolatile storage, such as flash memory, electrically erasable programmable read only memory (EEPROM), or some other storage device for later use.
1212
Windows CE Is DifferentWindows CE Is DifferentHardwareHardware
Desktop/Laptop PCDesktop/Laptop PC 2 GHz Pentium IV2 GHz Pentium IV 256 K 256 K 512 K cache 512 K cache 512 M 512 M 1 G DRAM 1 G DRAM 100 G hard drive100 G hard drive 1280x1024 display1280x1024 display 2 2 4 hour battery requirement 4 hour battery requirement 50 Watts50 Watts Keyboard & mouseKeyboard & mouse Extensible throughExtensible through
PCI, AGC, USB, EISA, 1394, PCI, AGC, USB, EISA, 1394, PC-Card, CF, enet, …PC-Card, CF, enet, …
DeviceDevice 400 MHz RISC400 MHz RISC 4 K 4 K 8K cache 8K cache 4 M 4 M ~32 M DRAM ~32 M DRAM 4 M 4 M ~32 M Flash / ROM ~32 M Flash / ROM 170x170 170x170 640x480 640x480 24 hour battery requirement24 hour battery requirement <1 to 2 Watts<1 to 2 Watts Stylus or ThumbStylus or Thumb Not very extensibleNot very extensible
PC-Card, SD, CFPC-Card, SD, CF
1313
Device Device DevelopmentDevelopment
Builds and Builds and Brings Up DeviceBrings Up Device
Debug Debug Device Device Debug Debug Device Device
Build DeviceBuild DeviceImageImage
Build DeviceBuild DeviceImageImage
Component Component Catalog incl. Catalog incl.
.NET CF .NET CF
Component Component Catalog incl. Catalog incl.
.NET CF .NET CF
ApplicationApplicationDevelopmentDevelopment
Builds Rich Builds Rich ApplicationsApplications
Smart Device Smart Device ProgrammabilityProgrammabilitySmart Device Smart Device
ProgrammabilityProgrammability
Visual Studio .NETVisual Studio .NETVB/C#VB/C#
Visual Studio .NETVisual Studio .NETVB/C#VB/C#
eMbedded Visual eMbedded Visual C++ 4.0C++ 4.0
C/C++ MFC/ATLC/C++ MFC/ATL
eMbedded Visual eMbedded Visual C++ 4.0C++ 4.0
C/C++ MFC/ATLC/C++ MFC/ATL
Device UnderDevice Under
DevelopmentDevelopment
Development CycleDevelopment CycleFrom Platform To ApplicationsFrom Platform To Applications
Download Device Specific Download Device Specific Windows CE OS and ApplicationsWindows CE OS and Applications
via KITLvia KITL via KITLvia KITL
Export SDK with Device Specific Export SDK with Device Specific Win32 APIs or use Standard SDKWin32 APIs or use Standard SDK
Device Device EmulationEmulation
Platform Platform BuilderBuilder
Platform Platform BuilderBuilder
1414
Windows CE .NETWindows CE .NETToolsTools
Operating System DevelopmentOperating System Development Platform BuilderPlatform Builder
Configuration, debugging tool for deploying an OSConfiguration, debugging tool for deploying an OS
Application DevelopmentApplication Development eMbedded Visual C++ 4.0 SP2eMbedded Visual C++ 4.0 SP2
““Native” application developmentNative” application development C, C++, MFC, ATLC, C++, MFC, ATL
Visual Studio.NET 2003Visual Studio.NET 2003 ““Managed” application developmentManaged” application development Visual Basic .NET, C# .NETVisual Basic .NET, C# .NET .NET Compact Framework.NET Compact Framework
1515
Windows CE .NET RoadmapWindows CE .NET Roadmap
2002-20032002-2003 20042004
Version 4.2Version 4.2 RG, VoIP optimizationsRG, VoIP optimizations IE 6, WM9IE 6, WM9 .NET CF RTM.NET CF RTM App compat w/ PPCApp compat w/ PPC New “Core” licenseNew “Core” license
2005+2005+
““Macallan”Macallan” Faster time to marketFaster time to market Adaptive device intelligenceAdaptive device intelligence Multimedia capture, encodingMultimedia capture, encoding Direct3D MobileDirect3D Mobile Enhanced securityEnhanced security
““Next Next Major OS Major OS Release”Release”
““Visual Studio for Visual Studio for Yukon”Yukon”
““Visual Visual Studio for Studio for Longhorn”Longhorn”
VS.NET 2003VS.NET 2003 Smart Device Smart Device
Programmability RTMProgrammability RTM .NET Compact Framework .NET Compact Framework
v1.0 RTMv1.0 RTM
1616
Why Windows CE .NET?Why Windows CE .NET?
Technology portfolio depthTechnology portfolio depth Low total cost of developmentLow total cost of development Customization and differentiationCustomization and differentiation Development and marketing supportDevelopment and marketing support
1717
Start Building Devices!Start Building Devices! Follow Me Step By Step…Follow Me Step By Step… Read the How-Tos and TutorialsRead the How-Tos and Tutorials
http://msdn.microsoft.com/embedded/getstart/basics/tutorialsce/defaulthttp://msdn.microsoft.com/embedded/getstart/basics/tutorialsce/default.aspx.aspx
Participate in Participate in newsgroups, chats, eventsnewsgroups, chats, events http://www.microsoft.com/windows/embedded/communityhttp://www.microsoft.com/windows/embedded/community
Get deep technical information and documentation updates Get deep technical information and documentation updates http://http://msdn.microsoft.commsdn.microsoft.com/embedded/embedded
Engage with Windows Embedded PartnersEngage with Windows Embedded Partners http://http://www.mswep.comwww.mswep.com
1818
Key WordsKey Words PlatForm Builder & EVCPlatForm Builder & EVC BSP & OALBSP & OAL SDKSDK Eboot.nb0 &NK.bin Eboot.nb0 &NK.bin