Herzlich willkommen! Visual Studio, Windows Embedded & Co. Alexander Wechsler (mailto:info@wechsler-consulting.de) Frank Prengel (http://blogs.msdn.com/frankpr) Visual Studio 2005 & Co. App Development for Windows CE Devices Frank Prengel Embedded Developer Evangelist Microsoft Germany http://blogs.msdn.com/frankpr What is Windows CE? Microsoft’s Embedded Operating System … designed for “small” devices Virtual Memory, Multithreaded Completely 32 bit Real-time performance Uses a subset of the Win32 API Win32 defined by Windows XP Legacy APIs removed Less of a subset every version Over 2,000 functions What is Windows CE? Componentizable OEMs define what parts of the OS to use Over 500 components available Multiple CPU architectures supported SH4, MIPs, x86, ARM OS is CPU agnostic Not dependent on x86 compatible PCs Not dependent on PC memory map Not dependent on specific PC hardware Windows CE Architecture OEM Microsoft ISV, OEM Applications Embedded Shell Remote Connectivity Windows CE Shell Services WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Kernel Library OAL Bootloader GWES Drivers File System Manager Device Manager Device drivers File drivers OEM Hardware IrDA TCP/IP Windows CE Shared Source Program Shared Source Public Access to over 2.5 M lines of source code Ability to create commercial derivatives Available in all versions of Windows CE worldwide Academic edition for courseware creation Shared Source Premium More source available Ability to create commercial derivatives Limited access Available only in eligible countries Licencing Windows CE 5.0 CORE PRO PRO PLUS AVI Filter ActiveSync (Inbox Sync and Pocket Outlook Database Sync) Microsoft Excel Viewer Bluetooth Gateway AV Renderer Sample Microsoft Image Viewer Digital Rights Management (DRM) AYGShell API Set Microsoft PDF Viewer DRM license acquisition OCX Bluetooth LAP and Configuration Utility Microsoft PowerPoint Viewer Embedded Database (EDB) File Server (10 connection limit) Microsoft Word Viewer File Server (2 connection limit) Help Jscript Internet Explorer (full browser and Pocket IE) VBScript Inbox Windows Error Reporting Pocket Outlook Object Model API *All existing Core components RAS/PPTP Server Remote Desktop Protocol (RDP) Standard SDK for Windows CE (AYG) Streaming Media Playback Transcriber Handwriting Recognition Engine and Application Windows Messenger Windows Media Player (WMP) application Windows Thin Client Shell WMA,WMV, and MP3 Streaming (via WMP) WordPad * Includes all components plus viewers above Developing a CE 5.0 Device BSP (OAL, Boot Loader, Drivers) Standard SDK Platform Builder Export SDK Embedded Visual C++ Visual Studio 2005 Configuration Build Device Under Development Download Debug Device Emulation Development Tools for CE Platform Builder eMbedded Visual C++ Native Applications Visual Studio 2005 Managed Applications C/C++ C# / VB.NET Win32 .NET Compact Framework 2.0 Windows CE 5.0 Operating System Platform Builder Builds the OS from source code + binary libraries Can Build C/C++ applications Reduced IDE Code editor support Kernel debugger Remote Tools Emulator eMbedded Visual C/C++ 4.0 Similar to Microsoft Visual C++ V6.0 Source code branch from VS6 Special features specific to Windows CE Built in compilers and linkers for supported processors Debug tools, remote tools, and platform manager Emulation environment to develop without device Support for CE 5.0 w/ SP4 & SDK eVC++ Support Life Cycle First released: 4/4/2002 Mainstream support ends: 6/30/2007 Public download ends: June 2007 Extended support ends: 6/30/2009 Online support ends: 6/30/2013 Visual Studio 2005 “Personalized productivity” Testers Architects Enterprise Devs Consultants Professionals VB6 Devs Part-Timers Hobbyists Students Enthusiasts Novices Visual Studio 2005 New Features Parity with desktop development Support for Multiple Platforms Windows Mobile 2003 SE; Windows Mobile 5.0 and Windows CE 5.0 Platform Switching Support Compact Framework v1.0 and v2.0 Upgrade from v1.0 to v2.0 New Managed Device Controls in v2.0 Enhanced WYSIWYG Forms Designers Skins, Orientations, Rotations New Managed Libraries in Windows Mobile 5.0 Microsoft Device Emulator Device Emulator Manager More Enhancements Device Development in C/C++ Migrate projects from eMbedded Visual C++ 4.0 Updated Device Compilers and Native Libraries Orders of magnitude faster native debugger Microsoft SQL Server 2005 Mobile Edition Remote Tools for Devices Code Snippets Support for Device CAB (Setup) Projects WinCE vs Windows Mobile WinCE 3.0 PPC 2000, PPC 2002, SP 2002 WinCE 4.2 WM 2003, WM 2003 SE WinCE 5.0 WM 5.0 Runtime support CE - CF CF 2.0 CF 1.0 WinCE 5.0 + (RTM) + WinCE 4.1, 4.2 o (SP1) + PPC 2000, 2002 - + (RAM) SP 2002 - - PPC 2003, SE + (RAM) + (ROM) SP 2003, SE - + (ROM) WM 5.0 + (RAM) + (ROM) Tool support CE - CF WinCE 5.0 WinCE 4.1, 4.2 PPC 2000, 2002 SP 2002 WM 2003, SE WM 5.0 CF 2.0 VS2005 VS2005 CF 1.0 VS2003 VS2003 VS2005, 2003+SDK VS2005+SDK VS2005+SDK .NET Compact Framework Visual Studio Rich class libraries to make your life easy! FX GUI: Forms GUI: Drawing (2D & 3D) Collections IO, Networking, Crypto Native interop Web services Data & Xml Globalization Execution Engine provides typesafe runtime for managed code CLR Type system Loader JIT Compiler Garbage collector Debugger Low level operating system-specific functionality Windows CE Threads Memory File I/O Networking Localization CF – Perf. comparison Pocket PC 2003, XScale 400MHz Larger = Better V1 SP2 V2 Beta1 V2 Beta2+ Method Calls (Calls/sec) 3.7M 7.1M 8.1M Virtual Calls (Calls/sec) 2.4M 2.7M 5.6M Simple P/Invoke (Calls/sec) 733K 1.7M Primes (to 1500) (iterations/sec) 562 832 853 GC Small (8 bytes) (Bytes/sec) 1M 7M 7.5M GC Array (100 int’s) (Bytes/sec) 25M 43M 112M XML Text Reader 200KB (seconds) Smaller = Better V1 DataSet (static data) 4 tables, 1000 records (seconds) DataSet (ReadXml) 3 tables, 100 records (seconds) 1.7 1.2 0.72 0.69 13.1 6.6 7.3 3.3 12.3 6.5 5.2 4.4 Native Development - Facts Debugging Attach to Process Just-in-time (JIT) Post-mortem (kdump) Code Signing Adding test certificates Signing and provisioning Resource Editor ActiveX control development Softkey menus Debugger Feature set Breakpoints, stepping, break all Autos, locals, registers Memory window, disassembly (native only) Threads, call stack, modules Attach, detach, JIT (native only) Unsupported Interoperability debugging Driver development Data breakpoints Edit and continue Native Development - Facts Emulator ActiveSync Folder sharing Save State Multi-platform development High Resolution and Orientation awareness Command line building Property Sheets Feature Comparison x86 Emulator Device Emulator Instruction set is a subset of the host PC’s instruction set Emulates a CEPC board: ISA, PCI busses, basic video, keyboard, mouse, audio, network adapter, etc. Extends the CEPC, adding Folder Sharing, “DMA” interface, and resizable display ARM920TDMI instructions Samsung SMDK2410 board: PCMCIA, NAND Flash, LCD, touchscreen, NE2000 and CS8900 netcards, keyboard, 3 UARTs, audio Extends the SMDK2410, adding resizable display, “DMA” interface, resizable RAM (up to 256meg) Faster, more robust Folder Sharing Runs on 64-bit Windows Mixed Projects Possible to mix & match native & managed projects in one solution Be sure to target the same platform... Build order, dependencies, deployment dirs, etc., can be specified No seamless debugging at this point Can't attach native & managed debugger at the same time Set reg key to enable attaching the managed debugger to a running process REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ .NETCompactFramework\Managed Debugger] "AttachEnabled"=dword:00000001 SQL Server 2005 Mobile Edition Small, high-performance database Provides replication, sync, transactions, encryption SqlCeResultSet: scrollable updateable cursor SQL 2005 management tools VS2005 integration Supported by CF 2.0 & Windows CE 5.0 What's next? CF 2.0 support for WinCE 4.2 no tools support, though... WinCE 5.0 device emulator image & BSP for PB 5.0 Device emulator v2+ Better integration b/w PB & VS Emulator v2+ Break apart the monolith DeviceEmulator.exe into a collection of DLLs Pluggable CPU emulators Pluggable motherboard emulators Pluggable peripheral devices Layer the peripheral device emulation code One virtual device can have multiple Windows-side implementations i.e., emulated 16550 UART could plug into code that binds to a Windows COMx: port, or to a Windows file, or to a console window Virtual USB and PCMCIA devices plug into virtual controllers Testability – COM interfaces to give test automation access the emulator’s peripherals Windows Embedded Roadmap 2005/2006 2005 SP2 2006+ Feature Pack 1 Feature Pack v. Next Windows CE Shared Source Program Shared Source Public Access to over 2.5 M lines of source code Ability to create commercial derivatives Available in all versions of Windows CE worldwide Academic edition for courseware creation Shared Source Premium More source available Ability to create commercial derivatives Limited access Available only in eligible countries Licencing Windows CE 5.0 CORE PRO PRO PLUS AVI Filter ActiveSync (Inbox Sync and Pocket Outlook Database Sync) Microsoft Excel Viewer Bluetooth Gateway AV Renderer Sample Microsoft Image Viewer Digital Rights Management (DRM) AYGShell API Set Microsoft PDF Viewer DRM license acquisition OCX Bluetooth LAP and Configuration Utility Microsoft PowerPoint Viewer Embedded Database (EDB) File Server (10 connection limit) Microsoft Word Viewer File Server (2 connection limit) Help Jscript Internet Explorer (full browser and Pocket IE) VBScript Inbox Windows Error Reporting Pocket Outlook Object Model API *All existing Core components RAS/PPTP Server Remote Desktop Protocol (RDP) Standard SDK for Windows CE (AYG) Streaming Media Playback Transcriber Handwriting Recognition Engine and Application Windows Messenger Windows Media Player (WMP) application Windows Thin Client Shell WMA,WMV, and MP3 Streaming (via WMP) WordPad * Includes all components plus viewers above Resources Windows CE documentation http://msdn.microsoft.com/library/en-us/wceintro5/html/ wce50oriWelcomeToWindowsCE.asp Windows Embedded Partner Web Site http://www.mswep.com Get the Windows Embedded Introductory Kit http://www.windowsembeddedkit.com Embedded development http://msdn.microsoft.com/embedded Windows CE development http://msdn.microsoft.com/embedded/windowsce/default.aspx More Information http://msdn.microsoft.com/vstudio © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
© Copyright 2025