Description
When using the indirect addressing mode in an instruction with the Program Counter (PC)
as the source operand, the instruction that follows immediately does not get executed.
For example in the code below, the ADD instruction does not get executed.
mov @PC, R7
add #1h, R4
Workaround
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.0.x or later
User is required to add the compiler
or assembler flag option below. --
silicon_errata=CPU22
MSP430 GNU Compiler (MSP430-
GCC)
MSP430-GCC 4.9 build 167 or later
CPU36
CPU Module
Category
Functional
Function
PC corruption when single-stepping through flash erase
Description
When single-stepping over code that initiates an INFOD Flash memory erase, the
program counter is corrupted.
Workaround
None.
NOTE: This erratum applies to debug mode only.
CPU37
CPU Module
Category
Functional
Function
Wrong program trace display in the debugger while using conditional jump instructions
Description
The state storage window displays an incorrect sequence of instructions when:
1. Conditional jump instructions are used to form a software loop
AND
2. A false condition on the jump breaks out of the loop
In such cases the trace buffer incorrectly displays the first instruction of the loop as the
instruction that is executed immediately after exiting the loop.
Example:
Actual Code:
mov #4,R4
LABEL mov #1,R5
dec R4
jnz LABEL
Advisory Descriptions
10
MSP430F67691 Microcontroller
SLAZ509AC – JANUARY 2013 – REVISED MAY 2021
Copyright © 2021 Texas Instruments Incorporated