SLAZ296AC October 2012 – August 2021 MSP430F5505
CPU Module
Compiler-Fixed
PC is corrupted when single-stepping through an instruction that clears the GIE bit
Single-stepping over an instruction that clears the General Interrupt Enable bit (for example DINT or BIC #GIE,SR) when the GIE bit was previously set may corrupt the PC. For example, the DINT or BIC #GIE,SR is a 2-byte instruction. Single stepping through this instruction increments the PC by a value of 4 instead of 2 thus corrupting the next PC value.
Note: This erratum applies to debug mode only.
Insert a NOP or __no_operation() intrinsic immediately after the line of code that clears the GIE bit.
OR
Refer to the table below for compiler-specific fix implementation information.
Note that compilers implementing the fix may lead to double stack usage when RET/RETA follows the compiler-inserted NOP.
IDE/Compiler | Version Number | Notes |
---|---|---|
IAR Embedded Workbench | IAR EW430 v5.60 until v6.20 | User is required to add the compiler flag option below. --hw_workaround=CPU39 For the command line version add the following information Compiler: --core=430 Assembler:-v1 |
IAR Embedded Workbench | IAR EW430 v6.20 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 or later |