1 / 40

Debugging

Debugging. Objectives. After completing this module, you will be able to: Understand the basic concepts of the Eclipse IDE List Xilinx Software Development Kit (SDK) features Describe GNU Debugger (GDB) functionality Describe Xilinx Microprocessor Debugger (XMD) functionality

Download Presentation

Debugging

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Debugging This material exempt per Department of Commerce license exception TSU

  2. Objectives After completing this module, you will be able to: • Understand the basic concepts of the Eclipse IDE • List Xilinx Software Development Kit (SDK) features • Describe GNU Debugger (GDB) functionality • Describe Xilinx Microprocessor Debugger (XMD) functionality • Describe the integration of XMD and GDB with SDK

  3. Outline • Software Development Kit • Debugging Tools • Debugging Using XPS • Debugging Using SDK

  4. Xilinx Platform Studio Software Development Kit (SDK) • Java-based application development environment • Based on the open-source effort by the Eclipse Consortium\ • Feature-rich C/C++ code editor and compilation environment • Project management • Application build configuration and automatic Makefile generation • Error Navigation • Well-integrated environment for seamless debugging of embedded targets • Source code version control

  5. Platform Studio SDK Extensions C/C++ Development Perspective Eclipse platform Java Virtual Machine Xilinx Extensions to Eclipse • SDK leverage on Eclipse + CDT • Project Management • Makefile builder • Code editor, Error Navigation • Debug • Search • SDK value add to CDT • Debug integration using XMD • Xilinx Custom Compiler settings for PowerPC, MicroBlaze • Profiling Flow and Visualization • Productization

  6. Eclipse/CDT Frameworks • Builder framework • Compiles and Links Source files • Default Build options are specified when application is created: Choice of Debug, Release, Profile configurations • User can custom build options later when developing application • Build types: Standard Make, Managed Make • Launch framework • Specifies what action needs to be taken: Run (+ Profile) application or Debug application • In SDK, this is akin to the Target Connection settings • Debug framework • Launches debugger (gdb), loads application and begins debug session • Debug views show information about state of debug session • Hides ugliness of debug details • Search framework • Helps development of application • Help System • Online help system; context-sensitive

  7. Platform Studio SDK SDK Application Development Flow Platform Studio Generate Hardware Platform Create software App Project Generate Software Platform Add sources + Edit libraries, drivers Compile + Link Debug / Profile Done? Import ELF file, Download to board Yes

  8. Workspaces and Perspectives • Workspace • Location to store preferences & internal info about Projects • Transparent to SDK users • In SDK, source files not stored under Workspace • Views, Editors • Basic User interface element • Perspectives • Collection of functionally related views • Layout of views in a perspective can be customized according to user preference

  9. Perspectives

  10. CVS Perspective

  11. Views • Eclipse Platform views: Navigator view, Tasks view, Problems view • Debug views: Stack view, Variables view • C/C++ views: Projects view, Outline view

  12. Opening Perspectives and Views • To open a Perspective, use Window  Open Perspective • To open a view, use Window  Show View If the view is already present in the current perspective, the view is highlighted

  13. Editors • bracket matching • syntax coloring • content assist • refactoring • keyboard shortcuts

  14. SDK Workbench C/C++ project outline displays the elements of a project with file decorators (icons) for easy identification C/C++ editor for integrated software creation Code outline displays elements of the software file under development with file decorators (icons) for easy identification Problems, Console, Properties view lists output information associated with the software development flow 1 2 1 3 2 3 4 4

  15. Outline • Software Development Kit • Debugging Tools • Debugging Using XPS • Debugging Using SDK

  16. Introduction • Debugging is an integral part of embedded systems development • The debugging process is defined as testing, stabilizing, localizing, and correcting errors • Two methods of debugging • Hardware debugging • via a logic probe, logic analyzer, in-circuit emulator, or background debugger • Software debugging via a debugging instrument • A software debugging instrument is source code that is added to the program for the purpose of debugging • Debugging types • Functional debugging • Performance debugging

  17. Hardware Debugging Support • ChipScope™ Pro tool cores are now included for adding to a Xilinx Platform Studio design • PLB IBA (Integrated Bus Analyzer) • OPB IBA • VIO (Virtual I/O) • ChipScope Pro tool available thru donation • Enables co-debug of software with GNU gdb and hardware with ChipScope Analyzer

  18. Software Debugging Support • EDK supports software debugging via: • GNU Debugger (GDB) tools • Unified interface for debugging and verifying MicroBlaze and PowerPC systems • Xilinx Microprocessor Debugger (XMD) • Runs all of the hardware debugging tools and communicates with the hardware • GNU tools communicate with the hardware through XMD

  19. PPC Cycle-Accurate Instruction Set Simulator GDB Functionality Tcl/Terminal Interface Host Host Software Host Software GDB Remote Protocol User Interface XMD PowerPC-eabi-gdb (TCP Socket Interface) (TCP/IP) JTAG PPC405 Debug Port Target Hardware PowerPC System

  20. GDB Functionality • GDB is a source-level debugger that helps you debug your program: • Start your program • Set breakpoints (make your program stop on specified conditions) • Examine what has happened, when your program encounters breakpoints • Registers • Memory • Stack • Variables • Expressions • Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another • You can use GDB to debug programs written in C and C++

  21. GDB Assembly Instructions Memory Location C Code

  22. GDB Functionality • Breakpoints can be enabled or disabled • To change any memory value, simply double-click in a memory field

  23. GDB Functionality • Blue represents registers that have changed • To change any value, double-click in a field

  24. PPC Cycle-Accurate Instruction Set Simulator XMD Functionality Tcl/Terminal Interface Host Host Software Host Software GDB Remote Protocol User Interface XMD PowerPC-eabi-gdb (TCP Socket Interface) (TCP/IP) JTAG PPC405 Debug Port Target Hardware PowerPC System

  25. XMD Functionality • Xilinx Microprocessor Debug (XMD) engine • A program that facilitates a unified GDB interface • A Tool command language(TCL) interface • XMD supports debugging user programs on different targets • Cycle-accurate PowerPC processor instruction set simulator • PowerPC system on a hardware board • GDBcommunicates with xmd by using the Remote TCP protocol and control the corresponding targets • GDB can connect to xmd on the same computer or on a remote computer on the Internet

  26. MDM IBA IBA Simultaneous HW/SW Debug Minimal “skid-by” as cross triggering is done on chip between IBA cores and PPC & MicroBlaze debug interfaces • ChipScope™ Pro PLB & IBA cores in target • ChipScope Pro Analyzer on host • GDB debugger on host • XMD supports simultaneous access over Xilinx parallel cables • PLB/OPB IBA instantiation in XPS • Are treated like the peripheral cores Set breakpoint in GDB – when hit → triggers ChipScope Set trigger in ChipScope – when hit → halts CPU and debugger stops

  27. Simultaneous HW/SW Debug Active trigger when addr bus = 0xC200 Trigger out signal from IBA to CPU debug halt signal in XMD Xilinx Parallel Cable

  28. Outline • Software Development Kit • Debugging Tools • Debugging Using XPS • Debugging Using SDK

  29. 1 2 Compile with the debugging option Download the bitstream A Debugging Sample This will go through the necessary steps, generate a bitstream file, and download the file

  30. 4 Start the XMD shell Start XMD 3 Set XMD Debug Options Set connection type and JTAG properties This opens a connection with the hardware, indicating whether the connecting port, caches, DCR, and TLB are enabled or not

  31. 6 5 A source code window displays Start Software Debugger Start Software Debugger If there are more than one application in the project then the tools will provide choice to select an application Change the code window display from SOURCE to MIXED to show C and assembly code

  32. 7 A window displaying C and assembly code 8 Select the target as Remote/TCP: XMD Software Debugger Connect Enter that port number that was displayed during ppc-connect

  33. 11 9 When a breakpoint is encountered, the debugger will stop Set any breakpoints as necessary 12 10 View the necessary windows Click the Run button Debug Program Exit debugger by typing quit in the console window

  34. Outline • Software Development Kit • Debugging Tools • Debugging Using XPS • Debugging Using SDK

  35. Eclipse CDT auto-launched powerpc-eabi-gdb (or) mb-gdb gdb remote protocol XMD auto-launched Xilinx custom graphical debug interface JTAG / XMD protocol Debugging Using SDK

  36. SDK Debug Perspective The stack frame for target threads that you are debugging. Each thread in your program is represented as a node in the tree Variables, Breakpoints, and Registers views allow for viewing and real-time interaction with the view contents for more powerful debugging potential C/C++ editor highlights the location of the execution pointer, along with allowing the setting of breakpoints Code outline and disassembly view provide compiler level insight to what is occurring in the running source Console view lists output information 1 1 2 2 3 3 4 4 5 5

  37. Debugging in XPS vs SDK • Debugging in XPS • Download bitstream from XPS • Launch XMD • Provide Target Connection Options • Launch GDB (Insight GUI) • Set GDB Server connection port in GDB • Download program • Begin Debugging • Debugging in SDK • Download bitstream from XPS • Launch XMD • Provide Target Connection Options • Launch GDB (Insight GUI) • Set GDB Server connection port in GDB • Download program • Begin Debugging

  38. Review Questions • Into what parts of the design do debuggers provide visibility?

  39. Answers • Into what parts of the design do debuggers provide visibility? • Registers • Memory • Stack • Variables • Expressions

  40. Where Can I Learn More? • Tool documentation • Embedded System Tools Guide  GNU Compiler Tools • Embedded System Tools Guide  GNU Debugger • Embedded System Tools Guide  Xilinx Microprocessor Debugger • Xilinx Platform Studio SDK Online Documentation • Support website • EDK Home Page: support.xilinx.com/edk

More Related