EMB427 Writing Real-Time Applications On Windows CE 5.0 Nat Frampton President Real Time Development Corporation

Slides:



Advertisements
Similar presentations
Windows CE Real-Time Performance Architecture
Advertisements

4/6/ :35 AM © 2004 Microsoft Corporation. All rights reserved.
MED 304 Real-Time Solutions with Windows CE 5.0 Asang Dani Kanetkar School of Embedded Technology
4/6/2017 2:06 PM © 2005 Microsoft Corporation. All rights reserved.
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
EMB311 Enabling Media Playback On Windows CE Aaron Cheng Program Manager Windows CE Microsoft Corporation.
EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation.
EMB304 Building Trustworthy Windows CE Embedded Devices and Applications Ganapathy Raman Program Manager Windows CE Security Team Microsoft Corporation.
请点击以下链接下载 WinHEC 的演讲材料 Download WinHEC presentations here:
Matt Young Windows Mobile Joint Development Program (JDP) Microsoft
Amit Chopra APP209 Introducing “Orcas” Huh ? What’s “Orcas”?
WDK Driver Test Manager. Outline HCT and the history of driver testing Problems to solve Goals of the WDK Driver Test Manager (DTM) Automated Deployment.
Application Development for Windows CE Devices
EMB321 How To Write A Windows CE SDIO Client
Johan Arwidmark Chief Technical Architect TrueSec WEM303.
Rob Hwacinski Sr. Program Manager Lead Microsoft Corporation WEM206 Ashwin Kulkarni Sr. Product Manager Microsoft Corporation.
EMB313 Increasing Developer Productivity With Windows CE 5.0 Matt Young Windows Mobile Joint Development Program (JDP) Microsoft.
CLI339 Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Anil Dhawan Program Manager Windows Mobile.
What is Windows Embedded all about? Don Kerr Embedded Strategy Manager Microsoft Australia Andrew McGrath PrincipalBluBits SOL215.
EMB425 Using Advanced Platform Builder Debugger Features James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB313 Increasing Developer Productivity With Windows CE 5.0
Windows Debugging Demystified
EMB308 Developing a Windows CE 5.0 OAL
EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB315 Non-Volatile Object Store And Hive Based Registry Design For Windows CE Rick Austin Principle Engineer Intermec Corporation.
Microsoft Dynamics AX 2009 Integration and Development with the.NET Framework Closing.
EMB426 Windows CE Memory Architecture Steve Maillet CEO/Chief Software Architect EmbeddedFusion.
Using the WDK for Windows Logo and Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead
BIZ208 Windows CE 5.0 Bringing to Market a Broad Range of Devices Dan Javnozon Product Manager MEDG Microsoft Corporation Business Track Presentation.
EMB423 Creating A Trusted Environment For Windows CE 5.0 Nat Frampton President Real Time Development
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
EMB320 Windows CE 5.0 Image Configuration, Boot Loaders, And Security
Memory Leak Detection Douglas Boling President Boling Consulting Inc.
Hitachi Consulting’s Solution Offerings Eric Winton Manager Technology Solutions Hitachi Consulting.
Windows NT and Real-Time? Reading: “Inside Microsoft Windows 2000”, (Solomon, Russinovich, Microsoft Programming Series) “Real-Time Systems and Microsoft.
EMB422 Advanced Embedded Visual C++ Application Development Control - View Nat Frampton President Real Time Development
Module 6: Debugging a Windows CE Image.  Overview Debug Zones IDE Debug Setup IDE Debug Commands Platform Builder Integrated Kernel Debugger Other Debugging.
EMB424 Implementing Fault Tolerant Systems in Windows CE 5.0 Nat Frampton President Real Time Development
New Managed Messaging, State, And Notification APIs In Windows Mobile 2005 Gaurav Khanna Developer Evangelist Microsoft India.
CLI205 Basic Considerations For Mobile PC Application Development Tablet and Mobile PC Technical Evangelist Microsoft Corporation.
CLI325 In Depth – Ink Data Management Mark Hopkins Programmer Writer Tablet and Mobile PC Group Microsoft Corporation.
© 2008 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED,
Windows CE Overview and Scheduling Presented by Dai Kawano.
SVR201 SQL Server 2005 Mobile Edition: The Evolution Of SQL Server CE Scott Smith Program Manager Visual Studio for Devices Microsoft Corporation.
CLI210 Introduction To Managed Development For Devices With Visual Studio 2005 Scott D. Smith Program Manager Visual Studio for Devices Microsoft Corporation.
Ibraheem Osama Mohamed Mobile Developer-Rashdan IT.
Advanced Memory Management Douglas Boling President Boling Consulting Inc.
Windows CE Services Douglas Boling President Boling Consulting Inc.
Windows Small Business Server 2003 R2 Powering Small Businesses.
Using Advanced Platform Builder Debugger Features Chenghui Lian Microsoft China Technology Center.
MBL361 微软是如何出品 Windows Mobile 5.0 软件 崔 海 Program Manager Mobile and Embedded Device Division Microsoft Corporation.
Patrick Ortiz Global SQL Solution Architect Dell Inc. BIN209.
UCM305 Embedding Communications with UCMA SDK 1.0 Chris D. Mayo Technical Evangelist
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Building Complete Web Application Using ASP.NET 3.5 & Visual Studio 2008 Omar Khan Group Program Manager Visual Studio.
A Fast Track into Device Guard
Developing Drivers in Visual Studio
Managing Specialized Devices With Windows Embedded Device Manager 2011
11/19/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
12/7/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
Windows Phone: Developer Best Practices and How to Maximize Performance
What is Visual Studio Code?
IE11’s Developer Tools, F12, just got nicer (again)
Module 6: Debugging a Windows CE Image
Delivering great hardware solutions for Windows
5/25/2019 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Overview of System Development for Windows CE.NET
11/1/2019 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Presentation transcript:

