Intel® IQ80321 I/O Processor Evaluation Platform
Getting Started and Debugger
C.9 Debugging Basics
C.9.1 Overview
Debuggers allow developers to interrogate application code by allowing program flow control, data observation, and data manipulation. The flow control functions include the ability to
Debuggers have a finite set of capabilities and limitations. Debuggers can give insight that is difficult to obtain without them, but they can fail when they are not used within the limits of their functionality. They are intrusive by definition. They are software programs that interact with software monitors or hardware (JTAG) to control a target program. Ultimately, the debugger works best when the developer understands what it can and can not do and uses it within those constraints.
C.9.2 Hardware and Software Breakpoints
The following section provides a brief overview of breakpoints. See the Intel® 80321 I/O Processor Developer’s Manual, for more detailed information.
C.9.2.1 Software Breakpoints
Software breakpoints are setup and utilized via debugger utilities (such as CodeLab). The abilities of software breakpoints were seen in Section C.7 of this Guide. Program execution can be halted at a particular line of code, stepped through, and executed again to the next breakpoint via debuggers.
During this process, register values, memory address contents, variable contents, and many other useful pieces of information can be monitored.
C.9.2.2 Hardware Breakpoints
Hardware breakpoints step and breakpoint in code in either ROM or RAM without altering the code, stacks, or other target information. Hardware breakpoints handle difficult issues, by providing the ability to set the processor conditions that cause the program to halt. Use hardware breakpoints to locate problems such as reentrance, obscure timing, etc.
The 80321 contains two instruction breakpoint address registers (IBCR0 and IBCR1), one data breakpoint address register (DBR0), one configurable data mask/address register (DBR1), and one data breakpoint control register (DBCON). The 80321 also supports a 256 entry, trace buffer, that records program execution information. The registers to control the trace buffer are located in CP14.
Board Manual | 119 |