25.02.2015 Views

SuperH (SH) 64-bit RISC Series SH-5 System Architecture, Volume ...

SuperH (SH) 64-bit RISC Series SH-5 System Architecture, Volume ...

SuperH (SH) 64-bit RISC Series SH-5 System Architecture, Volume ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

PRELIMINARY DATA<br />

82 Reset, panic and debug events<br />

The CPU will launch a DEBUGINT when these 3 conditions are met:<br />

Value<br />

read<br />

• SR.BL = 0<br />

• At least one <strong>bit</strong> of DM.EXP_CAUSE is set. If SR.BL=1 when a cause <strong>bit</strong> is first<br />

asserted, at least one cause <strong>bit</strong> must still be asserted when SR.BL changes to 0.<br />

• In at least one clock cycle since the last DEBUGINT launch or reset (of any kind),<br />

all <strong>bit</strong>s of DM.EXP_CAUSE have been clear.<br />

If a <strong>bit</strong> in DM.EXP_CAUSE is set then subsequently cleared, with SR.BL=1 all the time,<br />

no DEBUGINT will occur.<br />

If the handler for DEBUGINT deals with some conditions signalled in DM.EXP_CAUSE<br />

but leaves others asserted, there will not be another DEBUGINT after the handler<br />

returns. A handler for DEBUGINT must be written to handle all asserted conditions,<br />

clear the handled conditions in DM.EXP_CAUSE (see below) and ensure that<br />

DM.EXP_CAUSE has been read back with all <strong>bit</strong>s clear before returning. This ensures<br />

a new DEBUGINT can occur when a cause is next asserted.<br />

The write semantics of DM.EXP_CAUSE are such that a handler can clear the cause<br />

<strong>bit</strong>s selectively.<br />

Each <strong>bit</strong> of DM.EXP_CAUSE corresponds to a source of DEBUGINT, Table 28 shows the<br />

state indicated when reading these <strong>bit</strong>s, and the effect of writing them. Table 29<br />

shows which <strong>bit</strong>s in the register correspond to specific interrupt sources.<br />

Meaning<br />

0 Interrupt source was not<br />

asserted<br />

State of DM.EXP_CAUSE <strong>bit</strong>s<br />

Value<br />

written<br />

Effect<br />

0 The interrupt source will remain not asserted.<br />

If the interrupt source has been asserted since<br />

the register was read, this will actually clear the<br />

interrupt without its condition being properly<br />

handled. For this reason, writing 0 to a <strong>bit</strong> which<br />

was read as 0 is not advised.<br />

D R A FT<br />

1 Writing 1 has no effect on the <strong>bit</strong>’s value.<br />

Table 28: State of reading/writing DM.EXP_CAUSE <strong>bit</strong>s<br />

<strong>SuperH</strong>, Inc.<br />

<strong>SH</strong>-5 <strong>System</strong> <strong>Architecture</strong>, <strong>Volume</strong> 3: Debug 05-SA-10003 v1.0

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

Saved successfully!

Ooh no, something went wrong!