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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Debug Events<br />

if DBGBCR[M] != ‘11’ then unk_match = TRUE;<br />

if DBGBCR[M] != ‘1111’ then unk_match = TRUE;<br />

if DBGBCR[M] != ‘00’ then unk_match = TRUE;<br />

if DBGBCR[M] != ‘0000’ then unk_match = TRUE;<br />

if DBGBCR[M] != ‘011’ then unk_match = TRUE;<br />

if DBGBCR[M] != ‘00000’ then unk_match = TRUE;<br />

if unk_match then<br />

return boolean UNKNOWN;<br />

else<br />

return (CONTEXTIDR == DBGBVR[M]);<br />

// Variables used to record most recent interrupts of various types.<br />

bits(32) VCR_Recent_IRQ_S;<br />

bits(32) VCR_Recent_IRQ_NS;<br />

bits(32) VCR_Recent_FIQ_S;<br />

bits(32) VCR_Recent_FIQ_NS;<br />

boolean VCR_Recent_IRQ_S_Valid;<br />

boolean VCR_Recent_IRQ_NS_Valid;<br />

boolean VCR_Recent_FIQ_S_Valid;<br />

boolean VCR_Recent_FIQ_NS_Valid;<br />

// VCR_OnTakingInterrupt()<br />

// =======================<br />

VCR_OnTakingInterrupt(bits(32) vector, boolean FIQnIRQ)<br />

if SCTLR.VE == ‘1’ then<br />

if FIQnIRQ then<br />

if IsSecure() then<br />

if DBGVCR == ‘0’ || (HaveSecurityExt() && SCR.FIQ == ‘1’) then<br />

IMPLEMENTATION_DEFINED whether the variables are updated;<br />

else<br />

VCR_Recent_FIQ_S = vector;<br />

VCR_Recent_FIQ_S_Valid = TRUE;<br />

else<br />

if DBGVCR == ‘0’ || (HaveSecurityExt() && SCR.FIQ == ‘1’) then<br />

IMPLEMENTATION_DEFINED whether the variables are updated;<br />

else<br />

VCR_Recent_FIQ_NS = vector;<br />

VCR_Recent_FIQ_NS_Valid = TRUE;<br />

else<br />

if IsSecure() then<br />

if DBGVCR == ‘0’ || (HaveSecurityExt() && SCR.IRQ == ‘1’) then<br />

IMPLEMENTATION_DEFINED whether the variables are updated;<br />

else<br />

VCR_Recent_IRQ_S = vector;<br />

VCR_Recent_IRQ_S_Valid = TRUE;<br />

else<br />

if DBGVCR == ‘0’ || (HaveSecurityExt() && SCR.IRQ == ‘1’) then<br />

IMPLEMENTATION_DEFINED whether the variables are updated;<br />

else<br />

VCR_Recent_IRQ_NS = vector;<br />

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

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

Saved successfully!

Ooh no, something went wrong!