]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/lscript.ld
Update some more standard demos for use on 64-bit architectures.
[freertos] / FreeRTOS / Demo / CORTEX_R5_UltraScale_MPSoC / RTOSDemo_R5 / src / lscript.ld
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/lscript.ld b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/lscript.ld
new file mode 100644 (file)
index 0000000..e1f1bcf
--- /dev/null
@@ -0,0 +1,310 @@
+/*******************************************************************/\r
+/*                                                                 */\r
+/* This file is automatically generated by linker script generator.*/\r
+/*                                                                 */\r
+/* Version:                                 */\r
+/*                                                                 */\r
+/* Copyright (c) 2010 Xilinx, Inc.  All rights reserved.           */\r
+/*                                                                 */\r
+/* Description : ARM-v7 Linker Script                          */\r
+/*                                                                 */\r
+/*******************************************************************/\r
+\r
+_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;\r
+_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x2000;\r
+\r
+_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;\r
+_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;\r
+_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;\r
+_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;\r
+_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;\r
+\r
+/* Define Memories in the system */\r
+\r
+MEMORY\r
+{\r
+   psu_bbram_0_S_AXI_BASEADDR : ORIGIN = 0xFFCD0000, LENGTH = 0x10000\r
+   psu_ocm_S_AXI_BASEADDR : ORIGIN = 0xFF960000, LENGTH = 0x10000\r
+   psu_ocm_ram_0_S_AXI_BASEADDR : ORIGIN = 0xFFFC0000, LENGTH = 0x30000\r
+   psu_ocm_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x10000\r
+   psu_pmu_ram_S_AXI_BASEADDR : ORIGIN = 0xFFDC0000, LENGTH = 0x20000\r
+   psu_qspi_linear_0_S_AXI_BASEADDR : ORIGIN = 0xC0000000, LENGTH = 0x20000000\r
+   psu_r5_0_atcm_S_AXI_BASEADDR : ORIGIN = 0xFFE00000, LENGTH = 0x10000\r
+   psu_r5_0_atcm_lockstep_S_AXI_BASEADDR : ORIGIN = 0xFFE10000, LENGTH = 0x10000\r
+   psu_r5_0_btcm_S_AXI_BASEADDR : ORIGIN = 0xFFE20000, LENGTH = 0x10000\r
+   psu_r5_0_btcm_lockstep_S_AXI_BASEADDR : ORIGIN = 0xFFE30000, LENGTH = 0x10000\r
+   psu_r5_1_atcm_S_AXI_BASEADDR : ORIGIN = 0xFFE90000, LENGTH = 0x10000\r
+   psu_r5_1_btcm_S_AXI_BASEADDR : ORIGIN = 0xFFEB0000, LENGTH = 0x10000\r
+   psu_r5_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x100000, LENGTH = 0x7FF00000\r
+   psu_r5_tcm_ram_0_S_AXI_BASEADDR : ORIGIN = 0x100, LENGTH = 0x1FF01\r
+}\r
+\r
+/* Specify the default entry point to the program */\r
+\r
+ENTRY(_boot)\r
+\r
+/* Define the sections, and where they are mapped in memory */\r
+\r
+SECTIONS\r
+{\r
+.vectors 0x0 : {\r
+   KEEP (*(.freertos_vectors))\r
+   KEEP (*(.vectors))\r
+}\r
+\r
+.text : {\r
+   *(.boot)\r
+   *(.text)\r
+   *(.text.*)\r
+   *(.gnu.linkonce.t.*)\r
+   *(.plt)\r
+   *(.gnu_warning)\r
+   *(.gcc_execpt_table)\r
+   *(.glue_7)\r
+   *(.glue_7t)\r
+   *(.vfp11_veneer)\r
+   *(.ARM.extab)\r
+   *(.gnu.linkonce.armextab.*)\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.init : {\r
+   KEEP (*(.init))\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.fini : {\r
+   KEEP (*(.fini))\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.interp : {\r
+   KEEP (*(.interp))\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.note-ABI-tag : {\r
+   KEEP (*(.note-ABI-tag))\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.rodata : {\r
+   __rodata_start = .;\r
+   *(.rodata)\r
+   *(.rodata.*)\r
+   *(.gnu.linkonce.r.*)\r
+   __rodata_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.rodata1 : {\r
+   __rodata1_start = .;\r
+   *(.rodata1)\r
+   *(.rodata1.*)\r
+   __rodata1_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.sdata2 : {\r
+   __sdata2_start = .;\r
+   *(.sdata2)\r
+   *(.sdata2.*)\r
+   *(.gnu.linkonce.s2.*)\r
+   __sdata2_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.sbss2 : {\r
+   __sbss2_start = .;\r
+   *(.sbss2)\r
+   *(.sbss2.*)\r
+   *(.gnu.linkonce.sb2.*)\r
+   __sbss2_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.data : {\r
+   __data_start = .;\r
+   *(.data)\r
+   *(.data.*)\r
+   *(.gnu.linkonce.d.*)\r
+   *(.jcr)\r
+   *(.got)\r
+   *(.got.plt)\r
+   __data_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.data1 : {\r
+   __data1_start = .;\r
+   *(.data1)\r
+   *(.data1.*)\r
+   __data1_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.got : {\r
+   *(.got)\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.ctors : {\r
+   __CTOR_LIST__ = .;\r
+   ___CTORS_LIST___ = .;\r
+   KEEP (*crtbegin.o(.ctors))\r
+   KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))\r
+   KEEP (*(SORT(.ctors.*)))\r
+   KEEP (*(.ctors))\r
+   __CTOR_END__ = .;\r
+   ___CTORS_END___ = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.dtors : {\r
+   __DTOR_LIST__ = .;\r
+   ___DTORS_LIST___ = .;\r
+   KEEP (*crtbegin.o(.dtors))\r
+   KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))\r
+   KEEP (*(SORT(.dtors.*)))\r
+   KEEP (*(.dtors))\r
+   __DTOR_END__ = .;\r
+   ___DTORS_END___ = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.fixup : {\r
+   __fixup_start = .;\r
+   *(.fixup)\r
+   __fixup_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.eh_frame : {\r
+   *(.eh_frame)\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.eh_framehdr : {\r
+   __eh_framehdr_start = .;\r
+   *(.eh_framehdr)\r
+   __eh_framehdr_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.gcc_except_table : {\r
+   *(.gcc_except_table)\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.mmu_tbl (ALIGN(16384)) : {\r
+   __mmu_tbl_start = .;\r
+   *(.mmu_tbl)\r
+   __mmu_tbl_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.ARM.exidx : {\r
+   __exidx_start = .;\r
+   *(.ARM.exidx*)\r
+   *(.gnu.linkonce.armexidix.*.*)\r
+   __exidx_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.preinit_array : {\r
+   __preinit_array_start = .;\r
+   KEEP (*(SORT(.preinit_array.*)))\r
+   KEEP (*(.preinit_array))\r
+   __preinit_array_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.init_array : {\r
+   __init_array_start = .;\r
+   KEEP (*(SORT(.init_array.*)))\r
+   KEEP (*(.init_array))\r
+   __init_array_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.fini_array : {\r
+   __fini_array_start = .;\r
+   KEEP (*(SORT(.fini_array.*)))\r
+   KEEP (*(.fini_array))\r
+   __fini_array_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.ARM.attributes : {\r
+   __ARM.attributes_start = .;\r
+   *(.ARM.attributes)\r
+   __ARM.attributes_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.sdata : {\r
+   __sdata_start = .;\r
+   *(.sdata)\r
+   *(.sdata.*)\r
+   *(.gnu.linkonce.s.*)\r
+   __sdata_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.sbss (NOLOAD) : {\r
+   __sbss_start = .;\r
+   *(.sbss)\r
+   *(.sbss.*)\r
+   *(.gnu.linkonce.sb.*)\r
+   __sbss_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.tdata : {\r
+   __tdata_start = .;\r
+   *(.tdata)\r
+   *(.tdata.*)\r
+   *(.gnu.linkonce.td.*)\r
+   __tdata_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.tbss : {\r
+   __tbss_start = .;\r
+   *(.tbss)\r
+   *(.tbss.*)\r
+   *(.gnu.linkonce.tb.*)\r
+   __tbss_end = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.bss (NOLOAD) : {\r
+   . = ALIGN(4);\r
+   __bss_start__ = .;\r
+   *(.bss)\r
+   *(.bss.*)\r
+   *(.gnu.linkonce.b.*)\r
+   *(COMMON)\r
+   . = ALIGN(4);\r
+   __bss_end__ = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );\r
+\r
+_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );\r
+\r
+/* Generate Stack and Heap definitions */\r
+\r
+.heap (NOLOAD) : {\r
+   . = ALIGN(16);\r
+   _heap = .;\r
+   HeapBase = .;\r
+   _heap_start = .;\r
+   . += _HEAP_SIZE;\r
+   _heap_end = .;\r
+   HeapLimit = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+.stack (NOLOAD) : {\r
+   . = ALIGN(16);\r
+   _stack_end = .;\r
+   . += _STACK_SIZE;\r
+   _stack = .;\r
+   __stack = _stack;\r
+   . = ALIGN(16);\r
+   _irq_stack_end = .;\r
+   . += _IRQ_STACK_SIZE;\r
+   __irq_stack = .;\r
+   _supervisor_stack_end = .;\r
+   . += _SUPERVISOR_STACK_SIZE;\r
+   . = ALIGN(16);\r
+   __supervisor_stack = .;\r
+   _abort_stack_end = .;\r
+   . += _ABORT_STACK_SIZE;\r
+   . = ALIGN(16);\r
+   __abort_stack = .;\r
+   _fiq_stack_end = .;\r
+   . += _FIQ_STACK_SIZE;\r
+   . = ALIGN(16);\r
+   __fiq_stack = .;\r
+   _undef_stack_end = .;\r
+   . += _UNDEF_STACK_SIZE;\r
+   . = ALIGN(16);\r
+   __undef_stack = .;\r
+} > psu_r5_ddr_0_S_AXI_BASEADDR\r
+\r
+_end = .;\r
+}\r
+\r