Microchip Technology SW006023-1N Data Sheet

Page of 238
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)
-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 
-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. 
-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. 
-mcheck-zero-division
-mno-check-zero-division
Trap (do not trap) on integer division by zero. The 
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. 
-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. 
-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.
 
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
 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.