EMB427 Writing Real-Time Applications On Windows CE 5.0 Nat Frampton President Real Time Development Corporation

M anagement T ools C ommunications & M essaging Device Update Agent Software Update Services Live Communications Server Exchange Server Internet Security and Acceleration Server Speech Server Image Update L ocation S ervices M ultimedia MapPoint DirectX Windows Media Visual Studio 2005 D evelopment T ools MFC 8.0, ATL 8.0 Win32 N ative M anaged S erver S ide L ightweight R elational SQL Server 2005 Express EditionEDB D ata P rogramming M odel D evice B uilding T ools D evice B uilding T ools H ardware/ D rivers Windows XP DDK Windows Embedded Studio Platform Builder OEM/IHV Supplied BSP (ARM, SH4, MIPS) OEM Hardware and Standard Drivers Standard PC Hardware and Drivers SQL Server 2005SQL Server 2005 Mobile Edition ASP.NET Mobile ControlsASP.NET.NET Compact Framework.NET Framework Microsoft Operations Manager Systems Management Server

Overview Interrupt architecture Deadlock thread strategy Debugging strategies Priority runner strategy Lessons learned

Kernel Interrupt Architecture HW All Higher Enabled All Except ID All OAL Thread ISR SetEvent ID ISR ISR 1 ISRN ISRLatency IST IST Latency

Interrupt Initialization // Create the Event gIntEvent= CreateEvent(NULL,// Security FALSE,// Manual reset FALSE,// Init as not signaled NULL// No Named Events ); // Create a thread that waits for signaling gThreadInt = CreateThread(NULL,// Security 0,// Default ThreadInt,// Interrupt Thread NULL,// No Parameters CREATE_SUSPENDED,// Suspended &dwThreadID // Thread Id); // Initilialize the Interrupt gSysInterruptNum = KernelIoControl( IOCTL_HAL_TRANSLATE_IRQ, &gIRQNum, sizeof(DWORD), &gSysIntNum, sizeof(DWORD), NULL ); InterruptInitialize( gSysIntNum, // From Map gIntEvent, // Global Event NULL, // Not Used (DWORD)NULL // Not Used ) ) // Get the thread going ResumeThread( gThreadInt ); // Create the Event gIntEvent= CreateEvent(NULL,// Security FALSE,// Manual reset FALSE,// Init as not signaled NULL// No Named Events ); // Create a thread that waits for signaling gThreadInt = CreateThread(NULL,// Security 0,// Default ThreadInt,// Interrupt Thread NULL,// No Parameters CREATE_SUSPENDED,// Suspended &dwThreadID // Thread Id); // Initilialize the Interrupt gSysInterruptNum = KernelIoControl( IOCTL_HAL_TRANSLATE_IRQ, &gIRQNum, sizeof(DWORD), &gSysIntNum, sizeof(DWORD), NULL ); InterruptInitialize( gSysIntNum, // From Map gIntEvent, // Global Event NULL, // Not Used (DWORD)NULL // Not Used ) ) // Get the thread going ResumeThread( gThreadInt ); Kernel HW All Higher Enabled All Except ID All OAL IST ISR SetEvent ID ISR ISR 1 ISR N IST

