Making Windows CE.net Work With Custom Platforms James Y. Wilson

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

Microsoft and Community Tour 2011 – Infrastrutture in evoluzione Application Virtualization: Package and Deploy Virtual Applications Level Advanced.
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
Device Drivers Witawas Srisa-an Embedded Systems Design and Implementation.
Mobile Application Development using Microsofts.NET Framework (Masters Seminar) by Ranjith Lingamaneni.
Microsoft ® Official Course First Look Clinic Overview of Windows 8 By Ragowo Riantory, S.Kom, MCP.
Threads, SMP, and Microkernels
Building Embedded Systems With Windows® CE Platform Builder 3
Developing Windows ® CE Applications With Visual Basic ® Larry Roof tonked
Using MapuSoft Instead of OS Vendor’s Simulators.
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
Implementing Fault Tolerant Systems with Windows CE.NET Reliable System Design 2010 by: Amir M. Rahmani.
Presentation 11: SOAP on small devices. Ingeniørhøjskolen i Århus Slide 2 af 14 Outline Which small devices? What are the limitations and what kind of.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
请点击以下链接下载 WinHEC 的演讲材料 Download WinHEC presentations here:
Lesson 15 – INSTALL AND SET UP NETWARE 5.1. Understanding NetWare 5.1 Preparing for installation Installing NetWare 5.1 Configuring NetWare 5.1 client.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Final Presentation Spring 2003 Project ID: D0822 Project Name: WinCE integrating BT media share application Supervisor: Evgeny Rivkin Performed by: Maya.
The slides for this event will be posted at:
Amit Chopra APP209 Introducing “Orcas” Huh ? What’s “Orcas”?
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Windows Embedded Overview Windows CE, XP Embedded, and WEPOS Frank Prengel Embedded Developer Evangelist Microsoft Germany.
SharePoint Portal Server 2003 JAMES WEIMHOLT WEIDER HAO JUAN TURCIOS BILL HUERTA BRANDON BROWN JAMES WEIMHOLT INTRODUCTION OVERVIEW IMPLEMENTATION CASE.
Making Windows CE.net Work With Custom Platforms James Y. Wilson.
Intelligent Devices Powered By Windows CE Lance Lillie Systems Engineer Walter Myers III ADCU Technical Evangelist Microsoft Corporation.
September 2008 IT Software Development Guide.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
1 Developing Apps For The Pocket PC Platform Anup Mistry Technology Manager D-2 (22 nd May ’03)
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
Windows CE 시스템 개발 개요. 임베디드시스템소프트웨어 -Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle.
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
Overview of System Development. Overview Selecting a Windows Embedded Operating System The Windows CE Platform Development Cycle The Application Development.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Providing Bluetooth Functionality on Embedded Devices: A look at Embedded Operating Systems and Bluetooth Stacks Brian Fox Supervisors: Dr Greg Foster.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Android architecture & setting up. Android operating system comprises of different software components arranges in stack. Different components of android.
Windows CE 시스템 개발 개요. 모바일운영체제 - Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle  The.
Processes Introduction to Operating Systems: Module 3.
Module 2: Configuring Windows CE.  Overview Introduction to Platform Builder Platform Development Life Cycle Setting up the CE Device Modifying a Platform.
Kernel Architecture Process Management Memory Management.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Hands-On Virtual Computing
Troubleshooting Workflow 8 Raymond Cruz, Software Support Engineer.
Windows CE Overview Features & Architecture 김동혁.
CITA 171 Section 1 DOS/Windows Introduction. DOS Disk operating system (DOS) –Term most often associated with MS-DOS –Single-tasking operating system.
Develop VB in WinCE Maker : Axel Chou. Introduction to WinCE 3.0 One of the Microsoft Embedded System –WinCE 3.0 –Embedded NT 4.0 Customize : Minimize.
Introduction to Operating Systems Concepts
Computer System Structures
Introduction ITEC 420.
Android Mobile Application Development
Introducing the Windows Mobile development
Muen Policy & Toolchain
Current Generation Hypervisor Type 1 Type 2.
Windows 95 & 98 Steve Boyle Mike Forster Maggie Hamill Nancy O’Brien.
Windows Internals Brown-Bag Seminar Chapter 1 – Concepts and Tools
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Module 1: Introduction to Windows CE
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
CMPE419 Mobile Application Development
Overview of System Development for Windows CE.NET
Presentation transcript:

