Windows Embedded Microsoft Corporation

Windows Embedded Microsoft Corporation

WINDOWS EMBEDDED MICROSOFT CORPORATION Introduction to Windows CE Versions Design Goals Windows CE Fundamentals Terminology Processors, CPUs, SoCs OS Components and projects Windows CE Architecture Kernel, Threads, Processes, Drivers Memory map for User & Kernel Space OS Layout and Component Interaction Understanding Windows CE OS Image Development Overall Goal Critical Steps along the way Development Iteration and Debugging System Generation (SYSGEN) Board Support Package Windows CE integrates advanced technologies to rapidly build a wide range of innovative, small-footprint devices 32-bit, real-time, multitasking OS Delivered as a granular set of components Use Platform Builder tools to configure image Runs on x86, ARM, XScale, MIPS and SH4 Reliable real time capabilities (256 Thread Priorities) Small Footprint ( Kernel =~300K) Targeted for Low power devices Shared Source Code and Success Model PND Point of Service for Embedded systems Consumer Portable media Entertainment Thin Client Medical Telematics for Embedded systems Industrial Automation Industrial Automation Robotics Thin Client General Embedded General Embedded Thin Client RDP 6.0 (Vista compatible) VoIP Video telephony, 3-way audio Devices Profile for Web Services Full WSDAPI support Pluggable font engine framework Browser Updates (IE6 like) File caching, advanced editing (RTF) Windows Media Player OCX 7 (ActiveX) File Systems SATA Driver, FAT32 boot loader/exFAT(64) Secure Digital Host Controller (SDHC 2.0) Drivers USB CCID Smart Card reader (Standardised) Win32 API Subset Portable to different architectures (ARM, MIPS, SH) Real-Time Modular Run from ROM Minimal RAM Design considerations: Not supposed to be the be-all end-all of Operating Systems applicable to all tasks. Suitability to task - The right tool for the right job. Start from zero – want the most functionality with the least cost. “What do we need” as opposed to “what do we leave out.” Windows Embedded Enterprise Windows Embedded Standard Windows Embedded POSReady These systems should be used instead of CE when: Power requirements for peripherals are much greater Specific facilities for services are not available in CE. Existing software is written for the desktop and uses some APIs and facilities that would require significant effort to port. High processor and software performance requirements Cases where CE should be used instead of them. Cost per device needs to be low Flexibility in platform choice is needed Power requirements are stringent (battery) Physical portability Ingrained systems that need to be small (physical size, memory size, storage size) Investment focus in categories Continued investment in core Compact platform Increased focus on Portable Navigation (PND) and Connected Media (CMD) devices Strong focus on Software + Services PND CMD Portable Navigation Devices Connected Media Devices ent General Embedded Handheld Terminals, Automation, Set Top Box, PMP, Thin Client, Feature Phones, Medical etc MicrosoftMicrosoft ConfidentialConfidential – NDA Only Windows Embedded Windows Embedded Compact “Chelan” CE 6.0 R2 Windows Embedded “Cashmere” (CE 6 based) Windows Embedded Windows Embedded NavReady 2009 NavReady 2010 Shipped Approved Under Consideration Microsoft Confidential Connection UI Framework Manager And Dev Tool IM Client Improved Browser Flash Support Office Viewers Touch and WEBAP Gestures BSPs Microsoft Confidential Goal: Deliver needed components to CE platform Timeline: RTM Aug 2009 Status: In business review • Windows Embedded • Additional Components Components • WEBAP BSPs • Alchemy • Flash Lite 3.1 • Gestures • Live Messenger • Connection Mgr • Office Viewers • Improved Browser Experience • QQ Messenger Microsoft Confidential Chelan is the next real time Windows Embedded OS that will enable next generation device scenarios Tools to Technologies Rich user bring enable experience devices to immersive on devices market device faster scenarios 13 Microsoft Confidential Connectivity Multimedia NDIS 6.1, Cellcore, Media Library, WiFi, BT 2.1 DRM, DLNA, MTP Tools Browser VS 2008 Plug In, IE7 rendering Neon, VFP Flash support Core OS UX SMP, ARM v6 C++ XAML API, Touch Input Active Sync., UI development POOM Expression Blend Microsoft Confidential OS BUILD OVERVIEW • Integrated into Visual Studio 2005 • Documentation integrated with Visual Studio 2005 • Updated catalog functionality • Device Emulator integrated into Platform Builder • .NET Compact Framework v2.0 • New debugger transports supported sources Loading generation Launching Debug, etc… RS232, Ethernet, USB, ...Target Development PC sources Platform SDK MyPlatform.msi Visual Studio CE binaries NK.bin Development PC Target What you need to build an OS image:- Microsoft Source Code (Core OS & components) Build tools (Platform Builder in VS2005) Third-party BSP/apps A set of build environment variables Output: = an image file that can run on a device CE OS images (NK.bin) Loading Launching Debug, etc… Emulator Development PC Virtual target CEPC PocketPC SmartPhone Etc… No-target development Machine code emulation (ARM) Behaves like a target Provided with its SDK Advantages Reduces delays No hardware cost Dev. Station Platform Builder Dev. Board Serial RS233 Null-Modem Cable HyperTerminal on Dev Station Network Cross Over Cable Recommended : some kind of DHCP service on the Dev Station Module EXE or DLL – Code that will run or is part of CE 6.0 Component The smallest unit of functionality that you can add to an OS design. OEM Adaptation Layer (OAL) Low level hardware platform specific library - abstracts the hardware architecture from the kernel Board Support Package (BSP) OAL + drivers + bootloader + configuration files for a particular hardware platform “Board” OS Run-Time Image Everything in the OS Design is built into a file containing ROM data & code (usually NK.BIN) For Windows CE, Microsoft creates an OS kernel for each architecture. Then that Microsoft Board kernel can be used on Windows CE Support platforms that have Kernel Package that same flavor of chip. The Board support X86 (ARCH)ARM SoCSH MIPS package that is tied (Ti,QC,Marvell,,etc.) together with a Kernel allows for new features SD 4.0 and enhancement that Microsoft could never be able to plan for. ARCH CPU CORE CPU / SoC Board 80486 X86 phyCore270 Pentium MIPS MARVELL EM-X270 PXA27x ARM ARMv5TE QUALCOMM Mainstone III 7X00 SH ARM11EJ-S TI OMAP 3430 Board OS Components DEVICE MANAGER phyCore270 DISPLAY USB CORE SYSTEM EM-X270 WINDOW Mainstone III USB HOST MANAGER DEBUG SHELL ARCH Board Window CE OS Components “Project” (VS Solution) DEVICE MANAGER COLLECTION X86 INDUSTRIAL OF OS phyCore270 APPLIANCE COMPONENTS MIPS DISPLAY ENTERPRISE SYSTEM EM-X270 WEB PAD ARM WINDOW Mainstone III MY COOL MANAGER WINDOWS CE PROJECT SH DEBUG SHELL ARCH Board Window CE OS Components “Project” (VS Solution) DEVICE X86 MANAGER X86 KERNEL INDUSTRIAL phyCore270 APPLICANCE MIPS MIPS DISPLAY KERNEL ENTERPRISE SYSTEM EM-X270 WEB PAD ARM ARM KERNEL WINDOW Mainstone III MY COOL MANAGER WINDOWS CE PROJECT SH SH KERNEL DEBUG SHELL Board Window CE OS Components “Project” (VS Solution) DEVICE MANAGER INDUSTRIAL phyCore270 APPLICANCE DISPLAY ARM ENTERPRISE EM-X270 SYSTEM KERNEL WEB PAD WINDOW Mainstone III MY COOL MANAGER WINDOWS CE PROJECT DEBUG SHELL Board OS Components Support Package DEVICE MANAGER phyCore270 DISPLAY ARM HardwareEM-X270 SYSTEM KERNEL WINDOW Mainstone III MANAGER DEBUG SHELL Board OS Components Support Package Driver DEVICE MANAGER OAL DISPLAY ARM SYSTEM KERNEL DEBUGKITL WINDOW MANAGER ARM Core Hardware DEBUG SHELL An Architecture-Specific Kernel A Board-Specific OEM Adaptation Layer (OAL) Some sort of data transport for KITL OAL ARM KERNEL KITL The kernel already knows how to talk to the CPU core, which is the same for every CPU of a particular architecture. The OAL must abstract everything else. What do we want to get out of this at the end? We want: To create an OS image that contains a set of Windows CE system components . To have the image contain: - The Microsoft Kernel for the CPU we’re using - Our OAL that adapts the kernel to the board we’re using. - Any other things we need to communicate with the running operating system. To be able to execute the image on the board, either by: 1) Burning the image file into ROM. or 2) Downloading the image file into RAM to execute it from there. Specify the BSP we intend to use The BSP must have the drivers/functionality we need in our end product. Specify the OS components we need The Windows CE Catalog allows us to select OS components and automatically have their dependencies included. We can optionally add our own components and specify our own dependencies for those components. Configure features to suit our development needs. Build an image Download the image. Execute and Debug the image. Development is an iterative process. Build Download Observe and Tweak Debug and step through code. Make changes Repeat as needed. Decreasing iteration time increases productivity. The Windows CE OS Design and build process is friendly to iterative development on a specific set of static components. This can allow for platform or feature specific tweaks and changes to enable maximum functionality and performance. Windows CE “SubProjects” provide a mechanism to enhance and extend a Windows CE Image and iterate on developing those components to the state they are effective in your product. Windows CE 6 comes with a very wide array of components. If functionality for all components was always included in a kernel the resulting system would be very large in size and slower than was necessary. It is ideal to configure the kernel, the device drivers, and the systems+services so that something that is not used is not included in the image. Examples: A web browser and everything it depends on Image compression and rendering for a system with no display. Power management for a system that is AC powered. This is the componentization model. Executing a “SYSGEN” for an OS Design is the process of filtering the full system headers and libraries and extracting the pieces that you are using. The result is a set of system headers and libraries that are unique to your configuration of OS components.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    78 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us