Download presentation
Presentation is loading. Please wait.
Published byKelly Richard Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.