300 likes | 537 Views
Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303. Agenda. Introduction to Platform Builder New Platform Builder 3.0 features IDE Kernel debugging HW assisted debugging Data Visualization Model Product demos
E N D
Debugging Windows® CE Applications And SystemsDavid StreamsLead Program ManagerWindows CE ToolsMicrosoft Corporation8-303
Agenda • Introduction to Platform Builder • New Platform Builder 3.0 features • IDE Kernel debugging • HW assisted debugging • Data Visualization Model • Product demos • Questions and answers
Platform Builder Integrated Development EnvironmentPlatform Pane (Component Tab) • Component view • Used toconfigure your platform components • IDE saves your platform state • .wce workspace • Components • Build rules • Platform settings
Platform Builder Catalog Catalog –Contains superset of available components Logical abstraction – Choose logical type groupings and resolveto components in Platform Pane Extensible –Add new components to catalog via .cec files
New PB 3.0 Tools Features • Usability/ease of use • Configuration improvements • Connectivity/download integration • IDE manages/communicates state of tools • Debugger integration • CPU add-in model • Entire product (IDE, Wizards, Debugger, etc) capable of supporting a new CPU that ships after PB releases • Extensibility • New hardware debug APIs • Tools plug-in model
Connectivity Integration • PB 3.0 incorporates connectivity settings into the integrated development environment • Users select and configure transports used by embedded tools
Connectivity Integration Users can then configure their specific transport settings in the appropriate tab
Download And Boot Now Integrated Into IDE Target Menu utilizes settings defined in connectivity settings dialog
CESH (Target Control)Now Integrated • Process and Thread Windows now serve dual purposes • Debugger populates windows during break state • Shell.exe (CESH) populates windows duringrun state • Ability to refresh views after state change • CESH commands now integrated as features in the IDE • Ability to start and stop processes, view process\thread info, set debug zones, set debug break, etc.
Platform Builder 2.12 Debugger Experience • Good news • Integrated the kernel debugger into the IDE • Supported many windbg debugger commands in the IDE • !Process • !thread stack • Brought the benefits ofintegrated application debuggingto embedded development
PB 3.0 Debugger Enhancements • Continuity: Intuitive work flow • Debugger no longer tied to projects • Build from IDE:Debug seamlessly from platform • Build from Command: Target nk.bin • Enable kernel debugger with theclick of a button • 3.0 gives the developer a checkbox to enable debugging + adds debugger stub by default for debug configuration
(More) Debugger Enhancements • Communication and control • Status Monitor, Status Strings • IDE is State-Aware • New UI: Processes, Threads, Call-stack, and more… • New Manual/Auto Logging functionality
Demo: Kernel Debugging • Platform Builder 3.0 • Integration of Host/Target Connectivity • Integrated Download and Boot • CESH Integration • Kernel Debugger
Hardware Assist: Software Model (Data Breakpoints) • Software Model versus Hardware Model • SW model does not require specialized HW • OEM can configure run control behavior (step in ROM is possible) • Data breakpoints • Previous model: Software emulation • Debugger took single steps (by instruction) • At every single step, evaluate location • 3.0 Model: Use HW registers, when available
Demo: SW Model HW Assist • Platform Builder 3.0 • ODO Platform with SH3 CPU • OAL modified to utilize debug registers for data breakpoints • Application downloaded to target modifies a given address • Data breakpoint set on that address hitting a certain value • Performance of hw usage versus software emulation
HW-Modeled Hardware Assist: Motivation • OEM Challenge: Building and debugging the OAL • OAL code executed prior to KDInit (OEMInit, bootloader, …) • Kernel Debugging too intrusive in some cases • Hardware Debugging is an essential part of the embedded tool chain • Existing tools (Probes, ICE, associated SW) • Ad Hoc tool chains • Proprietary interfaces • Very difficult to use
Hardware Assist: Goals • Bring solution to market • Leverage third-party expertise through partnering • Focal points • Ease of use • Integration with PB’s existing tool set • Flexibility • Extensibility
Hardware Assist: Solution • Embedded Extended Debugging Interface • API sits between our debugger andthird party drivers • Drivers communicate with existing hardware tools and proprietary interfaces • IDE does not need to know probe details • Third-party tools plug-in model • Port existing and new probe software and tools • These tools integrate with PB IDE • Currently: AMC, Microtek Int’l, Macraigor
Embedded ExtendedDebug Interface (eXDI) eXDI Callback Debugger (PB) Probe (JTAG,BDM…) or Emulator Driver eXDI Server eXDI Callback Plug-ins CPU Plug-ins Plug-ins Optional 3rd party int’f Plug-ins eXDI provides mainly Target Run Control, Mem / IO / Reg. Access and State Change Notification to clients
Demo: HW Model HW Assist • Platform Builder 3.0 • AMC Custom Foundation CE Platform with PPC 821 CPU • eXDI driver written by AMC to communicate with eXDI Server and PB • We will debug prior to Kernel Init (OEMInit) • Plug-In Demo: Download without Bootloader
Hardware Assist: Closure • Debugging capability is extensible • Third parties can write tools to interface with HW through eXDI and plug-in model (Real-Time Trace, Flash programming,…) • Debugging functionality is expanded • Debug where we never have before:from CPU Reset to Kernel Init – code in ROM – OAL critical code • True HW BPs (code and data), true Target halt • Very low intrusiveness • Debugging experience is unique • In the IDE, HW debugging is transparent to the user • Never before has the power of HW debugging been combined with the ease of use of our desktop experience
Data Visualization: Overview • Embedded Development Complexity versus Desktop Development • Connectivity across the wire • Limited resources on the target • Specialized hardware, systems • Graphical display of data to reduce complexity and visualize system state • Integration with PB
Data Visualization: Architecture • Target-side information drives host-UI • Collector/Viewer Model • Target: Collector Manager and Collectors • Host: Viewer Manager and Viewers
Data Visualization Tools: Flagship Product • Kernel Event Viewer (KEV) • Proof of concept • MS expertise in Kernel • KEV features • Time-based linear display ofsystem synchronicity events • Event-sensitive Search capabilities • Support for user-defined events
Data Visualization: Partnering • Collector/Viewer Plug-In Model is available now! • Partners already implementing solutions • Contact us today!
Summary • Platform Builder 3.0 now supports hardware assisted Debugging • Software Model and Hardware Model • Extensibility allows for third-party value • PB 3.0 now supports extensibility through Data Visualization Model • Final PB 3.0 product available soon! • Product and availability information at http://www.microsoft.com/windowsce/embedded