Making Windows CE.net Work With Custom Platforms James Y. Wilson

Brief Biography Lead software engineer for integration of CE on various custom platforms Various publications on Windows CE system development Coauthor of “Building Powerful Platforms With Windows CE” published by Addison-Wesley in Q4 1999 Microsoft Embedded MVP Developer of Windows 3.x/9x/NT device drivers

Agenda Introduction to CE OS Architecture Steps to adaptation for custom platforms Tool-chain Real-time capabilities and limitations Licensing options

Windows CE (In a Nut Shell) 32 bit, preemptive, multithreaded “Real-Time” Used for implementation of PocketPC devices (PDAs, Phone Edition, SmartPhone devices) Platform configurations for: Industrial controllers Web pads Gateways Internet appliances PDAs Mobile/IP Phones Set top boxes

Available Apps and Services End user apps Viewers (Excel, Word, PowerPoint, Image, and PDF) Inbox Pocket Internet Explorer (PIE) Internet Explorer (based on IE 6.0) Remote Desktop Terminal Emulation VoIP Windows Messenger WordPad MediaPlayer Installers More! Service components C/C++ libraries and runtime (exception handling, RTTI) COM/DCOM Active Template Library .NET CF SNMP LDAP Microsoft Message Queuing MFC OBEX SOAP, XML (HTTP, XQL, XSLT, SAX) SQL Server CE Shells (console, graphical, skinnable, speech)

Windows CE Versions Windows CE 1.0 Windows CE 2.0 Released fall 1996 Windows CE 2.0 Released 1997 2.01 (service pack for 2.0) Windows CE 2.1 Upgrade from Windows CE 2.0 2.11 Introduced in 1998 Windows CE 3.0 Released 2000 Windows CE.net 4.0 Released 2002 Windows CE.net 4.2 Released 2003

Target Hardware Minimum hardware requirements Reference Platforms Memory Management Unit for paged virtual memory Timer Certified 32 bit processor (ARM cores, MIPS, PPC, SH, x86) Reference Platforms Priced from $200 for x86 platform Provides “Board Support Package” Many single board computers and reference designs

OS Architecture Microsoft OEM ISV, OEM Applications WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Windows CE Shell Services Remote Connectivity Embedded Shell Kernel IrDA GWES Device Manager File Manager TCP/IP OAL Bootloader Drivers Device drivers File drivers OEM Hardware

Modular OS OS divided into .exe/.dll modules (NK.exe contains kernel) Modules further divided using .lib files Modules run in Flash (uncompressed) or RAM (compressed in Flash, uncompressed in RAM) ROM image sizes: 400K minimum: executive and file system 1200K: networking (IPv6, RTP, SMB/CIFS, RAS/PPP, WLAN, BT), no graphics 4MB: +graphics, basic shell 6MB: +hand writing recognition, etc.

Stack (reserved space) Virtual Address Space FFFF FFFF 03FF FFFF COREDLL.DLL Other ROM DLLs NK “Slot” C200 0000 Kernel Space 8000 0000 XIP DLL space Large Memory Area (memory mapped files) 0200 0000 4200 0000 non-ROM DLLs Slot 32 Process 32 4000 0000 Slot 31 Process 31 3E00 0000 . Free virtual space Stack (reserved space) Heap (reserved space) Resources Read write data 0800 0000 Slot 3 Process 3 Read only data 0600 0000 Slot 2 Process 2 0400 0000 Code Slot 1 Slot 0 DLLs 0200 0000 0001 0000 Act. Process 0000 0000 reserved 0000 0000

Steps for Adaptation to a Custom Platform Boot loader development OEM Adaptation Layer (OAL) Device driver development Selection/development of application suite Test and validation Platform SDK generation

Bootloader Technically not required for production build Performs minimal processor and memory initialization Configures debug ports Downloads OS image into RAM if debug (from TFTP server, serial, or parallel ports) Vector to ROM if production or disconnected, otherwise RAM Optionally provide OS update utility Many examples provided in Platform Builder (dialup bootloader with security)

