Tuesday, September 28, 2010

Bare Metal: Autogenerated MAP file by build system

Memory Configuration

Name             Origin             Length             Attributes
SRAM             0x40200000         0x00010000         xrw
*default*        0x00000000         0xffffffff

Linker script and memory map

                0x00000218                SVC_STACK_SIZE = 0x218
                0x00000218                IRQ_STACK_SIZE = 0x218
                0x00000218                FIQ_STACK_SIZE = 0x218
                0x00000218                ABT_STACK_SIZE = 0x218
                0x00000218                UND_STACK_SIZE = 0x218
                0x00000218                SYS_STACK_SIZE = 0x218

.stack          0x40200000        0x0
                0x4020f000                __stack_start__ = (. + 0xf000)
                0x8040fcb0                __stack_end__ = (__stack_start__ + 0xcb0)
                0x4020fcb0                __svc_stack__start = __stack_end__
                0x4020fa98                __svc_stack__end = (__svc_stack__start - SVC_STACK_SIZE)
                0x0000fa94                __irq_stack__start = (__svc_stack__end - 0x4)
                0x4020f87c                __irq_stack__end = (__irq_stack__start - IRQ_STACK_SIZE)
                0x0000f878                __fiq_stack__start = (__irq_stack__end - 0x4)
                0x4020f660                __fiq_stack__end = (__fiq_stack__start - FIQ_STACK_SIZE)
                0x0000f65c                __abt_stack__start = (__fiq_stack__end - 0x4)
                0x4020f444                __abt_stack__end = (__abt_stack__start - ABT_STACK_SIZE)
                0x0000f440                __und_stack__start = (__abt_stack__end - 0x4)
                0x4020f228                __und_stack__end = (__und_stack__start - UND_STACK_SIZE)
                0x0000f224                __sys_stack__start = (__und_stack__end - 0x4)
                0x4020f00c                __sys_stack__end = (__sys_stack__start - SYS_STACK_SIZE)

.reset          0x40200000      0x318
 *startup.o(.text)
 .text          0x40200000       0xf0 startup.o
                0x40200000                _start
 *low_init.o(.text)
 .text          0x402000f0      0x228 low_init.o
                0x40200138                dabt_ex_handler
                0x40200150                irq_ex_handler
                0x40200180                low_level_init
                0x402000f0                und_ex_handler
                0x40200108                swi_ex_handler
                0x40200168                fiq_ex_handler
                0x40200120                pabt_ex_handler
                0x40200318                . = ALIGN (0x4)

.text           0x40200318      0xab8
 CREATE_OBJECT_SYMBOLS
 *(.text .text.* .gnu.linkonce.t.*)
 .text          0x40200318       0x88 sprint.o
                0x40200318                sprint
 .text          0x402003a0       0x1c main.o
                0x402003a0                main
 .text          0x402003bc      0x56c i2c.o
                0x402003bc                i2c_write
                0x4020077c                i2c_reg_read
                0x40200574                i2c_read
                0x402007ec                i2c_reg_write
                0x40200844                i2c_init
 .text          0x40200928      0x328 mmc.o
                0x40200928                mmc_init
 *(.plt)
 *(.gnu.warning)
 *(.glue_7t)
 .glue_7t       0x00000000        0x0 linker stubs
 *(.glue_7)
 .glue_7        0x00000000        0x0 linker stubs
                0x40200c50                . = ALIGN (0x4)
 *crtbegin.o(.ctors)
 *(EXCLUDE_FILE(*crtend.o) .ctors)
 *(SORT(.ctors))
 *crtend.o(.ctors)
 *crtbegin.o(.dtors)
 *(EXCLUDE_FILE(*crtend.o) .dtors)
 *(SORT(.dtors.*))
 *crtend.o(.dtors)
 *(.init)
 *(.fini)
 *(.rodata .rodata.* .gnu.linkonce.r.*)
 .rodata        0x40200c50       0xe4 low_init.o
 .rodata        0x40200d34       0x9c mmc.o

.vfp11_veneer   0x40200dd0        0x0
 .vfp11_veneer  0x00000000        0x0 linker stubs

.v4_bx          0x40200dd0        0x0
 .v4_bx         0x00000000        0x0 linker stubs

.data           0x40200dd0        0x0
                0x40200dd0                __data_start = .
 *(.jcr)
 *(.got.plt)
 *(.got)
 *(.shdata)
 *.(.data .data.* .gnu.linkonce.d.*)
                0x40200dd0                . = ALIGN (0x4)
                0x40200dd0                _edata = .
 .data          0x40200dd0        0x0 startup.o
 .data          0x40200dd0        0x0 low_init.o
 .data          0x40200dd0        0x0 sprint.o
 .data          0x40200dd0        0x0 main.o
 .data          0x40200dd0        0x0 i2c.o
 .data          0x40200dd0        0x0 mmc.o

.bss            0x40200dd0        0x0
                0x40200dd0                __bss_start = .
 *(.shbss)
 *(.bss .bss.* .gnu.linkonce.b.*)
 .bss           0x40200dd0        0x0 startup.o
 .bss           0x40200dd0        0x0 low_init.o
 .bss           0x40200dd0        0x0 sprint.o
 .bss           0x40200dd0        0x0 main.o
 .bss           0x40200dd0        0x0 i2c.o
 .bss           0x40200dd0        0x0 mmc.o
 *(COMMON)
                0x40200dd0                . = ALIGN (0x4)
                0x40200dd0                __bss_end = .

.stab
 *.(.stab)

.stabstr
 *.(.stabstr)

.debug
 *(.debug)

.line
 *(.line)
LOAD startup.o
LOAD low_init.o
LOAD sprint.o
LOAD main.o
LOAD i2c.o
LOAD mmc.o
OUTPUT(puppy_beagle elf32-littlearm)

.ARM.attributes
                0x00000000       0x2f
 .ARM.attributes
                0x00000000       0x23 startup.o
 .ARM.attributes
                0x00000023       0x33 low_init.o
 .ARM.attributes
                0x00000056       0x33 sprint.o
 .ARM.attributes
                0x00000089       0x33 main.o
 .ARM.attributes
                0x000000bc       0x33 i2c.o
 .ARM.attributes
                0x000000ef       0x33 mmc.o

.comment        0x00000000       0xd7
 .comment       0x00000000       0x2b low_init.o
 .comment       0x0000002b       0x2b sprint.o
 .comment       0x00000056       0x2b main.o
 .comment       0x00000081       0x2b i2c.o
 .comment       0x000000ac       0x2b mmc.o

No comments:

Post a Comment