WINDOWS EMBEDDED STUDENT CHALLENGE COMPETITION Juan E. Vargas, Ph. D. (juanv@microsoft.com) Academic Relations Manager Microsoft Corporation 1 Outline Windows Embedded Challenge Competition Windows CE as a Platform Windows CE Platform Builder Tools 2 Windows Embedded Challenge Overview Goal: Supplement faculty initiatives by giving students the opportunity Target Audience: Undergraduate Computer Engineering/ CS Prizes: to work on real world projects, with hardware, software and technical support provided by Microsoft students worldwide. Especially relevant for Senior Design/ Senior Project courses 1st Prize - $8,000 US 2nd Prize - $6,000 US 3rd Prize - $4,000 US 4th Prize - $3,200 US 5th Prize - $2,400 US Key dates for participating Registration ends – February 6, 2005 Final reports due to both CSIDC and Microsoft - April 23, 2005 Finalists announced - May 6, 2005 Finals - June 17&18, 2005 in Redmond, WA 3 Windows Embedded Challenge How does it work Application Windows CE.NET Students build apps using .Visual Studio .NET (C# &VB) or Embedded Visual C++ (C or C++) Customizable by students with Platform Builder, the Windows CE IDE (also provided to teams) Board Support package Hardware Provided to participating teams through ICOP Contest among undergraduate students Build a computer based system based on the theme – “Going beyond the boundaries” Collaboration with CSIDC - IEEE James Madison University – Champions, 2004 4 Windows Embedded Challenge Microsoft Technical Support Helpp@microsoft.com Manned by over 25 Windows CE developers Get answers to questions about Windows CE Software – how to configure, build, debug and deploy OS image This was one of the most valuable resources last year for students Will not help with writing code Frequent Online chats Other resources (books, etc) available on request Be part of this exciting contest! Register Now!! www.windowschallenge.com/register.aspx 5 29 TEAMS INVITED TO THE FINALS in 2004 SUNY Stony Brook -3 UNL -3 Utah State SUNY Binghamton Wisconsin Madison UNO-1 Boston College DePaul Bradley UMass Dartmouth James Madison University University of S.Carolina - 2 Cal Poly Pomona -2 CSU- Northridge CSU Chico CSU Long Beach San Diego State LSU Georgia State San Jose State-2 Santa Clara -2 Be part of this exciting contest! Register Now!! www.windowschallenge.com/register.aspx 6 OS Versus Platform Why distinguish between the two? Because Windows desktop development blurs differences between them, causing confusion w.r.t. the embedded space. To draw attention at some differences between Windows CE and other Windows OS. To set the stage for talking about Tools. To highlight some opportunities and design choices coming at us like an avalanche. 7 Avalanche: Wide Range of Devices Voice-over IP Devices Gateways Thin Clients Set-Top Boxes Digital Audio Receivers and Players Mobile Handhelds Medical Devices Smart Displays 8 Industrial Automation Avalanche: Devices in Automobiles Model Automaker BMW 7 Series Citroen C5, Xara DaimlerChrysler S-Class Fiat Lancia Thesis Honda Accord Mitsubishi Airtek, Lancer, Grandis, Dingo Subaru Lancaster Toyota Will-CYPHA (G-Book) Volvo S60, S80, V70, XC Aftermarket Clarion Joyride, CADIAS Aftermarket Hyundai ExRide Aftermarket NexTech Carman-i 9 Avalanche: 2500+ Partners Over 2,500 Windows Embedded Partners worldwide Exponential growth in China, Taiwan, India Gold partners in all major regions Industry experts Demonstrating value across product line 10 Operation Systems Are… Webster Dictionary Abstracts the hardware for applications Offers standard APIs to access Hardware Is not useful without hardware “The Master Control Program that starts when a Computer boots” You cannot just develop for an OS Examples Windows XP, Windows CE, Linux, … 11 Platforms Are… A specified set of OS technologies defined as components for a specific set of hardware In the embedded space these are usually defined by the OEM Applications are developed targeting the platform The Platform SDK defines the platform Microsoft platforms Windows 3.1, Windows 98, Windows XP, Pocket PC, Pocket PC 2002, SmartPhone 12 Windows XP versus Windows CE Windows XP as a platform Uniform platform with significant app compatibility Restricted hardware architecture Readily available, inexpensive Windows CE as OS A collection of components that can be assembled into a wide variety of platforms Much more flexibility about the hardware since it supports 4 processor architectures: X86 SH4 ARM MIPS 13 Design Choices Build your own platform Greater flexibility regarding choice of components to include Platform designer supplies kernel and drivers More work … Develop towards an existing platform App level environment already exists You probably can’t change it You can get stuck if you need a component that’s not available 14 CE Technology Components Kernel, Power Manager, File System Hard real-time preemptive multitasking kernel Installable ISRs, Multimedia timers, DMA APIs more flexibility for drivers & apps Kernel hooks for profiling and debugging Flexible Power Manager with power profile states Layered Storage Manager Architecture File system Filters Interprocess communication (IPC), sync objects Memory mapped files, message queues, fibers Virtual memory with hardware access protection E.G. for adding FS Encryption Sample file system drivers in PB FATFS, CDFS/UDFS, BinFS (Flash file system) 15 CE Technology Components Networking & Communications Self tuning TCP/IP stack, incl. IPv6 Support NDIS 5.1 driver architecture; RNDIS supported Winsock 2 & WinINet Wireless networking Bluetooth, including qualified profiles 802.11, Auto configuration & 802.1x security Services: LDAP, DCOM, SOAP, MSMQ, UPnP, … Gateway functionality V4 NAT/ICS and v6 routing & router advertisement (RA) Firewall, DNS Proxy, DHCP allocation 16 CE Technology Components Graphics & Multimedia Windowing Window / Dialog Manager Basic / Common Controls Media Playback Graphics DirectDraw, Direct3D GDI Audio DirectShow Windows Media Technologies Windows Media Player and ActiveX Control Stream from media server, web, local file Support for many types and formats DirectSound, WaveOut, DirectMusic 17 WMA, WMV, MPEG-1, MPEG-4, Wav, MP3, ADPCM, G.711, GSM 6.10 CE Technology Components Services & Applications Shell (Desktop) Two browsers Email client Wordpad Viewers for MSWord, Excel, PowerPoint & PDF Instant Messenger client Terminal services client Windows Media Player 18 Component Object Model / ActiveX Control infrastructure .NET Compact Framework Data synchronization infrastructure Device Management HTTP Server FTP Server Telnet Server CE Technology Components Board Support Packages Improve out-of-the-box experience Shorten time to booting prototype Evaluation & Learning Prototype & Demonstration Sample drivers based on integrated peripherals Many source examples available Decouple high-level app development from hardware and driver development At least one BSP per supported kernel included in PB, additional on the web Additional BSPs available on the web and included in reference hardware products 19 Embedded Devices Vs Mobile Devices Embedded Devices Soft PLC HMI Panel HVAC Controller Sewing Machine Traffic Light Set-top Box / Stereo Component Cash Register 20 Mobile Devices Smart Phone PDA Gaming device Web Pad Inventory Scanner Portable Music Device Robot Embedded Devices No power consumption optimization Might not have a display Application durability is most important Software gets pre-installed By OEM, Machine Builder, SP Optimize for application footprint Mobile Devices Optimization for power management 99% have displays User Experience and ease of use is essential Footprint still important Larger application may not install with default memory settings 21 Platform Builder Creates platforms with Windows CE Mainly for OEM but also for driver development Exports the platform SDK for embedded Visual Tools Windows CE.NET PB exports to eVC 4.0 Emulator facilitates software development independent of hardware Platform wizards walk you through component selection for common device types Components can be added by dragging and dropping from the catalog Assembles OS components into a device image Dependency checking automatically brings in other needed components New components can be written from scratch 22 Development Cycle From Platform to Applications Device Development Application Development Export SDK with Device Specific Win32 APIs or use Standard SDK Platform Builder Component Catalog incl. .NET CF Download Device Specific Windows CE OS and Applications via KITL Build Device Image eMbedded Visual C++ 4.0 C/C++ MFC/ATL via KITL Device Under Development Visual Studio .NET VB/C# Device Emulation Smart Device Programmability Debug Device Builds and Brings Up Device Builds Rich Applications 23 Windows CE: Core Operating System Architecture Applications Programming Interfaces (Win32, COM, MFC, ATL) Kernel Library OAL Bootloader GWES Communication Interfaces (Winsock, RAS, TAPI) Device Manager Filesys Device Drivers OEM Hardware 24 Networking and Communication System Does Microsoft share its source code ? Yes, through two programs: •Shared Source •Premium Share 25 Shared Source: What is Included Not Available Mostly Available ISV, OEM Provided Applications Embedded Shell Remote Connectivity Windows CE Shell Services WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Kernel Library GWES File Manager Device Manager IrDA OAL Bootloader Drivers Device Drivers File Drivers OEM Hardware 26 TCP/IP IPv6 Premium Source: What is Included Not Available Mostly Available ISV, OEM Provided Applications Embedded Shell Remote Connectivity Windows CE Shell Services WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Kernel Library GWES File Manager Device Manager IrDA OAL Bootloader Drivers Device Drivers File Drivers OEM Hardware 27 TCP/IP IPv6 Resources 28 More Shared Source Information Working with Shared Source code for Windows CE .NET Shared Source Licensing Overview for Windows CE .NET http://msdn.microsoft.com/embedded/ce.net/sharedsrccode/ List of Shared Source Files for Windows CE .NET http://msdn.microsoft.com/library/?url=/library/enus/dncenet/html/privatesource.asp http://msdn.microsoft.com/library/default.asp?url=/library/enus/wcepb40/htm/pbconsharedsourcecodedirectories.asp?frame=true Microsoft Windows Embedded Community http://msdn.microsoft.com/embedded/community/default.aspx E-mail questions to: cesrc@microsoft.com or wemap@microsoft.com 29 For More Information Join the Windows Embedded Academic Program (WEMAP) Contact us at: wemap@microsoft.com Visit us online at: http://www.microsoft.com/windows/Embedded/ce.NET/eval uation/offers/academic.asp CSIDC IEEE Contest http://www.computer.org/csidc/ Windows Embedded Community (support, newsgroups, chats, events, newsletters…) http://www.microsoft.com/windows/embedded/community Hardware Empowerment Program http://www.research.microsoft.com/collaboration/university /hep.aspx MSDN Embedded (technical articles, documentation) http://msdn.microsoft.com/embedded 30 Additional Useful Links Real-Time TechInsight DevWire (newsletter including links to latest downloads, articles, content) www.microsoft.com/windows/embedded/ce.net/downloads All Microsoft Downloads www.microsoft.com/windows/embedded/devwire Windows CE .NET Downloads (Evaluation Edition, Smartphone SDK, etc) www.microsoft.com/windows/embedded/techinsights/realtime.as p www.microsoft.com/downloads Case Studies: Windows CE .NET www.microsoft.com/windows/Embedded/ce.NET/evaluation/casest udies Windows XP Embedded www.microsoft.com/windows/Embedded/xp/evaluation/casestudie s 31 Books Source Code Analysis of Windows CE .NET - released in China Integration of a chapter (or more in some cases) into their core textbooks Survey Of Operating Systems – McGraw-Hill Companies Advanced Concepts In Operating Systems – McGraw-Hill Companies Real-Time Programming: A Guide to 32-bit Embedded Development Addison Wesley & Benjamin Cummings An Embedded Software Primer - Addison Wesley & Benjamin Cummings Introduction to Operating Systems - Addison Wesley & Benjamin Cummings Industry books in progress and of interest to academia: Windows XP Embedded with Service Pack 1 Step by Step Inside Windows CE Written by Sean Liming, A7 Engineering (MVP) - Release Date: June 2003 Written by John Murray Programming Windows CE .NET Written by Doug Boling, Boling Consulting (MVP) 32