OEM Adaptation Layer Contains platform specific code Performs platform initialization ISR (support for nested interrupts) Implements power management Provides specified services called by Kernel Statically linked at build time to kernel (NK.exe)

OEM Adaptation Layer (2/2) Source examples provided for various reference platforms Available from 3rd parties in Board Support Package (BSP)

Device Classes Defined: Devices which share common attributes grouped to form a category or “class” Enables congregation of common driver code (class/miniport model) New device classes defined by Microsoft Because primary calling module, GWES, not provided in source form

Device Classes (continued)

Device Driver Models Defined: Common mechanism for constructing interfaces between identified driver layers Not an API, but a mechanism supported by a defined API CE supports certain Windows 9x/NT driver models, other driver models unique to CE ISV’s and IHV’s may define new driver models

Device Driver Models (continued) Windows CE supported driver models Stream-interface NDIS 4.0 Printer Miniport (partial) Native Windows NT ACM USB

Device Driver Architecture Device Manager Stream-interface Stream-interface Stream-interface Driver MDD Native Driver DDSI Card Services PDD Stream-interface NDIS Wrapper Stream-interface USB Interface NDIS NDIS Miniport USBD USB Driver Card Services NDIS Wrapper HCD

Device Driver Architecture (Continued) GWE Subsystem DDI DDI Monolithic Device Driver MDD Native Driver Defined by Microsoft DDSI PDD

Device Driver Architecture (Continued) Consists of DLL’s and object module libraries Drivers run in user mode Allows access to application level resources (MFC, COM, ATL, etc.) Prevents kernel crashes due to driver exceptions Supports software assisted driver debugging

Device Manager Primarily dedicated to Stream-interface Drivers Loading and unloading Translation of application level calls Power management notifications Enumeration of PC Card devices Exists in a separate process space Implications for buffer pointers Single driver instance shared by all calling applications

Stream-interface Driver Model Used most commonly Basis of certain driver models (ex.: USB and NDIS) Supports installable devices Standard Win32 file I/O interface Exposed only through the Device Manager Often used in combination with the Native Driver Model

Stream-interface Driver Model (Continued) Required entry points (XXX = Device File Name) in approximate order of initialization: XXX_Init XXX_IoControl XXX_Open XXX_Read XXX_Write XXX_Seek XXX_PowerUp XXX_Deinit XXX_Close XXX_PowerDown

Native Driver Model Supports onboard devices only Provides class/miniport layering Model Device Driver (MDD) layer Provided by Microsoft Communicates with GWES and kernel Handles interrupts Platform Dependent Driver (PDD) layer Contains code to access the hardware Focus of changes for integration of CE with a custom platform

Other Device Driver Models Services.exe, intended for non-device related modules USB Driver Model NDIS 4.0 miniport Printer miniport Audio Compression Manager Many drivers implemented using a hybrid driver model (ex.: RS-232 serial driver) Implementation of custom driver models possible Driver Control Program (DCP) must be defined (ex.: USBD.dll)

Processing Interrupts Different for installable devices (ex.: PC Card and USB) For onboard devices, first processed by an ISR in the OAL Lower priority interrupts disabled while in ISR, with nesting of higher priority interrupts Interrupt Service Thread (IST) is signaled IST generally running at high priority, do not block on resources in lower priority threads

Processing Interrupts

Accessing Physical Resources Must request user mode address mapped to physical memory May use functions available in CEDDK.LIB Other driver models provide similar functions Example source...

Accessing Physical Resources #define UNCACHED_OFFSET 0x80000000 #define UNCACHEDMEMORY(address) (address |\ UNCACHED_OFFSET) #define MY_DEVICE_FRAME_BUFFER 0xB0000 #define MY_DEVICE_FRAME_BUFFER_LENGTH 0x20000 PVOID pMappedMemory = MmMapIoSpace((PHYSICAL_ADDRESS) UNCACHEDOFFSET(MY_DEVICE_FRAME_BUFFER), (ULONG)MY_DEVICE_FRAME_BUFFER_LENGTH, FALSE); ASSERT(pMappedMemory != NULL); ... MmUnmapIoSpace(pMappedMemory, (ULONG)MY_DEVICE_FRAME_BUFFER_LENGTH);

