SLAZ279AA October 2012 – May 2021 MSP430F5418
CPU Module
Compiler-Fixed
Program counter corruption following entry into low power mode
The program counter is corrupted when an interrupt event occurs in the time between (and including) one cycle before and one cycle after the CPUOFF bit is set in the status register. This failure occurs when the BIS instruction is followed by a CALL or CALLA instruction using the following addressing modes:
BIS &, SR
CALLA indir, indir autoinc, reg
BIS INDEX, SR
CALLA indir, indir autoinc, reg
BIS reg, SR
CALLA reg, indir, indir autoinc
NOTE: Due to the instruction emulation, the EINT instruction, as well as the __enable_interrupts() and possibly the __bis_SR_register() intrinsic functions are affected.
Insert a NOP instruction or __no_operation() intrinsic function call between the BIS and CALL or CALLA instructions.
Refer to the table below for compiler-specific fix implementation information.
IDE/Compiler | Version Number | Notes |
---|---|---|
IAR Embedded Workbench | IAR EW430 v6.20 until v6.40 | User is required to add the compiler or assembler flag option below. --hw_workaround=nop_after_lpm |
IAR Embedded Workbench | IAR EW430 v6.40 or later | Workaround is automatically enabled |
TI MSP430 Compiler Tools (Code Composer Studio) | v4.1.3 or later | |
MSP430 GNU Compiler (MSP430-GCC) | MSP430-GCC 4.9 build 167 |