Microchip Technology SW006023-2 Datenbogen
Compiler Command Line Driver
2012 Microchip Technology Inc.
DS51686E-page 61
3.9.1
Options Specific to PIC32MX Devices
These options are specific to the device, not the compiler.
TABLE 3-4:
PIC32MX DEVICE-SPECIFIC OPTIONS
Option
Definition
-mprocessor
Selects the device for which to compile.
(e.g., -mprocessor=32MX360F512L)
(e.g., -mprocessor=32MX360F512L)
-mips16
-mno-mips16
Generate (do not generate) MIPS16 code.
-mno-float
Do not use software floating-point libraries.
-G
num
Put global and static items less than or equal to
num
bytes into the small data or bss section instead of the
normal data or bss section. This allows the data to be
accessed using a single instruction.
All modules should be compiled with the same
normal data or bss section. This allows the data to be
accessed using a single instruction.
All modules should be compiled with the same
-G
num
value.
-membedded-data
-mno-embedded-data
Allocate variables to the read-only data section first if
possible, then next in the small data section if possible,
otherwise in data. This gives slightly slower code than
the default, but reduces the amount of RAM required
when executing, and thus may be preferred for some
embedded systems.
possible, then next in the small data section if possible,
otherwise in data. This gives slightly slower code than
the default, but reduces the amount of RAM required
when executing, and thus may be preferred for some
embedded systems.
-muninit-const-in-rodata
-mno-uninit-const-in-rodata
Put uninitialized const variables in the read-only data
section. This option is only meaningful in conjunction
with -membedded-data.
section. This option is only meaningful in conjunction
with -membedded-data.
-mcheck-zero-division
-mno-check-zero-division
Trap (do not trap) on integer division by zero. The
default is -mcheck-zero-division.
default is -mcheck-zero-division.
-mmemcpy
-mno-memcpy
Force (do not force) the use of memcpy() for non-trivial
block moves. The default is -mno-memcpy, which
allows GCC to inline most constant-sized copies.
block moves. The default is -mno-memcpy, which
allows GCC to inline most constant-sized copies.
-mlong-calls
-mno-long-calls
Disable (do not disable) use of the jal instruction.
Calling functions using jal is more efficient but
requires the caller and callee to be in the same 256
megabyte segment.
This option has no effect on abicalls code. The default
is -mno-long-calls.
Calling functions using jal is more efficient but
requires the caller and callee to be in the same 256
megabyte segment.
This option has no effect on abicalls code. The default
is -mno-long-calls.
-mno-peripheral-libs
-mno-peripheral-libs
is now the default.
-mperipheral-libs
is optional. By default, the
peripheral libraries are linked specified via the
device-specific linker script.
device-specific linker script.
Do not use the standard
peripheral libraries when linking.
-msmart-io=[0|1|2]
This option attempts to statically analyze format strings
passed to printf, scanf and the ‘f’ and ‘v’ variations
of these functions. Uses of nonfloating-point format
arguments will be converted to use an integer-only
variation of the library function. For many applications,
this feature can reduce program-memory usage.
-msmart-io=0
passed to printf, scanf and the ‘f’ and ‘v’ variations
of these functions. Uses of nonfloating-point format
arguments will be converted to use an integer-only
variation of the library function. For many applications,
this feature can reduce program-memory usage.
-msmart-io=0
disables this option, while
-msmart-io=2
causes the compiler to be optimistic
and convert function calls with variable or unknown
format arguments. -msmart-io=1 is the default and
will convert only when the compiler can prove that
floating-point support is not required.
format arguments. -msmart-io=1 is the default and
will convert only when the compiler can prove that
floating-point support is not required.