Platform Builder Platform Configuration Module Development Used to select modules in OS image Configures link and locate Wizard provided to begin with reference platform Module Development Supports device driver and application development Built separately from OS image

Platform Builder (2/3) Debugging Configurable connections to platform (TCP/IP, ActiveSync, Serial, or custom) Single step and conditional break points Support for hardware-assisted debugging (useful for OAL) Process, thread, module, and memory windows Tracking of kernel state Call profiling

Platform Builder (3/3) Builds ROMable OS image Provides emulation to load and test OS image Supports creation of custom “Platform SDK” Demo: Emulator, Break point, process viewer, Kernel Tracker, call profiling

Platform Builder Demo

Other Tools eMbedded Visual C++ 3.0 eMbedded Visual C++ 4.0 Used for Pocket PC 2002 (CE 3.0 devices) and earlier eMbedded Visual C++ 4.0 Used for Pocket PC 2003 (CE 4.0 devices) and later Visual Studio.net Used for managed code development (.net Compact Framework) Both eVC products to be merged with Visual Studio Free download status of eVC in question Windows CE Test Kit (CETK, see downloads) for scriptable application and system testing

Real Time Capabilities 256 priority levels Scheduler granularity of 1 millisecond Thread Quantum defined independent of timer tick (set to 0 for run to completion) Decouples thread quantum (time slice) from timer tick Nested interrupts ROM compression optional (avoids page faults) Multiple XIP regions Full kernel mode supported Priority Boosting

Real-Time Capabilities* (2/2) SH4 198MHz Windows CE 3.0 Pentium 100 MHz Windows CE 3.0 Pentium 100 MHz Windows CE 3.0+QFE ISR Min [us] 0.9 1.9 ISR Max 9.1 5.7 ISR Average 2.9 2.8 IST Min 14.8 12.9 9.6 IST Max 54.3 163.3 55.6 IST Average 38.2 28.7 26.4 Jitter Max 40 150 46 *Source: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/realtimecapabilities.asp

Licensing Options Platform Builder cost $995/seat Windows CE Royalty begins at $3 Shared Source Licensing Allows non commercial derivatives Allows debugging commercial products Redistribution program available CE devices See “Web Sites” for additional reference

Downloads Platform Builder Evaluation Kit http://www.microsoft.com/windows/Embedded/ce.NET/evaluation/trial/evalkit.asp eMbedded Visual C++ 3.0 eMbedded Visual C++ 4.0 http://msdn.microsoft.com/vstudio/device/embedded/download.aspx All other downloads (including CETK) http://www.microsoft.com/windows/embedded/ce.net/downloads/default.asp

Documents CE Real Time research docs Real-Time Evaluation by Dedicated Systems: http://www.microsoft.com/windows/embedded/ce.net/evaluation/performance/dedicatedsys.asp Real-Time and Windows Embedded: http://www.microsoft.com/windows/Embedded/community/experto/july2002/nframpton.asp Windows Embedded Real-Time: http://www.microsoft.com/windows/Embedded/community/experto/july2002/jaokeefe.asp Performance Test Methodologies for Windows CE .NET http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/perfmethod.asp?frame=true Designing and Optimizing Microsoft Windows CE .NET for Real-Time Performance http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/rtnetdesigning.asp

Web Sites Product Overview Shared Source License Information http://www.microsoft.com/windows/embedded/ce.net/evaluation/overview/default.asp Shared Source License Information http://www.microsoft.com/windows/embedded/ce.net/evaluation/sharedsource/default.asp Runtime Licensing Model for CE .NET 4.2 http://www.microsoft.com/windows/Embedded/ce.NET/howtobuy/sku.asp Development Community Web Sites WindowsForDevices.com: http://www.windowsfordevices.com/ Pocket PC Developer Network: http://www.pocketpcdn.com The Code Project: http://www.codeproject.com/ce/ Evangelist Web Sites Pocket PC Passion: http://www.pocketpcpassion.com/ CE Windows.NET: http://www.cewindows.net

Conclusion Modular operating system Various driver models with nested interrupts Custom Kernel Image through PB Flexible Real-Time performance characteristics Low cost licensing CE’s total integration advantage