Skip to main content

IAR Embedded Workbench for RX 5.20

Debugger concepts

In this section:

This page introduces some of the concepts and terms that are related to debugging in general and to C-SPY in particular. This page does not contain specific information related to C-SPY features. Instead, you will find such information in the other parts of this documentation. The IAR user documentation uses the terms described on this page when referring to these concepts.

The debugger

The debugger, for instance C-SPY, is the program that you use for debugging your applications on a target system.

The target system

The target system is the system on which you execute your application when you are debugging it. The target system can consist of hardware, either an evaluation board or your own hardware design. It can also be completely or partially simulated by software. Each type of target system needs a dedicated C-SPY driver.

The application

A user application is the software you have developed and which you want to debug using C-SPY.

C-SPY debugger systems

C-SPY consists of both a general part which provides a basic set of debugger features, and a target-specific back end. The back end consists of two components: a processor module—one for every microcontroller, which defines the properties of the microcontroller, and a C-SPY driver. The C-SPY driver is the part that provides communication with and control of the target system. The driver also provides the user interface—menus, windows, and dialog boxes—to the functions provided by the target system, for instance, special breakpoints.

Typically, there are three main types of C-SPY drivers:

  • Simulator driver

  • ROM-monitor driver

  • Emulator driver

C-SPY is available with a simulator driver, and depending on your product package, optional drivers for hardware debugger systems.

For an overview of the available C-SPY drivers and the functionality provided by each driver, see C-SPY drivers overview.

The ROM-monitor program

The ROM-monitor program is a piece of firmware that is loaded to non-volatile memory on your target hardware—it runs in parallel with your application. The ROM-monitor communicates with the debugger and provides services needed for debugging the application, for instance stepping and breakpoints.

Third-party debuggers

You can use a third-party debugger together with the IAR toolchain as long as the third-party debugger can read ELF/DWARF, Intel-extended, or Motorola. For information about which format to use with a third-party debugger, see the user documentation supplied with that tool.

C-SPY plugin modules

C-SPY is designed as a modular architecture with an open SDK that can be used for implementing additional functionality to the debugger in the form of plugin modules. These modules can be seamlessly integrated in the IDE.

Plugin modules are provided by IAR, or can be supplied by third-party vendors. Examples of such modules are:

  • The various C-SPY drivers for debugging using certain debug systems.

  • C-SPYLink that bridges IAR Visual State and IAR Embedded Workbench to make true high-level state machine debugging possible directly in C-SPY, in addition to the normal C level symbolic debugging. For more information, see the documentation provided with IAR Visual State.

For more information about the C-SPY SDK, contact IAR.