SLAZ308AD October 2012 – May 2021 MSP430F5522
CPU Module
Compiler-Fixed
PC is corrupted when using certain extended addressing mode combinations
An extended memory instruction that modifies the program counter executes incorrectly when preceded by an extended memory write-back instruction under the following conditions:
First instruction:
2-operand instruction, extended mode using (register,index), (register,absolute), OR (register,symbolic) addressing modes
Second instruction:
2-operand instruction, extended mode using the (indirect,PC), (indirect auto-increment,PC), OR (indexed [with ind 0], PC) addressing modes
Example:
BISX.A R6,&AABCD
ANDX.A @R4+,PC
1. Insert a NOP or a __no_operation() intrinsic function between the two instructions
Or
2. Do not use an extended memory instruction to modify the PC
Refer to the table below for compiler-specific fix implementation information.
IDE/Compiler | Version Number | Notes |
---|---|---|
IAR Embedded Workbench | Not affected | |
TI MSP430 Compiler Tools (Code Composer Studio) | v4.1.3 or later | |
MSP430 GNU Compiler (MSP430-GCC) | Not affected |