debugging windows ® ce applications and systems david streams lead program manager windows ce tools...
TRANSCRIPT
Debugging WindowsDebugging Windows®® CE CE Applications And SystemsApplications And Systems
David StreamsDavid StreamsLead Program ManagerLead Program ManagerWindows CE ToolsWindows CE ToolsMicrosoft CorporationMicrosoft Corporation
8-3038-303
AgendaAgenda
Introduction to Platform BuilderIntroduction to Platform Builder New Platform Builder 3.0 featuresNew Platform Builder 3.0 features IDE Kernel debuggingIDE Kernel debugging HW assisted debugging HW assisted debugging Data Visualization ModelData Visualization Model Product demosProduct demos Questions and answersQuestions and answers
Platform Builder Integrated Platform Builder Integrated Development EnvironmentDevelopment EnvironmentPlatform Pane (Component Tab)Platform Pane (Component Tab)
Component viewComponent view Used toUsed to
configure your configure your platform componentsplatform components
IDE saves your IDE saves your platform stateplatform state .wce workspace.wce workspace
ComponentsComponents Build rulesBuild rules Platform settingsPlatform settings
Platform Builder CatalogPlatform Builder Catalog
Catalog –Catalog –Contains superset of Contains superset of available componentsavailable components
Logical abstraction –Logical abstraction – Choose logical type Choose logical type groupings and resolvegroupings and resolveto components in to components in Platform PanePlatform Pane
Extensible –Extensible –Add new components to Add new components to catalog via .cec filescatalog via .cec files
New PB 3.0 Tools FeaturesNew PB 3.0 Tools Features
Usability/ease of useUsability/ease of use Configuration improvementsConfiguration improvements Connectivity/download integrationConnectivity/download integration
IDE manages/communicates state of toolsIDE manages/communicates state of tools
Debugger integrationDebugger integration CPU add-in modelCPU add-in model
Entire product (IDE, Wizards, Debugger, etc) Entire product (IDE, Wizards, Debugger, etc) capable of supporting a new CPU that ships capable of supporting a new CPU that ships after PB releasesafter PB releases
ExtensibilityExtensibility New hardware debug APIsNew hardware debug APIs Tools plug-in modelTools plug-in model
Connectivity IntegrationConnectivity Integration PB 3.0 incorporates connectivity settings into PB 3.0 incorporates connectivity settings into
the integrated development environmentthe integrated development environment Users select and configure transports used by Users select and configure transports used by
embedded toolsembedded tools
Connectivity IntegrationConnectivity Integration
Users can then configure their specific Users can then configure their specific transport settings in the appropriate tabtransport settings in the appropriate tab
Download And Boot Now Download And Boot Now Integrated Into IDEIntegrated Into IDE
Target Menu utilizes settings defined in Target Menu utilizes settings defined in connectivity settings dialogconnectivity settings dialog
CESH (Target Control)CESH (Target Control)Now IntegratedNow Integrated Process and Thread Windows now serve Process and Thread Windows now serve
dual dual purposes Debugger populates windows during break stateDebugger populates windows during break state Shell.exe (CESH) populates windows duringShell.exe (CESH) populates windows during
run staterun state Ability to refresh views after state changeAbility to refresh views after state change
CESH commands now integrated as features CESH commands now integrated as features in the IDEin the IDE Ability to start and stop processes, view process\Ability to start and stop processes, view process\
thread info, set debug zones, set debug break, thread info, set debug zones, set debug break, etc.etc.
DebuggingDebuggingPlatform Builder 3.0 Platform Builder 3.0 Device ImagesDevice Images
Platform Builder 2.12 Platform Builder 2.12 Debugger ExperienceDebugger Experience Good newsGood news
Integrated the kernel debugger into the IDEIntegrated the kernel debugger into the IDE Supported many windbg debugger Supported many windbg debugger
commands in the IDEcommands in the IDE !Process!Process !thread stack!thread stack
Brought the benefits ofBrought the benefits ofintegrated application debuggingintegrated application debuggingto embedded developmentto embedded development
PB 3.0 Debugger PB 3.0 Debugger EnhancementsEnhancements Continuity: Intuitive work flow Continuity: Intuitive work flow
Debugger no longer tied to projectsDebugger no longer tied to projects Build from IDE:Build from IDE:
Debug seamlessly from platform Debug seamlessly from platform Build from Command: Target nk.binBuild from Command: Target nk.bin
Enable kernel debugger with theEnable kernel debugger with theclick of a buttonclick of a button 3.0 gives the developer a checkbox to 3.0 gives the developer a checkbox to
enable debugging + adds debugger stub enable debugging + adds debugger stub by default for debug configurationby default for debug configuration
(More) Debugger (More) Debugger EnhancementsEnhancements Communication and controlCommunication and control
Status Monitor, Status StringsStatus Monitor, Status Strings IDE is State-AwareIDE is State-Aware New UI: Processes, Threads, Call-stack, New UI: Processes, Threads, Call-stack,
and more…and more… New Manual/Auto Logging functionalityNew Manual/Auto Logging functionality
Demo: Kernel DebuggingDemo: Kernel Debugging
Platform Builder 3.0 Platform Builder 3.0 Integration of Host/Target ConnectivityIntegration of Host/Target Connectivity Integrated Download and BootIntegrated Download and Boot CESH IntegrationCESH Integration Kernel DebuggerKernel Debugger
Hardware Assist: Software Hardware Assist: Software Model (Data Breakpoints)Model (Data Breakpoints) Software Model versus Hardware ModelSoftware Model versus Hardware Model
SW model does not require specialized HWSW model does not require specialized HW OEM can configure run control behavior OEM can configure run control behavior
(step in ROM is possible)(step in ROM is possible) Data breakpointsData breakpoints
Previous model: Software emulationPrevious model: Software emulation Debugger took single steps (by instruction)Debugger took single steps (by instruction) At every single step, evaluate locationAt every single step, evaluate location
3.0 Model: Use HW registers, when available3.0 Model: Use HW registers, when available
Demo: SW Model HW AssistDemo: SW Model HW Assist
Platform Builder 3.0Platform Builder 3.0 ODO Platform with SH3 CPUODO Platform with SH3 CPU OAL modified to utilize debug OAL modified to utilize debug
registers for data breakpointsregisters for data breakpoints Application downloaded to target Application downloaded to target
modifies a given addressmodifies a given address Data breakpoint set on that address Data breakpoint set on that address
hitting a certain valuehitting a certain value Performance of hw usage versus Performance of hw usage versus
software emulationsoftware emulation
HW-Modeled Hardware HW-Modeled Hardware Assist: MotivationAssist: Motivation OEM Challenge: Building and debugging OEM Challenge: Building and debugging
the OALthe OAL OAL code executed prior to KDInit OAL code executed prior to KDInit
(OEMInit, bootloader, …)(OEMInit, bootloader, …) Kernel Debugging too intrusive in some casesKernel Debugging too intrusive in some cases
Hardware Debugging is an essential part of Hardware Debugging is an essential part of the embedded tool chainthe embedded tool chain
Existing tools (Probes, ICE, associated SW)Existing tools (Probes, ICE, associated SW) Ad Hoc tool chainsAd Hoc tool chains Proprietary interfacesProprietary interfaces Very difficult to useVery difficult to use
Hardware Assist: GoalsHardware Assist: Goals
Bring solution to marketBring solution to market Leverage third-party expertise Leverage third-party expertise
through partneringthrough partnering Focal pointsFocal points
Ease of use Ease of use Integration with PB’s existing tool setIntegration with PB’s existing tool set FlexibilityFlexibility ExtensibilityExtensibility
Hardware Assist: SolutionHardware Assist: Solution
Embedded Extended Debugging Interface Embedded Extended Debugging Interface API sits between our debugger andAPI sits between our debugger and
third party driversthird party drivers Drivers communicate with existing hardware Drivers communicate with existing hardware
tools and proprietary interfacestools and proprietary interfaces IDE does not need to know probe detailsIDE does not need to know probe details
Third-party tools plug-in modelThird-party tools plug-in model Port existing and new probe software Port existing and new probe software
and toolsand tools These tools integrate with PB IDEThese tools integrate with PB IDE Currently: AMC, Microtek Int’l, MacraigorCurrently: AMC, Microtek Int’l, Macraigor
Debugger Debugger (PB)(PB)
Embedded ExtendedEmbedded ExtendedDebug Interface (eXDI)Debug Interface (eXDI)
Probe Probe ((JTAG,BDM…JTAG,BDM…))or Emulatoror Emulator
CPUCPU
eXDI eXDI CallbackCallback
eXDI provides mainly Target Run Control, Mem / IO / Reg. eXDI provides mainly Target Run Control, Mem / IO / Reg. Access and State Change Notification to clientsAccess and State Change Notification to clients
eXDI eXDI ServerServer
Plug-insPlug-insPlug-insPlug-insPlug-insPlug-insPlug-insPlug-inseXDI eXDI CallbackCallback
DriverDriver
Optional 3Optional 3rdrd party int’fparty int’f
Demo: HW Model HW AssistDemo: HW Model HW Assist
Platform Builder 3.0Platform Builder 3.0 AMC Custom Foundation CE Platform with AMC Custom Foundation CE Platform with
PPC 821 CPUPPC 821 CPU eXDI driver written by AMC to eXDI driver written by AMC to
communicate with eXDI Server and PBcommunicate with eXDI Server and PB We will debug prior to Kernel Init (OEMInit)We will debug prior to Kernel Init (OEMInit) Plug-In Demo: Download without Plug-In Demo: Download without
BootloaderBootloader
Hardware Assist: ClosureHardware Assist: Closure Debugging capability is extensibleDebugging capability is extensible
Third parties can write tools to interface with HW Third parties can write tools to interface with HW through eXDI and plug-in model (Real-Time Trace, through eXDI and plug-in model (Real-Time Trace, Flash programming,…)Flash programming,…)
Debugging functionality is expandedDebugging functionality is expanded Debug where we never have before:Debug where we never have before:
from CPU Reset to Kernel Init – code in ROM – OAL from CPU Reset to Kernel Init – code in ROM – OAL critical codecritical code
True HW BPs (code and data), true Target haltTrue HW BPs (code and data), true Target halt Very low intrusivenessVery low intrusiveness
Debugging experience is uniqueDebugging experience is unique In the IDE, HW debugging is transparent to the userIn the IDE, HW debugging is transparent to the user Never before has the power of HW debugging Never before has the power of HW debugging
been combined with the ease of use of our been combined with the ease of use of our desktop experiencedesktop experience
Data Visualization: Data Visualization: OverviewOverview Embedded Development Complexity Embedded Development Complexity
versus Desktop Developmentversus Desktop Development Connectivity across the wireConnectivity across the wire Limited resources on the targetLimited resources on the target Specialized hardware, systemsSpecialized hardware, systems
Graphical display of data to reduce Graphical display of data to reduce complexity and visualize system statecomplexity and visualize system state
Integration with PBIntegration with PB
Data Visualization: Data Visualization: ArchitectureArchitecture Target-side information drives host-UITarget-side information drives host-UI Collector/Viewer ModelCollector/Viewer Model
Target: Collector Manager and CollectorsTarget: Collector Manager and Collectors Host: Viewer Manager and ViewersHost: Viewer Manager and Viewers
Data Visualization Tools: Data Visualization Tools: Flagship ProductFlagship Product Kernel Event Viewer (KEV)Kernel Event Viewer (KEV)
Proof of conceptProof of concept MS expertise in KernelMS expertise in Kernel
KEV featuresKEV features Time-based linear display ofTime-based linear display of
system synchronicity eventssystem synchronicity events Event-sensitive Search capabilitiesEvent-sensitive Search capabilities Support for user-defined eventsSupport for user-defined events
Data Visualization: Data Visualization: PartneringPartnering Collector/Viewer Plug-In Model is Collector/Viewer Plug-In Model is
available now!available now! Partners already implementing solutionsPartners already implementing solutions Contact us today!Contact us today!
SummarySummary
Platform Builder 3.0 now supports Platform Builder 3.0 now supports hardware assisted Debugginghardware assisted Debugging Software Model and Hardware ModelSoftware Model and Hardware Model Extensibility allows for third-party valueExtensibility allows for third-party value
PB 3.0 now supports extensibility PB 3.0 now supports extensibility through Data Visualization Modelthrough Data Visualization Model
Final PB 3.0 product available soon!Final PB 3.0 product available soon! Product and availability information at Product and availability information at
http://www.microsoft.com/windowsce/http://www.microsoft.com/windowsce/embeddedembedded
Questions?Questions?