Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2003 Xilinx, Inc. All Rights Reserved Debugging.

Similar presentations


Presentation on theme: "© 2003 Xilinx, Inc. All Rights Reserved Debugging."— Presentation transcript:

1 © 2003 Xilinx, Inc. All Rights Reserved Debugging

2 Debugging - 11 - 3 © 2003 Xilinx, Inc. All Rights Reserved Objectives After completing this module, you will be able to: Describe GDB functionality Describe XMD functionality Describe the integration of GDB with XMD List supported third-party tools

3 Debugging - 11 - 4 © 2003 Xilinx, Inc. All Rights Reserved Outline Introduction GDB Functionality XMD Functionality – MicroBlaze Processor – PowerPC Processor

4 Debugging - 11 - 5 © 2003 Xilinx, Inc. All Rights Reserved 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

5 Debugging - 11 - 6 © 2003 Xilinx, Inc. All Rights Reserved Hardware Debugging Support ChipScope™ Pro cores are now included for adding to a Platform Studio design – PLB IBA (Integrated Bus Analyzer) – OPB IBA – VIO (Virtual I/O) ChipScope Pro evaluation version shipped with EDK – Analyzer evaluation ends after 90 days – Core insertion/generation works indefinitely – Supports Solaris™ OS and Windows® platforms Linux to be added in an upcoming release Enables co-debug of software with GNU gdb and hardware with ChipScope Analyzer

6 Debugging - 11 - 7 © 2003 Xilinx, Inc. All Rights Reserved Simultaneous HW/SW Debug 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 IBA MDM Set breakpoint in GDB – when hit → triggers ChipScope Set trigger in ChipScope – when hit → halts CPU and debugger stops Minimal “skid-by” as cross triggering is done on chip between IBA cores and PPC & MicroBlaze debug interfaces

7 Debugging - 11 - 8 © 2003 Xilinx, Inc. All Rights Reserved Simultaneous HW/SW Debug XMD Xilinx Parallel Cable Active trigger when addr bus = 0xC200 Trigger out signal from IBA to CPU debug halt signal in

8 Debugging - 11 - 9 © 2003 Xilinx, Inc. All Rights Reserved 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 hardware through XMD Third-party support – Wind River: SingleStep  XE debugger visionPROBE II  XE debugger – Nohau: EMUL-MicroBlaze-PC  debugger

9 Debugging - 11 - 10 © 2003 Xilinx, Inc. All Rights Reserved Outline Introduction GDB Functionality XMD Functionality – MicroBlaze Processor – PowerPC Processor

10 Debugging - 11 - 11 © 2003 Xilinx, Inc. All Rights Reserved GDB Functionality User Interface Target Hardware (TCP/IP) GDB Remote Protocol JTAG UART PowerPC System MicroBlaze System PPC405 Debug PortJTAG UART UARTlite XMD stub Host Software PowerPC-eabi-gdb Host Software mb-gdb Host Software Tcl/Terminal Interface XMD JTAG MB Cycle-Accurate Instruction Set Simulator JTAG MicroBlaze System MDM Host Software

11 Debugging - 11 - 12 © 2003 Xilinx, Inc. All Rights Reserved 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++

12 Debugging - 11 - 13 © 2003 Xilinx, Inc. All Rights Reserved GDB Memory Location Assembly Instructions C Code

13 Debugging - 11 - 14 © 2003 Xilinx, Inc. All Rights Reserved GDB GUI Run-time control – S: Step by source lines (Step into functions) – SI: Step by machine instruction – C: Continue to next breakpoint – N: Next source line (Steps over functions) – NI: Next machine instruction – F: Finish (Ignores all breakpoints)

14 Debugging - 11 - 15 © 2003 Xilinx, Inc. All Rights Reserved GDB Functionality Breakpoints can be enabled or disabled To change any memory value, simply double-click in a memory field

15 Debugging - 11 - 16 © 2003 Xilinx, Inc. All Rights Reserved GDB Functionality Blue represents registers that have changed To change any value, double-click in a field

