| /*******************************************************************/ | |
| /* */ | |
| /* This file is automatically generated by linker script generator.*/ | |
| /* */ | |
| /* Version: Xilinx EDK 2013.4 EDK_2013.4.20131205 */ | |
| /* */ | |
| /* Copyright (c) 2010 Xilinx, Inc. All rights reserved. */ | |
| /* */ | |
| /* Description : Cortex-A9 Linker Script */ | |
| /* */ | |
| /*******************************************************************/ | |
| _STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000; | |
| _HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x2000; | |
| _ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024; | |
| _SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048; | |
| _IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024; | |
| _FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024; | |
| _UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024; | |
| /* Define Memories in the system */ | |
| MEMORY | |
| { | |
| ps7_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x00100000, LENGTH = 0x3FF00000 | |
| ps7_ram_0_S_AXI_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x00030000 | |
| ps7_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x0000FE00 | |
| } | |
| /* Specify the default entry point to the program */ | |
| ENTRY(_freertos_vector_table) | |
| /* Define the sections, and where they are mapped in memory */ | |
| SECTIONS | |
| { | |
| .text : { | |
| *(.freertos_vectors) | |
| *(.vectors) | |
| *(.boot) | |
| *(.text) | |
| *(.text.*) | |
| *(.gnu.linkonce.t.*) | |
| *(.plt) | |
| *(.gnu_warning) | |
| *(.gcc_execpt_table) | |
| *(.glue_7) | |
| *(.glue_7t) | |
| *(.vfp11_veneer) | |
| *(.ARM.extab) | |
| *(.gnu.linkonce.armextab.*) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .init : { | |
| KEEP (*(.init)) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .fini : { | |
| KEEP (*(.fini)) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .rodata : { | |
| __rodata_start = .; | |
| *(.rodata) | |
| *(.rodata.*) | |
| *(.gnu.linkonce.r.*) | |
| __rodata_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .rodata1 : { | |
| __rodata1_start = .; | |
| *(.rodata1) | |
| *(.rodata1.*) | |
| __rodata1_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .sdata2 : { | |
| __sdata2_start = .; | |
| *(.sdata2) | |
| *(.sdata2.*) | |
| *(.gnu.linkonce.s2.*) | |
| __sdata2_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .sbss2 : { | |
| __sbss2_start = .; | |
| *(.sbss2) | |
| *(.sbss2.*) | |
| *(.gnu.linkonce.sb2.*) | |
| __sbss2_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .data : { | |
| __data_start = .; | |
| *(.data) | |
| *(.data.*) | |
| *(.gnu.linkonce.d.*) | |
| *(.jcr) | |
| *(.got) | |
| *(.got.plt) | |
| __data_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .data1 : { | |
| __data1_start = .; | |
| *(.data1) | |
| *(.data1.*) | |
| __data1_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .got : { | |
| *(.got) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .ctors : { | |
| __CTOR_LIST__ = .; | |
| ___CTORS_LIST___ = .; | |
| KEEP (*crtbegin.o(.ctors)) | |
| KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors)) | |
| KEEP (*(SORT(.ctors.*))) | |
| KEEP (*(.ctors)) | |
| __CTOR_END__ = .; | |
| ___CTORS_END___ = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .dtors : { | |
| __DTOR_LIST__ = .; | |
| ___DTORS_LIST___ = .; | |
| KEEP (*crtbegin.o(.dtors)) | |
| KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors)) | |
| KEEP (*(SORT(.dtors.*))) | |
| KEEP (*(.dtors)) | |
| __DTOR_END__ = .; | |
| ___DTORS_END___ = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .fixup : { | |
| __fixup_start = .; | |
| *(.fixup) | |
| __fixup_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .eh_frame : { | |
| *(.eh_frame) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .eh_framehdr : { | |
| __eh_framehdr_start = .; | |
| *(.eh_framehdr) | |
| __eh_framehdr_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .gcc_except_table : { | |
| *(.gcc_except_table) | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .mmu_tbl (ALIGN(16384)) : { | |
| __mmu_tbl_start = .; | |
| *(.mmu_tbl) | |
| __mmu_tbl_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .ARM.exidx : { | |
| __exidx_start = .; | |
| *(.ARM.exidx*) | |
| *(.gnu.linkonce.armexidix.*.*) | |
| __exidx_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .preinit_array : { | |
| __preinit_array_start = .; | |
| KEEP (*(SORT(.preinit_array.*))) | |
| KEEP (*(.preinit_array)) | |
| __preinit_array_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .init_array : { | |
| __init_array_start = .; | |
| KEEP (*(SORT(.init_array.*))) | |
| KEEP (*(.init_array)) | |
| __init_array_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .fini_array : { | |
| __fini_array_start = .; | |
| KEEP (*(SORT(.fini_array.*))) | |
| KEEP (*(.fini_array)) | |
| __fini_array_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .ARM.attributes : { | |
| __ARM.attributes_start = .; | |
| *(.ARM.attributes) | |
| __ARM.attributes_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .sdata : { | |
| __sdata_start = .; | |
| *(.sdata) | |
| *(.sdata.*) | |
| *(.gnu.linkonce.s.*) | |
| __sdata_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .sbss (NOLOAD) : { | |
| __sbss_start = .; | |
| *(.sbss) | |
| *(.sbss.*) | |
| *(.gnu.linkonce.sb.*) | |
| __sbss_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .tdata : { | |
| __tdata_start = .; | |
| *(.tdata) | |
| *(.tdata.*) | |
| *(.gnu.linkonce.td.*) | |
| __tdata_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .tbss : { | |
| __tbss_start = .; | |
| *(.tbss) | |
| *(.tbss.*) | |
| *(.gnu.linkonce.tb.*) | |
| __tbss_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .bss (NOLOAD) : { | |
| __bss_start = .; | |
| *(.bss) | |
| *(.bss.*) | |
| *(.gnu.linkonce.b.*) | |
| *(COMMON) | |
| __bss_end = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| _SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 ); | |
| _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 ); | |
| /* Generate Stack and Heap definitions */ | |
| .heap (NOLOAD) : { | |
| . = ALIGN(16); | |
| _heap = .; | |
| HeapBase = .; | |
| _heap_start = .; | |
| . += _HEAP_SIZE; | |
| _heap_end = .; | |
| HeapLimit = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| .stack (NOLOAD) : { | |
| . = ALIGN(16); | |
| _stack_end = .; | |
| . += _STACK_SIZE; | |
| _stack = .; | |
| __stack = _stack; | |
| . = ALIGN(16); | |
| _irq_stack_end = .; | |
| . += _IRQ_STACK_SIZE; | |
| __irq_stack = .; | |
| _supervisor_stack_end = .; | |
| . += _SUPERVISOR_STACK_SIZE; | |
| . = ALIGN(16); | |
| __supervisor_stack = .; | |
| _abort_stack_end = .; | |
| . += _ABORT_STACK_SIZE; | |
| . = ALIGN(16); | |
| __abort_stack = .; | |
| _fiq_stack_end = .; | |
| . += _FIQ_STACK_SIZE; | |
| . = ALIGN(16); | |
| __fiq_stack = .; | |
| _undef_stack_end = .; | |
| . += _UNDEF_STACK_SIZE; | |
| . = ALIGN(16); | |
| __undef_stack = .; | |
| } > ps7_ddr_0_S_AXI_BASEADDR | |
| _end = .; | |
| } | |