SLAU132V October   2004  – February 2020

 

  1.   1
    1.     2
    2.     3
    3.     4
    4.     5
    5.     6
  2.   7
    1.     8
    2.     9
    3.     10
    4.     11
    5.     12
  3.   13
    1.     14
    2.     15
    3.     16
      1.      17
      2.      18
      3.      19
      4.      20
      5.      21
      6.      22
      7.      23
      8.      24
      9.      25
      10.      26
      11.      27
      12.      28
    4.     29
      1.      30
      2.      31
    5.     32
      1.      33
      2.      34
        1.       35
      3.      36
      4.      37
      5.      38
      6.      39
      7.      40
      8.      41
      9.      42
      10.      43
    6.     44
    7.     45
      1.      46
      2.      47
    8.     48
    9.     49
    10.     50
    11.     51
      1.      52
      2.      53
    12.     54
      1.      55
    13.     56
    14.     57
  4.   58
    1.     59
    2.     60
    3.     61
      1.      62
    4.     63
      1.      64
      2.      65
    5.     66
    6.     67
      1.      68
      2.      69
    7.     70
      1.      71
        1.       72
        2.       73
        3.       74
        4.       75
        5.       76
        6.       77
        7.       78
        8.       79
      2.      80
      3.      81
      4.      82
    8.     83
      1.      84
        1.       85
        2.       86
      2.      87
        1.       88
        2.       89
        3.       90
    9.     91
    10.     92
    11.     93
      1.      94
      2.      95
    12.     96
    13.     97
      1.      98
      2.      99
      3.      100
      4.      101
      5.      102
      6.      103
      7.      104
      8.      105
      9.      106
      10.      107
      11.      108
      12.      109
      13.      110
  5.   111
    1.     112
      1.      113
      2.      114
      3.      115
    2.     116
      1.      117
      2.      118
    3.     119
      1.      120
        1.       121
          1.        122
        2.       123
        3.       124
      2.      125
      3.      126
      4.      127
      5.      128
      6.      129
      7.      130
      8.      131
      9.      132
        1.       133
  6.   134
    1.     135
      1.      136
    2.     137
    3.     138
    4.     139
    5.     140
    6.     141
      1.      142
    7.     143
    8.     144
      1.      145
      2.      146
      3.      147
        1.       148
        2.       149
      4.      150
        1.       151
    9.     152
    10.     153
    11.     154
    12.     155
      1.      156
      2.      157
      3.      158
      4.      159
      5.      160
      6.      161
        1.       162
        2.       163
        3.       164
        4.       165
      7.      166
      8.      167
        1.       168
        2.       169
        3.       170
      9.      171
      10.      172
      11.      173
      12.      174
      13.      175
      14.      176
      15.      177
      16.      178
      17.      179
      18.      180
      19.      181
      20.      182
      21.      183
      22.      184
      23.      185
      24.      186
      25.      187
      26.      188
      27.      189
      28.      190
      29.      191
      30.      192
        1.       193
        2.       194
        3.       195
      31.      196
      32.      197
    13.     198
    14.     199
    15.     200
    16.     201
      1.      202
      2.      203
      3.      204
    17.     205
      1.      206
      2.      207
      3.      208
      4.      209
      5.      210
    18.     211
  7.   212
    1.     213
      1.      214
      2.      215
      3.      216
      4.      217
      5.      218
      6.      219
    2.     220
      1.      221
        1.       222
        2.       223
        3.       224
        4.       225
      2.      226
    3.     227
    4.     228
      1.      229
      2.      230
      3.      231
    5.     232
    6.     233
      1.      234
      2.      235
        1.       236
        2.       237
      3.      238
        1.       239
          1.        240
          2.        241
        2.       242
          1.        243
          2.        244
      4.      245
      5.      246
    7.     247
      1.      248
      2.      249
      3.      250
      4.      251
      5.      252
    8.     253
      1.      254
      2.      255
      3.      256
      4.      257
        1.       258
          1.        259
        2.       260
          1.        261
    9.     262
      1.      263
      2.      264
      3.      265
        1.       266
        2.       267
        3.       268
        4.       269
          1.        270
          2.        271
          3.        272
          4.        273
        5.       274
        6.       275
      4.      276
        1.       277
        2.       278
    10.     279
  8.   280
    1.     281
      1.      282
      2.      283
      3.      284
      4.      285
      5.      286
      6.      287
      7.      288
      8.      289
    2.     290
      1.      291
        1.       292
      2.      293
      3.      294
      4.      295
        1.       296
      5.      297
        1.       298
    3.     299
    4.     300
      1.      301
      2.      302
        1.       303
        2.       304
          1.        305
          2.        306
          3.        307
          4.        308
      3.      309
        1.       310
        2.       311
  9.   312
    1.     313
    2.     314
      1.      315
      2.      316
      3.      317
  10.   318
    1.     319
  11.   320
    1.     321

Run-Time Model Options

These options are specific to the MSP430 toolset. See the referenced sections for more information. MSP430-specific assembler options are listed in Section 2.3.11.

