компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)
Параметры подробно (Options detail)
MSP430
These options are defined for the MSP430:
-masm-hex
Force assembly output to always use hex constants. Normally
such constants are signed decimals, but this option is
available for testsuite and/or aesthetic purposes.
-mmcu=
Select the MCU to target. This is used to create a C
preprocessor symbol based upon the MCU name, converted to
upper case and pre- and post-fixed with __
. This in turn is
used by the msp430.h header file to select an MCU-specific
supplementary header file.
The option also sets the ISA to use. If the MCU name is one
that is known to only support the 430 ISA then that is
selected, otherwise the 430X ISA is selected. A generic MCU
name of msp430
can also be used to select the 430 ISA.
Similarly the generic msp430x
MCU name selects the 430X ISA.
In addition an MCU-specific linker script is added to the
linker command line. The script's name is the name of the
MCU with .ld appended. Thus specifying -mmcu=xxx
on the gcc
command line defines the C preprocessor symbol "__XXX__" and
cause the linker to search for a script called xxx.ld.
This option is also passed on to the assembler.
-mwarn-mcu
-mno-warn-mcu
This option enables or disables warnings about conflicts
between the MCU name specified by the -mmcu
option and the
ISA set by the -mcpu
option and/or the hardware multiply
support set by the -mhwmult
option. It also toggles warnings
about unrecognized MCU names. This option is on by default.
-mcpu=
Specifies the ISA to use. Accepted values are msp430
,
msp430x
and msp430xv2
. This option is deprecated. The
-mmcu=
option should be used to select the ISA.
-msim
Link to the simulator runtime libraries and linker script.
Overrides any scripts that would be selected by the -mmcu=
option.
-mlarge
Use large-model addressing (20-bit pointers, 32-bit
"size_t").
-msmall
Use small-model addressing (16-bit pointers, 16-bit
"size_t").
-mrelax
This option is passed to the assembler and linker, and allows
the linker to perform certain optimizations that cannot be
done until the final link.
mhwmult=
Describes the type of hardware multiply supported by the
target. Accepted values are none
for no hardware multiply,
16bit
for the original 16-bit-only multiply supported by
early MCUs. 32bit
for the 16/32-bit multiply supported by
later MCUs and f5series
for the 16/32-bit multiply supported
by F5-series MCUs. A value of auto
can also be given. This
tells GCC to deduce the hardware multiply support based upon
the MCU name provided by the -mmcu
option. If no -mmcu
option is specified or if the MCU name is not recognized then
no hardware multiply support is assumed. "auto" is the
default setting.
Hardware multiplies are normally performed by calling a
library routine. This saves space in the generated code.
When compiling at -O3
or higher however the hardware
multiplier is invoked inline. This makes for bigger, but
faster code.
The hardware multiply routines disable interrupts whilst
running and restore the previous interrupt state when they
finish. This makes them safe to use inside interrupt
handlers as well as in normal code.
-minrt
Enable the use of a minimum runtime environment - no static
initializers or constructors. This is intended for memory-
constrained devices. The compiler includes special symbols
in some objects that tell the linker and runtime which code
fragments are required.
-mcode-region=
-mdata-region=
These options tell the compiler where to place functions and
data that do not have one of the "lower", "upper", "either"
or "section" attributes. Possible values are "lower",
"upper", "either" or "any". The first three behave like the
corresponding attribute. The fourth possible value - "any" -
is the default. It leaves placement entirely up to the
linker script and how it assigns the standard sections
(".text", ".data", etc) to the memory regions.
-msilicon-errata=
This option passes on a request to assembler to enable the
fixes for the named silicon errata.
-msilicon-errata-warn=
This option passes on a request to the assembler to enable
warning messages when a silicon errata might need to be
applied.