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]