4.11.4. Configuring Vector Catch

Vector Catch is a mechanism used to trap processor exceptions. This feature is typically used in the early stages of development to trap processor exceptions before the appropriate handlers are installed. You select the vectors to trap by editing the vector_catch value.

The default values correspond to trapping the exceptions listed in Table 4.2.

Table 4.2. Trapped Processor Exceptions (defaults)

ExceptionTrappedComment
ResetYesSet to True to catch Reset vectors. This is the default.
UndefinedYesSet to True to catch Undefined/Illegal Instructions. This is the default.
SWINoSet to True to catch software interrupts. The default is False. The SWI vector may also be trapped by the debugger to enable standard semihosting.
Prefetch AbortYesSet to True to catch Prefetch abort (instruction fetch memory fault) exceptions. This is the default.
Data AbortYesSet to True to catch Data abort (data access memory fault) exceptions. This is the default.
IRQNoSet to True to catch interrupt requests. The default is False.
FIQNoSet to True to catch fast interrupt requests. The default is False.

Setting Vector Catch for a Particular Connection

The state of individual vectors for catching can also be set for a particular target connection using the Connection Properties window:

  1. Ensure that you disconnect from the target before making these changes.

  2. Select Target → Connect to Target... to open the Connection Control window.

  3. Right-click on the connection, for example RVI-ME, and select Connection Properties... from the context menu.

    The appropriate branch in the Connection Properties window opens automatically.

  4. Drill down through the tree:

    • Advanced_Information

    • Default

    • ARM_config

    • Vectors

  5. Set the catching of each vector in the group to the required new connection default.

  6. Select File → Save and Close.

Note

To use the new setting, you must now connect to the target.

Setting Vector Catch for Individual Target Boards

You can set the default vector catch that will be used for a particular target board, using the Connection Properties window:

  1. Ensure that you disconnect from the target before making these changes.

  2. Select Target → Connect to Target to open the Connection Properties window.

  3. Select the appropriate board from within the Board/Chip Definitions folder

  4. Select the appropriate board from within the Board/Chip Definitions folder and drill down through the tree:

    • Advanced_Information

    • ARM

    • ARM_config

    • Vectors

  5. Set the catching of each vector in the group to the required board default.

  6. Select File → Save and Close.

Note

Vector settings in the Board/Chip definition file will override those in the target connection settings.

Setting Vector Catch from the Debug Menu

You can override the value of vector_catch for a single debug session as follows:

  1. Select Debug → Processor Events... to open the List Selection window.

  2. Select the processor events that you want enabled.

Note

Although vector catches set in this way override those set using the other methods, the settings are not retained after you disconnect from the target. To make permanent changes to settings, use one of the other methods described in this section.

Copyright © 2005, 2006 ARM Limited. All rights reserved.ARM DUI 0276B
Non-Confidential