B.11. Vector catching

The ARM9EJ-S core EmbeddedICE-RT logic contains hardware that enables efficient trapping of Fetches from the vectors during exceptions. This is controlled by the vector catch register. If one of the bits in this register is set HIGH and the corresponding exception occurs, the processor enters debug state as if a breakpoint has been set on an instruction Fetch from the relevant exception vector.

For example, if the processor executes a SWI instruction while bit 2 of the vector catch register is set, the ARM9EJ-S core fetches an instruction from location 0x8. The vector catch hardware detects this access and forces the internal IBREAKPT signal HIGH into the ARM9EJ-S core control logic. This, in turn, forces the ARM9EJ-S core to enter debug state.

The behavior of the hardware is independent of the watchpoint comparators, leaving them free for general use. The vector catch register is sensitive only to Fetches from the vectors during exception entry. Therefore, if code branches to an address within the vectors during normal operation, and the corresponding bit in the vector catch register is set, the processor is not forced to enter debug state.

In monitor mode debug, vector catching is disabled on Data Aborts and Prefetch Aborts to avoid the processor being forced into an unrecoverable state as a result of the aborts that are generated for the monitor mode debug.

Copyright ©  2001, 2002. ARM Limited. All rights reserved.ARM DDI 0222B
Non-Confidential