18.03.2015 Views

Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP

Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP

Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

<strong>OCP</strong>-<strong>IP</strong> Confidential<br />

- Indirect Branches are caused by jump instructions with calculated target address (e.g.<br />

1)<br />

Return from subroutine ) or by exceptions (e.g. interrupts, traps). In these cases the<br />

target address must be contained in the trace memory. FORGET on the base port is used to<br />

indicate such a branch. Each FORGET received on any of the two ports invalidates the<br />

current base address. The exact protocol definition is given in the tables below.<br />

There is no need to serve both ports concurrently by the sender. The only requirement is that<br />

the base is sent prior to (or latest concurrently with) the next discontinuity. If this is not<br />

possible the sender may set both mode ports to FORGET. This is interpreted as .overrun. .<br />

Note: This implies that the increments are accumulated starting from 0 after each<br />

discontinuity. A valid instruction pointer however, e.g. for comparison, is only<br />

available when the associated base was received.<br />

A short examples may help to understand the deceptively simple interface protocol.<br />

1)<br />

It is not recommended to treat ”Return” instructions as direct branches: If the trace is turned<br />

on after the subroutine was called there is no way for the decoder to know the return address.<br />

29 of 62<br />

© 2007 <strong>OCP</strong>-<strong>IP</strong> Association, All Rights Reserved.

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

Saved successfully!

Ooh no, something went wrong!