Datasheet
83
AT32UC3A
RETS behaves incorrectly when MPU is enabled and MPU is configured so that
system stack is not readable in unprivileged mode.
Fix/Woraround
Workaround 1: Make system stack readable in unprivileged mode,
or
Workaround 2: Return from supervisor mode using rete instead of rets. This
requires :
1. Changing the mode bits from 001b to 110b before issuing the instruction.
Updating the mode bits to the desired value must be done using a single mtsr
instruction so it is done atomically. Even if this step is described in general
as not safe in the UC technical reference guide, it is safe in this very
specific case.
2. Execute the RETE instruction.
32058KS–AVR32–01/12