16 Debugging - 11 - 17 © 2003 Xilinx, Inc. All Rights Reserved Outline Introduction GDB Functionality XMD Functionality – MicroBlaze Processor – PowerPC Processor

17 Debugging - 11 - 18 © 2003 Xilinx, Inc. All Rights Reserved XMD Functionality User Interface Target Hardware (TCP/IP) GDB Remote Protocol JTAG UART PowerPC System MicroBlaze System PPC405 Debug PortJTAG UART UARTlite XMD stub Host Software PowerPC-eabi-gdb Host Software mb-gdb Host Software Tcl/Terminal Interface XMD JTAG MB Cycle-Accurate Instruction Set Simulator JTAG MicroBlaze System MDM Host Software

18 Debugging - 11 - 19 © 2003 Xilinx, Inc. All Rights Reserved XMD Functionality Xilinx Microprocessor Debug (XMD) engine – A program that facilitates a unified GDB interface – A Tcl (Tool command language) interface XMD supports debugging user programs on different targets – Cycle-accurate MicroBlaze  processor instruction set simulator – MicroBlaze system running xmdstub on a hardware board – MicroBlaze system using MDM peripheral – PowerPC  system on a hardware board mb-gdb and powerpc-eabi-gdb communicate 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

19 Debugging - 11 - 20 © 2003 Xilinx, Inc. All Rights Reserved XMD Tcl Interface x? - lists all Tcl commands xrmem target addr [ num ] - Reads num bytes or 1 byte from the memory address addr xwmem target addr value - Writes an 8-bit byte value at the specified memory addr xrreg target [ reg ] - Reads all registers or only register number reg xwreg target reg value - Writes a 32-bit value into register number reg xdownload target [-data] filename [ addr ] - Downloads the given ELF or data file (with -data option) onto the memory of the current target xcontinue target [ addr ] - Continues execution from the current PC or from the optional address argument xstep target - Single steps one MicroBlaze  processor instruction. If the PC is at an IMM instruction, the next instruction is executed as well

20 Debugging - 11 - 21 © 2003 Xilinx, Inc. All Rights Reserved Outline Introduction GDB Functionality XMD Functionality – MicroBlaze Processor – PowerPC Processor

21 Debugging - 11 - 22 © 2003 Xilinx, Inc. All Rights Reserved MicroBlaze Processor: XMD There are three ways to debug MicroBlaze  processor code: – OPB JTAG UART core Intrusive: requires xmdstub software – OPB UART core Intrusive: requires xmdstub software – OPB MDM core Non-intrusive: hardware interface MicroBlaze (TCP/IP) GDB Remote Protocol UART Host Software mb-gdb Host Software Tcl/Terminal Interface XMD JTAG MB Cycle-Accurate Instruction Set Simulator JTAG UART MDM OPB Bus

22 Debugging - 11 - 23 © 2003 Xilinx, Inc. All Rights Reserved MicroBlaze Processor: XMD MicroBlaze  processor stub target (xmdstub) – User programs can be downloaded or executed directly from mb-gdb To debug programs on the hardware by using xmdstub 1. A JTAG UART or a UART must be included in the hardware system 2. A JTAG UART or a UART must be specified as the DEBUG_PERIPHERAL 3. The xmdstub executable must be included in the MicroBlaze processor’s local memory at system startup Sample session of XMD with a hardware stub target – XMD% mbconnect stub -comm jtag -posit 2 Connect to a MicroBlaze processor target via a stub, using JTAC communication, and an FPGA which is second in the JTAG chain

23 Debugging - 11 - 24 © 2003 Xilinx, Inc. All Rights Reserved MicroBlaze Processor: XMD MicroBlaze processor simulator target mb-gdb and xmd can be used to debug programs on the cycle-accurate simulator built into XMD Simulator target requirements – Programs should be compiled for debugging and should be linked with the startup code in crt0.o – Programs can have a maximum size of 64 KB only – Does not support the simulation of OPB peripherals Sample session of XMD and GDB – XMD% mbconnect sim

