29.01.2014 Views

Errata Sheet - Infineon

Errata Sheet - Infineon

Errata Sheet - Infineon

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!