Errata Sheet - Infineon
Errata Sheet - Infineon
Errata Sheet - Infineon
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
...<br />
<strong>Errata</strong> <strong>Sheet</strong><br />
XC161CS-32F, (E)ES-BB, BB<br />
Functional Problems<br />
; FA FF 00 00 is decoded as JMPS 0FFh, 0000h<br />
; ==> access to FF:0000 will cause PACER trap<br />
; when function f_no_ret executes RETS<br />
In the above example, a PACER trap will be generated after the RETS instruction<br />
(corresponding to the CALLS instruction) at the end of function f_no_ret is executed:<br />
the speculatively prefetched instruction JMPS 0FFh, 0000h is trying to access a<br />
reserved memory area.<br />
Case 2 (see 2. in Problem Description above):<br />
When a RET or RETP instruction is executed after a modification of the system stack,<br />
an intra-segment branch is performed. If the contents of the CSP register has not<br />
changed since the last CALL instruction (e.g. no JMPS/CALLS or interrupt has<br />
occurred), then CSP C = CSP rtop , which is the same situation as already discussed in<br />
Case 1 before.<br />
In case the last function was e.g. called with a CALLS instruction (inter-segment call),<br />
the current contents CSP C of the Code Segment Pointer CSP is different from the CSP<br />
value that has been originally pushed on the stack by the CALLS instruction, e.g.:<br />
Location: Instruction<br />
C1’9876: CALLS C0, 3456h ; inter-segment call,<br />
; return addr CSP=C1, IP=987A<br />
; pushed on system stack by HW<br />
...<br />
C0’3456: MOV Rx, #5678h ; prepare intra-segment branch<br />
C0’345A: PUSH Rx<br />
; push ’return’ addr IPm=5678<br />
; on system stack by SW<br />
C0’345C: RET<br />
; branch (=return) to ’target’<br />
... ; addr IPm=5678 with CSPc=C0<br />
C0’5678: ; continue at branch target<br />
...<br />
C0’987A: <br />
...<br />
; code or data located here must<br />
; result in a valid instruction<br />
In the above example, if the instruction (fragment) or data located at address CSP C :IP m<br />
(here: C0’987A) - when decoded as instruction - does not result in a valid instruction, a<br />
PACER trap will be generated after the RET instruction is executed.<br />
Workaround 1<br />
Do not perform modifications of the return address on the system stack.<br />
<strong>Errata</strong> <strong>Sheet</strong> 11/50 V1.1, 2007-06-21