24 Debugging - 11 - 25 © 2003 Xilinx, Inc. All Rights Reserved MicroBlaze Processor: XMD MicroBlaze  processor MDM (hardware OPB_MDM debug core on-board) The MDM target supports non-intrusive debugging by using: – Hardware breakpoints – Hardware single step – This removes the need to run xmdstub – This removes the requirement to have large memory Sample session of XMD and GDB – XMD% mbconnect mdm

25 Debugging - 11 - 26 © 2003 Xilinx, Inc. All Rights Reserved XMD Options mbconnect [ options ] Simulator target options – -memsize size xmdstub target options – -comm – -posit device position – -chain device count – -port serial port – -baud baud rate

26 Debugging - 11 - 27 © 2003 Xilinx, Inc. All Rights Reserved Outline Introduction GDB Functionality XMD Functionality – MicroBlaze Processor – PowerPC Processor

27 Debugging - 11 - 28 © 2003 Xilinx, Inc. All Rights Reserved PowerPC Processor: XMD Use xmd to connect a hardware PowerPC  target over a JTAG connection to a board containing a Virtex-II Pro  device Use the ppcconnect command to connect to the PowerPC processor target and start a remote GDB server (TCP/IP) GDB Remote Protocol JTAG PowerPC System PPC405 Debug Port Host Software PowerPC-eabi-gdb Host Software Tcl/Terminal Interface XMD

28 Debugging - 11 - 29 © 2003 Xilinx, Inc. All Rights Reserved A Debugging Sample Compile with the debugging option 1 Download the bitstream 2 This will go through the necessary steps, generate a bitstream file, and download the file

29 Debugging - 11 - 30 © 2003 Xilinx, Inc. All Rights Reserved Start XMD Start the XMD shell 3 In XMD, type ppc to connect to the hardware 4 This opens a connection with the hardware, indicating the connecting port, caches, DCR, TLB enabled or not

30 Debugging - 11 - 31 © 2003 Xilinx, Inc. All Rights Reserved Start Software Debugger 5 A source code window will be displayed A source code window will be displayed 6 Change the code window display from SOURCE to MIXED to show C and assembly code

31 Debugging - 11 - 32 © 2003 Xilinx, Inc. All Rights Reserved Software Debugger Connect A window displaying C and assembly code A window displaying C and assembly code 7 Select the target as Remote/TCP: XMD Select the target as Remote/TCP: XMD 8 Enter that port number that was displayed during ppc-connect

32 Debugging - 11 - 33 © 2003 Xilinx, Inc. All Rights Reserved Debug Program Set any breakpoints as necessary 9 Click the Run button 10 When a breakpoint is encountered, the debugger will stop 11 View the necessary windows 12 Exit debugger by typing quit in the console window

33 Debugging - 11 - 34 © 2003 Xilinx, Inc. All Rights Reserved Skills Check

34 Debugging - 11 - 35 © 2003 Xilinx, Inc. All Rights Reserved Review Questions What is the XMD command line used to connect to a MicroBlaze  processor core via JTAG? What is the advantage of using MDM over a JTAG UART? Into what parts of the design do debuggers provide visibility?

35 Debugging - 11 - 36 © 2003 Xilinx, Inc. All Rights Reserved Answers What is the XMD command line used to connect to a MicroBlaze  processor core via JTAG? – XMD% mbconnect stub -comm jtag -posit 2 What is the advantage of using MDM over a JTAG UART? – Non-intrusive – Less memory required Into what parts of the design do debuggers provide visibility? – Registers – Memory – Stack – Variables – Expressions

36 Debugging - 11 - 37 © 2003 Xilinx, Inc. All Rights Reserved 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 Support website – EDK Home Page: support.xilinx.com/edk


Download ppt "© 2003 Xilinx, Inc. All Rights Reserved Debugging."

Similar presentations


Ads by Google