The MSP430 compiler now supports only the Embedded Application Binary Interface (EABI) ABI, which uses the ELF object format and the DWARF debug format. If you want support for the legacy COFF ABI, please use the MSP430 v4.4 Code Generation Tools and refer to SLAU132J and SLAU131J for documentation.

--common={on|off} When on (the default), uninitialized file scope variables are emitted as common symbols. When off, common symbols are not created. The benefit of allowing common symbols to be created is that generated code can remove unused variables that would otherwise increase the size of the .bss section. (Uninitialized variables of a size larger than 32 bytes are separately optimized through placement in separate subsections that can be omitted from a link.) Variables cannot be common symbols if they are assigned to a section other than .bss.
--code_model={large|small} Specifies the code memory model: small (16-bit function pointers and low 64K memory) or large (20-bit function pointers and 1MB address space). See Section 6.1.1 for details.
--data_model={restricted|large|
    small}
Specifies the data memory model: small (16-bit data pointers and low 64K memory), restricted (32-bit data pointers, objects restricted to 64K, and 1MB memory), and large (32-bit data pointers and 1MB memory). See Section 6.1.2 for details.
--disable_interrupts_around_hw_mpy=off Setting this option to off leaves interrupts enabled during inlined hardware multiplication. (Inlined hardware multiplication is controlled by the --use_hw_mpy and --opt_for_speed options.)

This option should only be used if all ISRs in the application do not use multiplication and do not call other functions. By default, if hardware multiplication is inlined, interrupts are disabled during hardware multiplication, because such operations are not re-entrant.

If this option is set to off and an ISR uses multiplication, the linker issues a warning that multiplication within the ISR will use the RTS software multiply routine instead of the RTS hardware multiply routine.

If this option is set to off and an ISR calls other functions, the linker generates a non-fatal error diagnostic indicating that the option --disable_interrupts_around_hw_mpy=off cannot be used if the application includes ISRs with calls to other functions. The reason for this is that if an ISR calls a routine that does multiplication using the hardware multiplier, then the inlined hardware multipliers with interrupts left enabled are no longer safe.

--enum_type={unpacked|packed} Designates the underlying type of an enumeration type. The default is unpacked, which causes the underlying type to be an int, long, or long long depending on the size of the enumeration constants.

Using --enum_type=packed, which causes the underlying type of the enumeration to be the smallest integer that accommodates the enumeration constants.

--large_memory_model This option is deprecated. Use --data_model=large.
--near_data={globals|none} Specifies that global read/write data must be located in the first 64K of memory. See Section 6.1.3 for details.
--pending_instantiations=# Specify the number of template instantiations that may be in progress at any given time. Use 0 to specify an unlimited number.
--plain_char={unsigned|signed} Specifies how to treat C/C++ plain char variables. Default is unsigned.
--ramfunc={on|off} If set to on, specifies that all functions should be placed in the .TI.ramfunc section, which is placed in RAM. If set to off, only functions with the ramfunc function attribute are treated this way. See Section 5.17.2.

Newer TI linker command files support the --ramfunc option automatically by placing functions in the .TI.ramfunc section. If you have a linker command file that does not include a section specification for the .TI.ramfunc section, you can modify the linker command file to place this section in RAM. See the MSP430 Assembly Language Tools User's Guide for details on section placement.

--silicon_version Selects the instruction set version. Using --silicon_version=mspx generates code for MSP430X devices (20-bit code addressing). Using --silicon_version=msp generates code for 16-bit MSP430 devices.

Modules assembled/compiled for 16-bit MSP430 devices are not compatible with modules that are assembled/compiled for 20-bit MSPx devices. The linker generates errors if an attempt is made to combine incompatible object files.

--use_hw_mpy[= 16,32,F5,none] This option is a compiler option. It should be placed on the command line before the -z option.

MSP430 devices do not have a multiply instruction, and some devices have no hardware multiply at all. Multiplication is performed by a library function that either uses the hardware multiply capability or simulates it in software. By default, the compiler generates references to the version that does not use the hardware multiplier peripheral that is available on some versions of the MSP430 device. If your MSP430 device has multiply hardware, you can choose to use the library routine matching your hardware for best performance. When compiling for a device where the hardware multiplier is available, use the --use_hw_mpy compiler option.

At compile time, using this option causes hardware multiply calls to be inlined during code generation if --opt_for_speed is set to 4 or 5 and --opt_level is set to any value other than "off". See the --disable_interrupts_around_hw_mpy=off option if you want to control whether interrupts are enabled during inlined hardware multiplication.

If inlining is not enabled but other optimization is enabled (--opt_for_speed is set to 1, 2, or 3), using this option causes the linker to replace all references to the default multiply routine with the version of the multiply routine that uses the hardware multiplier support.

The optional argument indicates which version of the hardware multiply is being used and must be one of the following:

  • 16 uses the F1xx/2xx/4xx family 16-bit hardware multiplier (default)
  • 32 uses the F4xx 32-bit hardware multiplier
  • F5 uses the F5xx/6xx family 32-bit hardware multiplier
  • none = does not use a hardware multiplier

For more information regarding the hardware multiplier, see the Family User’s Guide for the MSP430x1xx, MSP430x3xx, MSP430x4xx, and MSP430x5xx.