Microchip Technology SW006023-3N Ficha De Dados
MPLAB
®
XC32 C/C++ Compiler User’s Guide
DS51686E-page 58
2012 Microchip Technology Inc.
3.6
START-UP AND INITIALIZATION
For C:
There is only one start-up module, which initializes the C runtime environment.
The source code for this is found in
<install-directory>/pic32-libs/libpi32c/startup/crt0.S
The source code for this is found in
<install-directory>/pic32-libs/libpi32c/startup/crt0.S
and it is
precompiled into the library <install-directory>/pic32mx/lib/crt0.o.
Multilib versions of these modules exist in order to support architectural differences
between device families.
Multilib versions of these modules exist in order to support architectural differences
between device families.
For C++:
Code from five object files link sequentially to create a single initialization routine, which
initializes the C++ runtime environment.
initializes the C++ runtime environment.
The source code for this is found in
<install-directory>/pic32-libs/libpic32/startup
<install-directory>/pic32-libs/libpic32/startup
.
The PIC32 precompiled startup objects are located in
<install-directory>/pic32mx/lib/
<install-directory>/pic32mx/lib/
and the filenames are cpprt0.o,
crti.o
, and crtn.o.
The GCC precompiled startup objects are located in
<install-directory>/lib/gcc/pic32mx/<gcc-version>/
<install-directory>/lib/gcc/pic32mx/<gcc-version>/
and the file-
names are crtbegin.o and crtend.o. Multilib variations of these modules exist in
order to support architectural differences between device families and also optimization
settings.
order to support architectural differences between device families and also optimization
settings.
For more information about what the code in these start-up modules actual does, see
Section 12.3 “Runtime Start-up Code”.
Section 12.3 “Runtime Start-up Code”.
3.7
COMPILER OUTPUT
There are many files created by the compiler during the compilation. A large number of
these are intermediate files and some are deleted after compilation is complete, but
many remain and are used for programming the device, or for debugging purposes.
these are intermediate files and some are deleted after compilation is complete, but
many remain and are used for programming the device, or for debugging purposes.
3.7.1
Output Files
The compilation driver can produce output files with the following extensions, which are
case-sensitive.
case-sensitive.
The names of many output files use the same base name as the source file from which
they were derived. For example the source file input.c will create an object file called
input.o
they were derived. For example the source file input.c will create an object file called
input.o
.
The main output file is an ELF file called a.out, unless you override that name using
the -o option.
the -o option.
TABLE 3-3:
FILE NAMES
Extensions
Definition
file.hex
Executable file
file.elf
ELF debug file
file.o
Object file (intermediate file)
file.s
Assembly code file (intermediate file)
file.i
Preprocessed C file (intermediate file)
file.ii
Preprocessed C++ file (intermediate file)
file.map
Map file