SLAZ300AD October   2012  – August 2021 MSP430F5509

 

  1.   1
  2.   2
  3.   3
  4.   4
  5.   5
    1.     6
    2.     7
      1.      8
      2.      9
      3.      10
      4.      11
    3.     12
  6.   13
    1.     14
    2.     15
    3.     16
    4.     17
    5.     18
    6.     19
    7.     20
    8.     21
    9.     22
    10.     23
    11.     24
    12.     25
    13.     26
    14.     27
    15.     28
    16.     29
    17.     30
    18.     31
    19.     32
    20.     33
    21.     34
    22.     35
    23.     36
    24.     37
    25.     38
    26.     39
    27.     40
    28.     41
    29.     42
    30.     43
    31.     44
    32.     45
    33.     46
    34.     47
    35.     48
    36.     49
    37.     50
    38.     51
    39.     52
    40.     53
    41.     54
    42.     55
    43.     56
    44.     57
    45.     58
    46.     59
    47.     60
    48.     61
    49.     62
    50.     63
    51.     64
    52.     65
    53.     66
    54.     67
    55.     68
    56.     69
    57.     70
    58.     71
    59.     72
    60.     73
    61.     74
    62.     75
    63.     76
    64.     77
    65.     78
    66.     79
    67.     80
  7.   81

CPU39

CPU Module

Category

Compiler-Fixed

Function

PC is corrupted when single-stepping through an instruction that clears the GIE bit

Description

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.

Workaround

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