Download Errata Sheet NG for P11

Transcript
Errata Sheet
Detailed Errata Description
•
•
Writes to IMB SFRs (IMB_..., see table in chapter about Program Memory
Control in User’s Manual), located in the last 256 bytes of segment FFH
Writes to the internal Program Flash address range (mapped in segments
C0H and higher), i.e. Flash Command Sequences may either not be
executed at all (single cycle commands), or may be executed incorrectly
(potentially resulting in a sequence error)
A necessary condition for losing a write request is that the write request is
followed by a particular read request that gets cancelled (e.g. operand read
after mispredicted conditional jump, etc.).
Read requests that potentially can cause this critical scenario are the following:
•
•
•
Operand reads from the internal Program Flash
Operand reads from the PSRAM in segment E8H (with Flash access timing)
Operand reads from the External Memory Area via the EBC in the lower
32 Kbytes of segment 0H, in segments 1H...1FH, and in segments 40H...BFH,
excluding the I/O area (segments 20H...3FH)
Instruction fetches from internal Program Flash or PSRAM, or operand reads
from the I/O area (segments 20H...3FH, including USIC and CAN modules) can
not trigger the problematic condition.
Example
1
MOV [-R1], R12
; write operand to PSRAM
; assumed: R1 points to PSRAM
2 JMPA+ cc_NN, label1 ; jump predicted taken but not taken
; assumed: R12 is negative
3
...
...
label1:
n MOV R3, [R0]
; read operand from Flash
; assumed: R0 points to Flash
When instruction n is cancelled due to the mispredicted jump 2 this will
erroneously suppress the write to PSRAM by instruction 1. Note that other
functions (besides the write) of this instruction 1 will be performed, e.g. the predecrement of R1 due to the addressing mode [-R1].
XC23xx
22
Rel. 1.5, 22.08.2008