Errata Sheet - Infineon
Errata Sheet - Infineon
Errata Sheet - Infineon
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Errata</strong> <strong>Sheet</strong><br />
Functional Deviations<br />
return execution to the first instruction of the trap handler - where it will now<br />
execute to completion without undesired interruption. If the interrupted traps are<br />
considered recoverable but are time sensitive and need to be executed<br />
immediately, then some method of deferring the interrupt processing is<br />
required. If the test of the situation (e.g. checking the PCXI.PIE bit is clear) is<br />
at the start of the Interrupt handler, then there are two simple methods to<br />
consider:<br />
The first method would be to re-request the interrupt, by writing the appropriate<br />
Service Request Control Register with the SETR bit set to one, and then<br />
executing an RFE which will be taken back to the trap handler. The interrupt will<br />
now be pending again, but will not be taken until the trap handler executes its<br />
RFE to re-enable interrupts. This method is simple if the device (and hence it's<br />
SRC register address) generating the interrupt is known. If this is not easy to<br />
determine (statically or dynamically), the second method might be preferred.<br />
The second method would be to jump to the trap handler, after setting the trap<br />
identification number (TIN) and the return address (which the trap handler will<br />
use) to be the next instruction in the interrupt handler. This relies on the fact that<br />
the CSA saved away by the preemption of the trap handler is equally valid as<br />
an execution context for the interrupt handler. The code for this method is as<br />
follows:<br />
interruptN:<br />
mfcr d15, PCXI<br />
jnz.t d15, 23, interruptReal<br />
; force CSA into memory<br />
dsync<br />
sh.h d14, d15, #12<br />
insert d15, d14, d15, #6, #16<br />
mov.a a15, d15<br />
; load trap value of d15 from CSA<br />
ld.w d15, [a15]0x3C<br />
mov.a a15, a11<br />
movh.a a11, #@his(interuptReal)<br />
lea a11, [a11]@los(interruptReal)<br />
; jump to trap handler, will return to interruptReal<br />
ji a15<br />
TC1767, EES-AD, ES-AD, AD 24/73 Rel. 1.4, 11.12.2009