05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Debug Events<br />

One set for exceptions taken in the Secure exception modes other than Monitor mode. These are<br />

called the Secure Local vector addresses.<br />

One set for exceptions taken in Monitor mode. These are called the Monitor vector addresses.<br />

You enable vector catch independently for each of these vector addresses, by setting a bit in the DBGVCR<br />

to 1, see Vector Catch Register (DBGVCR) on page C10-67.<br />

If the Security Extensions are not implemented, the debug logic determines whether to generate a Vector<br />

Catch debug event by comparing every instruction fetch with the Local vector addresses.<br />

If the Security Extensions are implemented, the debug logic determines whether to generate a Vector Catch<br />

debug event by comparing every Secure instruction fetch with the Secure Local <strong>and</strong> Monitor vector<br />

addresses, <strong>and</strong> by comparing every Non-secure instruction fetch with the Non-secure Local vector<br />

addresses.<br />

Note<br />

Any instruction fetched from an exception vector address <strong>and</strong> committed for execution triggers a Vector<br />

Catch debug event if the appropriate bit in the DBGVCR is set to 1. Testing for possible Vector Catch debug<br />

events does not check whether the instruction is executed as a result of an exception entry.<br />

Whether a Vector Catch debug event is generated for an instruction is UNPREDICTABLE if either:<br />

The exception vector address is word-aligned <strong>and</strong> one of the following applies:<br />

— the first unit of the instruction is in the word at the exception vector address but is not at the<br />

exception vector address<br />

— the first unit of the instruction is not in the word at the exception vector address but another<br />

unit of the instruction is in that word.<br />

This can occur when the processor is executing a variable-length instruction set, that is, in Thumb,<br />

ThumbEE or Jazelle state.<br />

The exception vector address is not word-aligned but is halfword-aligned <strong>and</strong> one of the following<br />

applies:<br />

— The first unit of the instruction is in the halfword at the exception vector address but is not at<br />

the exception vector address. This can occur only in Jazelle state, where instructions consist<br />

of one or more byte-sized units.<br />

— The first unit of the instruction includes the halfword at the exception vector address but is not<br />

at the exception vector address. This can occur only in <strong>ARM</strong> state, where all instructions are<br />

a single word <strong>and</strong> are word-aligned.<br />

— The first unit of the instruction is not in the halfword at the exception vector address but<br />

another unit of the instruction is in that halfword. This can occur in variable-length instruction<br />

set states, that is, in Thumb, ThumbEE or Jazelle state.<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. C3-21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!