SLAZ279AA October   2012  – May 2021 MSP430F5418

 

  1.   1
  2.   2
  3.   3
  4.   4
  5.   5
    1.     6
    2.     7
      1.      8
    3.     9
  6.   10
    1.     11
    2.     12
    3.     13
    4.     14
    5.     15
    6.     16
    7.     17
    8.     18
    9.     19
    10.     20
    11.     21
    12.     22
    13.     23
    14.     24
    15.     25
    16.     26
    17.     27
    18.     28
    19.     29
    20.     30
    21.     31
    22.     32
    23.     33
    24.     34
    25.     35
    26.     36
    27.     37
    28.     38
    29.     39
    30.     40
    31.     41
    32.     42
    33.     43
    34.     44
    35.     45
    36.     46
    37.     47
    38.     48
    39.     49
    40.     50
    41.     51
    42.     52
    43.     53
    44.     54
    45.     55
    46.     56
    47.     57
    48.     58
    49.     59
    50.     60
    51.     61
    52.     62
    53.     63
    54.     64
    55.     65
    56.     66
    57.     67
    58.     68
    59.     69
    60.     70
    61.     71
    62.     72
    63.     73
    64.     74
    65.     75
    66.     76
    67.     77
    68.     78
    69.     79
    70.     80
    71.     81
    72.     82
    73.     83
    74.     84
    75.     85
    76.     86
    77.     87
    78.     88
    79.     89
    80.     90
    81.     91
    82.     92
    83.     93
    84.     94
    85.     95
    86.     96
    87.     97
    88.     98
    89.     99
    90.     100
    91.     101
    92.     102
    93.     103
    94.     104
    95.     105
    96.     106
    97.     107
    98.     108
    99.     109
    100.     110
    101.     111
    102.     112
    103.     113
    104.     114
    105.     115
    106.     116
    107.     117
    108.     118
    109.     119
    110.     120
    111.     121
    112.     122
    113.     123
    114.     124
    115.     125
    116.     126
    117.     127
    118.     128
  7.   129

CPU33

CPU Module

Category

Compiler-Fixed

Function

CALLA [indexed] may corrupt the program counter

Description

When the Stack Pointer (SP) is used as the destination register in the CALLA index(Rdst) instruction and is preceded by a PUSH or PUSHX instruction in any of the following addressing modes: Absolute, Symbolic, Indexed, Indirect register or Indirect auto increment, the "index" of the CALLA instruction is not sign extended to 20-bits and is always treated as a positive value. This causes the Program Counter to be set to a wrong address location when the index of the CALLA instruction represents a negative offset.

NOTE:

1. This erratum only applies when the instruction sequence is: PUSH or PUSHX followed by CALLA index(SP)  

2. This erratum does not apply if the PUSH or PUSHX instruction is used in the Register or Immediate addressing mode  

3. This erratum only applies when SP is used as the destination register in the CALLA index(Rdst) instruction

Workaround

Place a "NOP" instruction in between the PUSH or PUSHX and the CALLA index(SP) instructions.

NOTE: This bug has no compiler impact as the compiler will not generate a CALLA instruction that uses indexed addressing mode with the SP.

Refer to the table below for compiler-specific information.

IDE/Compiler Version Number Notes
IAR Embedded Workbench Not affected
TI MSP430 Compiler Tools (Code Composer Studio) Not affected
MSP430 GNU Compiler (MSP430-GCC) Not affected