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 />
XC161CS-32F, (E)ES-BB, BB<br />
Functional Problems<br />
RETS<br />
...<br />
clear_ret_stack5:<br />
CALLS clear_ret_stack6<br />
RETS<br />
clear_ret_stack6:<br />
RETS<br />
INT_X.007 Interrupt using a Local Register Bank during execution of IDLE<br />
During the execution of the IDLE instruction, if an interrupt which uses a local register<br />
bank is acknowledged, the CPU may stall, preventing further code execution. Recovery<br />
from this condition can only be made through a hardware or watchdog reset.<br />
All of the following conditions must be present for the problem to occur:<br />
• The IDLE instruction is executed while the global register bank is selected (bit field<br />
BANK = 00 B in register PSW),<br />
• The interrupting routine is using one of the local register banks (BANK = 10 B or 11 B ),<br />
and the local register bank is selected automatically via the bank selection registers<br />
BNKSEL0..3, (i.e. the interrupting routine has a priority level ≥12),<br />
• The system stack is located in the internal dual-ported RAM (DPRAM, locations<br />
0F600 H .. 0FDFF H ),<br />
• The interrupt is acknowledged during the first 8 clock cycles of the IDLE instruction<br />
execution.<br />
Workaround 1<br />
Disable interrupts (either globally, or only interrupts using a local register bank) before<br />
execution of IDLE:<br />
BCLR IEN ; Disable interrupts globally<br />
IDLE ; Enter idle or sleep mode<br />
BSET IEN ; After wake-up: re-enable interrupts<br />
If an interrupt request is generated during this sequence, idle/sleep mode is terminated<br />
and the interrupt is acknowledged after BSET IEN.<br />
Workaround 2<br />
Do not use local register banks, use only global register banks.<br />
<strong>Errata</strong> <strong>Sheet</strong> 13/50 V1.1, 2007-06-21