DWORDWINAPIThreadInt( LPVOID lpvParam ) { // The magic thread waits for the event. while( gRun ) { // Wait until we have been signaled interrupt WaitForSingleObject( gIntEvent, INFINITE ); // Increment the counter gInterruptCount ++; // Run your logic here // Reset the interrupt InterruptDone( gSysIntNum ); } return 0; } DWORDWINAPIThreadInt( LPVOID lpvParam ) { // The magic thread waits for the event. while( gRun ) { // Wait until we have been signaled interrupt WaitForSingleObject( gIntEvent, INFINITE ); // Increment the counter gInterruptCount ++; // Run your logic here // Reset the interrupt InterruptDone( gSysIntNum ); } return 0; } Kernel HW All Higher Enabled All Except ID All OAL IST ISR SetEvent ID ISR ISR 1 ISR N IST Interrupt Service Thread

Deadlock Thread Strategy High and Medium Priority Threads Cooperating through a Critical Section High Priority Thread waits for a time period reading the CPU Counter High Priority Thread Medium Priority Thread Critical Section Gets Critical Section Waits in a Loop Logs Ownership Releases Critical Section Gets Critical Section Logs Ownership Releases Critical Section

Debugging Strategies StrategyComments Application IDE Nice Integration and view of application data but not system Data Kernel Debugger Great system access; Requires OEM Integration into OS Printf Slow and limited to the ability to print output Firmware Debugger Great Hardware access but difficult application level information Hardware Debugger Last Resort when system is locked; Often necessary

Priority Runner Strategy Create a thread that runs priorities Push Button Start - LED Status Stops Blinking when it isn’t scheduled! Push Button LED Waits for Start Event Check if Reached Stop Priority Turns LED ON Waits 100 ms Turn LED OFF Increments and Sets Priority Sleeps 1 second Loop Sets Finished Event IST

Hardware

Lessons Learned IST – ISR Interrupt Model Coordination is through a OS Event Embedded Visual C++ provides complete hardware access CE 5.0 provides RTOS Environment Priorities/Quantums/Inversion Integrated Kernel Tracker and Debugger CE 5.0 supports many debug strategies

While at MEDC 2005… Fill out an evaluation for this session Randomly selected instant WIN prizes! Randomly selected instant WIN prizes! Use real technology in a lab Instructor led Reef E/F & Breakers L Self-paced Reef B/C Self-paced Reef B/C Visit the Microsoft Product Pavilion in the Exhibit Hall Shorelines B in the Exhibit Hall Shorelines B

After The Conference… Develop Build InstallBuildJoin Install Enter Enter Join Full-featured trial versions of Windows CE and/or Windows XP Embedded Cool stuff & tell us about it: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community Windows Embedded Partner Program: Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2 Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com Microsoft Solutions Partner Program: partner.microsoft.com partner.microsoft.com

Tools & Resources msdn.microsoft.com/ embedded microsoft.public. windowsxp.embedded windowsce.platbuilder windowsce.platbuilder windowsce.embedded.vc windowsce.embedded.vc blogs.msdn.com/ mikehall Windows CE 5.0 Eval Kit Windows XP Embedded Eval Kit msdn.microsoft.com/ mobility microsoft.public. pocketpc.developer smartphone.developer dotnet.framework.compactframework blogs.msdn.com/ windowsmobile vsdteam netcfteam Windows Mobile 5.0 Eval Kit Websites Newsgroups Blogs Tools Build Develop

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.