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
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.