SLAZ162J October 2012 – May 2021 MSP430F2131
CPU Module
Compiler-Fixed
CMP or BIT instruction with PC as destination
Instructions immediately following a CMP(.B) or BIT(.B) instruction that use the Program Counter (PC) as the destination register will be ignored or erroneously executed. When the following instruction is longer than one word, the second word is fetched by the CPU and decoded as the instruction, leading to unpredictable behavior. Affected source addressing modes are indexed and indirect addressing modes.
Example:
cmp &200,PC
add #4,R8
In this example, the add instruction will not be executed.
Insert a NOP instruction after the BIT or CMP instruction. The NOP will be ignored and program execution will continue as expected.
Refer to the table below for compiler-specific fix implementation information.
IDE/Compiler | Version Number | Notes |
---|---|---|
IAR Embedded Workbench | Fix not available | |
TI MSP430 Compiler Tools (Code Composer Studio) | 15.12.0.LTS | User is required to add the compiler or assembler flag option below. --silicon_errata=CPU12 |
MSP430 GNU Compiler (MSP430-GCC) | MSP430-GCC 4.9 build 389 or later | User is required to add the compiler or assembler flag option below. -msilicon-errata=cpu12 |
MSP430 GNU Compiler (MSP430-GCC) | MSP430-GCC 5.x build 14 or later | User is required to add the compiler or assembler flag option below. -msilicon-errata=cpu12 -msilicon-errata-warn=cpu12 generates a warning in addition |