7.3.5 Map File
The map files produced by the linker consist of:
- Archive Member Table
- Lists the name of any members from archive files that are included in the link.
- Memory-Usage Report
- Shows the starting address and length of all output sections in program memory and data memory. It also shows a percent utilization of memory in the region.
- Memory-Usage Report by Module
- Shows the memory usage (text, data, and bss sections) per object file. This report indicates the size in the final ELF file attributable to each input object. A miscellaneous entry also shows those sections whose input object file cannot be determined or the type of memory cannot be established.
- Memory Configuration
- Lists all of the memory regions defined for the link.
- Linker Script and Memory Map
- Shows modules, sections and symbols that are included in the link as specified in the linker script.
- Outside Cross Reference Table (optional)
- Shows symbols, sorted by name. For each symbol, a list of file names is given. If the symbol is defined, the first file listed is the location of the definition. The remaining files listed contain references to the symbol.
A typical map file showing the Memory-Usage Report and the Memory-Usage Report by Module is
presented below. It has been abbreviated for this
document.
Archive member included to satisfy reference by file (symbol)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_wrapper.o)
startup_atsamv71j19b.o (__pic32c_data_initialization)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_0_1.o)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_wrapper.o) (__pic32c_data_initialization_impl)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__libc_start_main.o)
startup_atsamv71j19b.o (__libc_init_array)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(libc.o)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__libc_start_main.o) (__progname_full)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__environ.o)
/Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__libc_start_main.o) (__environ)
Microchip PIC32 Memory-Usage Report
ROM Program-Memory Usage
section address length [bytes] (dec) Description
------- ---------- ------------------------- -----------
.vectors 0x400000 0x168 360
.text 0x400168 0x20 32 App's exec code
.text 0x400188 0x110 272 App's exec code
.text.Reset_Handler 0x400298 0x8c 140
.text.__pic32c_data_ini 0x400324 0x68 104
.text.__libc_start_init 0x40038c 0x5c 92
.dinit 0x4003e8 0x50 80
.text 0x400438 0x40 64 App's exec code
.text.main 0x400478 0x30 48
.text.__pic32c_data_ini 0x4004a8 0x4 4
.text.Dummy_Handler 0x4004ac 0x2 2
.text.__dummy 0x4004ae 0x2 2
Total ROM used : 0x4b0 1200 0.2% of 0x80000
--------------------------------------------------------------------------
Total Program Memory used : 0x4b0 1200 0.2% of 0x80000
--------------------------------------------------------------------------
RAM Data-Memory Usage
section address length [bytes] (dec) Description
------- ---------- ------------------------- -----------
.bss 0x20400000 0x6c 108 Uninitialized data
.bss 0x2040006c 0x4 4 Uninitialized data
.bss 0x20400070 0x14 20 Uninitialized data
.bss 0x20400084 0x4 4 Uninitialized data
Total RAM used : 0x88 136 0.1% of 0x40000
--------------------------------------------------------------------------
Total Data Memory used : 0x88 136 0.1% of 0x40000
--------------------------------------------------------------------------
Dynamic Data-Memory Reservation
section address length [bytes] (dec) Description
------- ---------- ------------------------- -----------
heap 0x20400090 0x10 16 Reserved for heap
stack 0x204000b8 0x3ff40 261952 Reserved for stack
--------------------------------------------------------------------------
Microchip PIC32 Memory-Usage Report By Module
text data bss dec hex basename filename
--------------------------------------------------------------------------------
774 0 0 774 306 startup_atsamv71j19b.ostartup_atsamv71j19b.o
104 0 4 108 6c data_init_0_1.o libpic32c.a
72 0 28 100 64 crtbegin.o /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
94 0 0 94 5e __libc_start_main.o libc-musl.a
0 0 80 80 50 libc.o libc-musl.a
80 0 0 80 50 data_init data_init
48 0 20 68 44 xc32_floats.o build/default/production/_ext/1472/xc32_floats.o
16 0 0 16 10 crtn.o /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtn.o
8 0 0 8 8 crti.o /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
4 0 0 4 4 data_init_wrapper.o libpic32c.a
0 0 4 4 4 __environ.o libc-musl.a
--------------------------------------------------------------------------------
1200 0 136 1336 538 dist/default/production/XC32_sam_library_example.X.production.elf
Discarded input sections
.text 0x00000000 0x0 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.data 0x00000000 0x0 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.bss 0x00000000 0x0 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.xc_stack_usage.hdr
0x00000000 0xe /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.xc_stack_usage
0x00000000 0x26 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.data 0x00000000 0x4 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
.xc_stack_usage
0x00000000 0x3c /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
.xc_stack_usage.hdr
0x00000000 0xe /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
[snip]
Memory Configuration
Name Origin Length Attributes
rom 0x00400000 0x00080000 xrl
ram 0x20400000 0x00040000 xw !r
itcm 0x00000000 0x00000000 xw
dtcm 0x20000000 0x00000000 xw !r
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
LOAD build/default/production/_ext/1472/xc32_floats.o
0x00000001 __MPLAB_BUILD = 0x1
LOAD startup_atsamv71j19b.o
START GROUP
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libm-emfloat.a
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libm-emfloat.a
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/libgcc.a
END GROUP
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtend.o
LOAD /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtn.o
0x00480000 __rom_end = (ORIGIN (rom) + LENGTH (rom))
0x20440000 __ram_end = (ORIGIN (ram) + LENGTH (ram))
.vectors 0x00400000 0x168
0x00400000 . = ALIGN (0x4)
0x00400000 _sfixed = .
*(.vectors .vectors.* .vectors_default .vectors_default.*)
.vectors.default
0x00400000 0x168 startup_atsamv71j19b.o
0x00400000 exception_table
*(.isr_vector)
*(.reset*)
*(.after_vectors)
.text 0x00400168 0x20
0x00400168 . = ALIGN (0x4)
*(.glue_7t)
.glue_7t 0x00400168 0x0 linker stubs
*(.glue_7)
.glue_7 0x00400168 0x0 linker stubs
*(.gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
0x00400168 . = ALIGN (0x4)
*(.init)
.init 0x00400168 0x4 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
0x00400168 _init
.init 0x0040016c 0x8 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtn.o
0x00400174 . = ALIGN (0x4)
0x00400174 __preinit_array_start = .
*(.preinit_array)
0x00400174 __preinit_array_end = .
0x00400174 . = ALIGN (0x4)
0x00400174 __init_array_start = .
*(SORT_BY_NAME(.init_array.*))
*(.init_array)
.init_array 0x00400174 0x4 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
0x00400178 __init_array_end = .
0x00400178 . = ALIGN (0x4)
[snip]
OUTPUT(dist/default/production/XC32_sam_library_example.X.production.elf elf32-littlearm)
LOAD stack
LOAD data_init
.ARM.attributes
0x00000000 0x32
.ARM.attributes
0x00000000 0x1e /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crti.o
.ARM.attributes
0x0000001e 0x32 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
.ARM.attributes
0x00000050 0x32 build/default/production/_ext/1472/xc32_floats.o
[snip]
.comment 0x00000000 0x2f
.comment 0x00000000 0x2f /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
0x30 (size before relaxing)
.comment 0x0000002f 0x30 build/default/production/_ext/1472/xc32_floats.o
.comment 0x0000002f 0x30 startup_atsamv71j19b.o
.comment 0x0000002f 0x30 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_wrapper.o)
.comment 0x0000002f 0x30 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_0_1.o)
.comment 0x0000002f 0x30 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__libc_start_main.o)
.comment 0x0000002f 0x30 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(libc.o)
.comment 0x0000002f 0x30 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__environ.o)
.debug_info 0x00000000 0x1666
.debug_info 0x00000000 0x318 build/default/production/_ext/1472/xc32_floats.o
.debug_info 0x00000318 0x2a2 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_wrapper.o)
.debug_info 0x000005ba 0x2a5 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_0_1.o)
.debug_info 0x0000085f 0x623 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__libc_start_main.o)
.debug_info 0x00000e82 0x535 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(libc.o)
.debug_info 0x000013b7 0x2af /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__environ.o)
.debug_abbrev 0x00000000 0x2d6
.debug_abbrev 0x00000000 0x57 build/default/production/_ext/1472/xc32_floats.o
[snip]
.stack 0x204000b8 0x100
.stack 0x204000b8 0x100 stack
.bss%1 0x20400000 0x6c
.bss 0x20400000 0x50 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(libc.o)
0x20400000 program_invocation_name
0x20400000 __progname_full
0x20400004 __progname
0x20400004 program_invocation_short_name
0x20400008 __sysinfo
0x2040000c __hwcap
0x20400010 __libc
.bss 0x20400050 0x1c /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
.bss%3 0x20400070 0x14
.bss 0x20400070 0x14 build/default/production/_ext/1472/xc32_floats.o
0x20400070 result
0x20400078 myDouble
0x20400080 myFloat
.bss%4 0x2040006c 0x4
.bss 0x2040006c 0x4 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_0_1.o)
.bss%5 0x20400084 0x4
.bss 0x20400084 0x4 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libc-musl.a(__environ.o)
0x20400084 _environ
0x20400084 __environ
0x20400084 environ
0x20400084 ___environ
.eh_frame%z1 0x00000000 0x0
.eh_frame 0x00000000 0x0 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/thumb/v7e-m+dp/hard/crtbegin.o
.text%6 0x00400188 0x110
.text 0x00400188 0x110 startup_atsamv71j19b.o
.text.Reset_Handler%7
0x00400298 0x8c
.text.Reset_Handler
0x00400298 0x8c startup_atsamv71j19b.o
0x00400298 Reset_Handler
.text.__pic32c_data_initialization_impl%8
0x00400324 0x68
.text.__pic32c_data_initialization_impl
0x00400324 0x68 /Applications/microchip/xc32/v4.30/bin/bin/../../lib/gcc/pic32c/8.3.1/../../../../pic32c/lib/thumb/v7e-m+dp/hard/libpic32c.a(data_init_0_1.o)
0x00400324 __pic32c_data_initialization_impl
0x00400324 __copy_needed
[snip]