123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- /*
- * GENERATED FILE - DO NOT EDIT
- * Copyright (c) 2008-2013 Code Red Technologies Ltd,
- * Copyright 2015, 2018-2019 NXP
- * (c) NXP Semiconductors 2013-2020
- * Generated linker script file for MIMXRT1062xxxxA
- * Created from linkscript.ldt by FMCreateLinkLibraries
- * Using Freemarker v2.3.23
- * MCUXpresso IDE v11.1.0 [Build 3209] [2019-12-12] on 15-Jan-2020 10:49:25 PM
- */
- /********* DEBUG_LIBRARY.LD ***********/
- /*
- "libcr_nohost_nf.a"
- "libcr_c.a"
- "libcr_eabihelpers.a"
- */
- GROUP (
- "libgcc.a"
- )
- /********** DEBUG_MEMORY.LD **********/
- MEMORY
- {
- /* Define each memory region */
- BOARD_FLASH (rx) : ORIGIN = 0x60000000, LENGTH = 0x800000 /* 8M bytes (alias Flash) */
- SRAM_DTC (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 /* 128K bytes (alias RAM) */
- SRAM_ITC (rwx) : ORIGIN = 0x0, LENGTH = 0x20000 /* 128K bytes (alias RAM2) */
- SRAM_OC (rwx) : ORIGIN = 0x20200000, LENGTH = 0xc0000 /* 768K bytes (alias RAM3) */
- BOARD_SDRAM (rwx) : ORIGIN = 0x80000000, LENGTH = 0x1e00000 /* 30M bytes (alias RAM4) */
- NCACHE_REGION (rwx) : ORIGIN = 0x81e00000, LENGTH = 0x200000 /* 2M bytes (alias RAM5) */
- }
- /* Define a symbol for the top of each memory region */
- __base_BOARD_FLASH = 0x60000000 ; /* BOARD_FLASH */
- __base_Flash = 0x60000000 ; /* Flash */
- __top_BOARD_FLASH = 0x60000000 + 0x800000 ; /* 8M bytes */
- __top_Flash = 0x60000000 + 0x800000 ; /* 8M bytes */
- __base_SRAM_DTC = 0x20000000 ; /* SRAM_DTC */
- __base_RAM = 0x20000000 ; /* RAM */
- __top_SRAM_DTC = 0x20000000 + 0x20000 ; /* 128K bytes */
- __top_RAM = 0x20000000 + 0x20000 ; /* 128K bytes */
- __base_SRAM_ITC = 0x0 ; /* SRAM_ITC */
- __base_RAM2 = 0x0 ; /* RAM2 */
- __top_SRAM_ITC = 0x0 + 0x20000 ; /* 128K bytes */
- __top_RAM2 = 0x0 + 0x20000 ; /* 128K bytes */
- __base_SRAM_OC = 0x20200000 ; /* SRAM_OC */
- __base_RAM3 = 0x20200000 ; /* RAM3 */
- __top_SRAM_OC = 0x20200000 + 0xc0000 ; /* 768K bytes */
- __top_RAM3 = 0x20200000 + 0xc0000 ; /* 768K bytes */
- __base_BOARD_SDRAM = 0x80000000 ; /* BOARD_SDRAM */
- __base_RAM4 = 0x80000000 ; /* RAM4 */
- __top_BOARD_SDRAM = 0x80000000 + 0x1e00000 ; /* 30M bytes */
- __top_RAM4 = 0x80000000 + 0x1e00000 ; /* 30M bytes */
- __base_NCACHE_REGION = 0x81e00000 ; /* NCACHE_REGION */
- __base_RAM5 = 0x81e00000 ; /* RAM5 */
- __top_NCACHE_REGION = 0x81e00000 + 0x200000 ; /* 2M bytes */
- __top_RAM5 = 0x81e00000 + 0x200000 ; /* 2M bytes */
- /********* MAIN LINKER FILE **********/
- ENTRY(ResetISR)
- SECTIONS
- {
- /* Image Vector Table and Boot Data for booting from external flash */
- .boot_hdr : ALIGN(4)
- {
- FILL(0xff)
- __boot_hdr_start__ = ABSOLUTE(.) ;
- KEEP(*(.boot_hdr.conf))
- . = 0x1000 ;
- KEEP(*(.boot_hdr.ivt))
- . = 0x1020 ;
- KEEP(*(.boot_hdr.boot_data))
- . = 0x1030 ;
- KEEP(*(.boot_hdr.dcd_data))
- __boot_hdr_end__ = ABSOLUTE(.) ;
- . = 0x2000 ;
- } >BOARD_FLASH
- /* MAIN TEXT SECTION */
- .text : ALIGN(4)
- {
- FILL(0xff)
- __vectors_start__ = ABSOLUTE(.) ;
- KEEP(*(.isr_vector))
- /* Global Section Table */
- . = ALIGN(4) ;
- __section_table_start = .;
- __data_section_table = .;
- LONG(LOADADDR(.data));
- LONG( ADDR(.data));
- LONG( SIZEOF(.data));
- LONG(LOADADDR(.data_RAM2));
- LONG( ADDR(.data_RAM2));
- LONG( SIZEOF(.data_RAM2));
- LONG(LOADADDR(.data_RAM3));
- LONG( ADDR(.data_RAM3));
- LONG( SIZEOF(.data_RAM3));
- LONG(LOADADDR(.data_RAM4));
- LONG( ADDR(.data_RAM4));
- LONG( SIZEOF(.data_RAM4));
- LONG(LOADADDR(.data_RAM5));
- LONG( ADDR(.data_RAM5));
- LONG( SIZEOF(.data_RAM5));
- __data_section_table_end = .;
- __bss_section_table = .;
- LONG( ADDR(.bss));
- LONG( SIZEOF(.bss));
- LONG( ADDR(.bss_RAM2));
- LONG( SIZEOF(.bss_RAM2));
- LONG( ADDR(.bss_RAM3));
- LONG( SIZEOF(.bss_RAM3));
- LONG( ADDR(.bss_RAM4));
- LONG( SIZEOF(.bss_RAM4));
- LONG( ADDR(.bss_RAM5));
- LONG( SIZEOF(.bss_RAM5));
- __bss_section_table_end = .;
- __section_table_end = . ;
- /* End of Global Section Table */
- *(.after_vectors*)
- } > BOARD_FLASH
- .text : ALIGN(4)
- {
- *(.text*)
- *(.rodata .rodata.* .constdata .constdata.*)
- . = ALIGN(4);
- } > BOARD_FLASH
- /*
- * for exception handling/unwind - some Newlib functions (in common
- * with C++ and STDC++) use this.
- */
- .ARM.extab : ALIGN(4)
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > BOARD_FLASH
- __exidx_start = .;
- .ARM.exidx : ALIGN(4)
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > BOARD_FLASH
- __exidx_end = .;
-
- _etext = .;
-
- /* DATA section for SRAM_ITC */
- .data_RAM2 : ALIGN(4)
- {
- FILL(0xff)
- PROVIDE(__start_data_RAM2 = .) ;
- PROVIDE(__start_data_SRAM_ITC = .) ;
- *(.ramfunc.$RAM2)
- *(.ramfunc.$SRAM_ITC)
- *(.data.$RAM2)
- *(.data.$SRAM_ITC)
- *(.data.$RAM2.*)
- *(.data.$SRAM_ITC.*)
- . = ALIGN(4) ;
- PROVIDE(__end_data_RAM2 = .) ;
- PROVIDE(__end_data_SRAM_ITC = .) ;
- } > SRAM_ITC AT>BOARD_FLASH
- /* DATA section for SRAM_OC */
- .data_RAM3 : ALIGN(4)
- {
- FILL(0xff)
- PROVIDE(__start_data_RAM3 = .) ;
- PROVIDE(__start_data_SRAM_OC = .) ;
- *(.ramfunc.$RAM3)
- *(.ramfunc.$SRAM_OC)
- *(.data.$RAM3)
- *(.data.$SRAM_OC)
- *(.data.$RAM3.*)
- *(.data.$SRAM_OC.*)
- . = ALIGN(4) ;
- PROVIDE(__end_data_RAM3 = .) ;
- PROVIDE(__end_data_SRAM_OC = .) ;
- } > SRAM_OC AT>BOARD_FLASH
- /* DATA section for BOARD_SDRAM */
- .data_RAM4 : ALIGN(4)
- {
- FILL(0xff)
- PROVIDE(__start_data_RAM4 = .) ;
- PROVIDE(__start_data_BOARD_SDRAM = .) ;
- *(.ramfunc.$RAM4)
- *(.ramfunc.$BOARD_SDRAM)
- *(.data.$RAM4)
- *(.data.$BOARD_SDRAM)
- *(.data.$RAM4.*)
- *(.data.$BOARD_SDRAM.*)
- . = ALIGN(4) ;
- PROVIDE(__end_data_RAM4 = .) ;
- PROVIDE(__end_data_BOARD_SDRAM = .) ;
- } > BOARD_SDRAM AT>BOARD_FLASH
- /* DATA section for NCACHE_REGION */
- .data_RAM5 : ALIGN(4)
- {
- FILL(0xff)
- PROVIDE(__start_data_RAM5 = .) ;
- PROVIDE(__start_data_NCACHE_REGION = .) ;
- *(.ramfunc.$RAM5)
- *(.ramfunc.$NCACHE_REGION)
- *(.data.$RAM5)
- *(.data.$NCACHE_REGION)
- *(.data.$RAM5.*)
- *(.data.$NCACHE_REGION.*)
- . = ALIGN(4) ;
- PROVIDE(__end_data_RAM5 = .) ;
- PROVIDE(__end_data_NCACHE_REGION = .) ;
- } > NCACHE_REGION AT>BOARD_FLASH
- /* MAIN DATA SECTION */
- .uninit_RESERVED (NOLOAD) : ALIGN(4)
- {
- _start_uninit_RESERVED = .;
- KEEP(*(.bss.$RESERVED*))
- . = ALIGN(4) ;
- _end_uninit_RESERVED = .;
- } > SRAM_DTC AT> SRAM_DTC
- /* Main DATA section (SRAM_DTC) */
- .data : ALIGN(4)
- {
- FILL(0xff)
- _data = . ;
- PROVIDE(__start_data_RAM = .) ;
- PROVIDE(__start_data_SRAM_DTC = .) ;
- *(vtable)
- *(.ramfunc*)
- KEEP(*(CodeQuickAccess))
- KEEP(*(DataQuickAccess))
- *(RamFunction)
- *(NonCacheable.init)
- *(.data*)
- . = ALIGN(4) ;
- _edata = . ;
- PROVIDE(__end_data_RAM = .) ;
- PROVIDE(__end_data_SRAM_DTC = .) ;
- } > SRAM_DTC AT>BOARD_FLASH
- /* BSS section for SRAM_ITC */
- .bss_RAM2 : ALIGN(4)
- {
- PROVIDE(__start_bss_RAM2 = .) ;
- PROVIDE(__start_bss_SRAM_ITC = .) ;
- *(.bss.$RAM2)
- *(.bss.$SRAM_ITC)
- *(.bss.$RAM2.*)
- *(.bss.$SRAM_ITC.*)
- . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */
- PROVIDE(__end_bss_RAM2 = .) ;
- PROVIDE(__end_bss_SRAM_ITC = .) ;
- } > SRAM_ITC AT> SRAM_ITC
- /* BSS section for SRAM_OC */
- .bss_RAM3 : ALIGN(4)
- {
- PROVIDE(__start_bss_RAM3 = .) ;
- PROVIDE(__start_bss_SRAM_OC = .) ;
- *(.bss.$RAM3)
- *(.bss.$SRAM_OC)
- *(.bss.$RAM3.*)
- *(.bss.$SRAM_OC.*)
- . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */
- PROVIDE(__end_bss_RAM3 = .) ;
- PROVIDE(__end_bss_SRAM_OC = .) ;
- } > SRAM_OC AT> SRAM_OC
- /* BSS section for BOARD_SDRAM */
- .bss_RAM4 : ALIGN(4)
- {
- PROVIDE(__start_bss_RAM4 = .) ;
- PROVIDE(__start_bss_BOARD_SDRAM = .) ;
- *(.bss.$RAM4)
- *(.bss.$BOARD_SDRAM)
- *(.bss.$RAM4.*)
- *(.bss.$BOARD_SDRAM.*)
- . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */
- PROVIDE(__end_bss_RAM4 = .) ;
- PROVIDE(__end_bss_BOARD_SDRAM = .) ;
- } > BOARD_SDRAM AT> BOARD_SDRAM
- /* BSS section for NCACHE_REGION */
- .bss_RAM5 : ALIGN(4)
- {
- PROVIDE(__start_bss_RAM5 = .) ;
- PROVIDE(__start_bss_NCACHE_REGION = .) ;
- *(.bss.$RAM5)
- *(.bss.$NCACHE_REGION)
- *(.bss.$RAM5.*)
- *(.bss.$NCACHE_REGION.*)
- . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */
- PROVIDE(__end_bss_RAM5 = .) ;
- PROVIDE(__end_bss_NCACHE_REGION = .) ;
- } > NCACHE_REGION AT> NCACHE_REGION
- /* MAIN BSS SECTION */
- .bss : ALIGN(4)
- {
- _bss = .;
- PROVIDE(__start_bss_RAM = .) ;
- PROVIDE(__start_bss_SRAM_DTC = .) ;
- *(NonCacheable)
- *(.bss*)
- *(COMMON)
- . = ALIGN(4) ;
- _ebss = .;
- PROVIDE(__end_bss_RAM = .) ;
- PROVIDE(__end_bss_SRAM_DTC = .) ;
- PROVIDE(end = .);
- } > SRAM_DTC AT> SRAM_DTC
- /* NOINIT section for SRAM_ITC */
- .noinit_RAM2 (NOLOAD) : ALIGN(4)
- {
- PROVIDE(__start_noinit_RAM2 = .) ;
- PROVIDE(__start_noinit_SRAM_ITC = .) ;
- *(.noinit.$RAM2)
- *(.noinit.$SRAM_ITC)
- *(.noinit.$RAM2.*)
- *(.noinit.$SRAM_ITC.*)
- . = ALIGN(4) ;
- PROVIDE(__end_noinit_RAM2 = .) ;
- PROVIDE(__end_noinit_SRAM_ITC = .) ;
- } > SRAM_ITC AT> SRAM_ITC
- /* NOINIT section for SRAM_OC */
- .noinit_RAM3 (NOLOAD) : ALIGN(4)
- {
- PROVIDE(__start_noinit_RAM3 = .) ;
- PROVIDE(__start_noinit_SRAM_OC = .) ;
- *(.noinit.$RAM3)
- *(.noinit.$SRAM_OC)
- *(.noinit.$RAM3.*)
- *(.noinit.$SRAM_OC.*)
- . = ALIGN(4) ;
- PROVIDE(__end_noinit_RAM3 = .) ;
- PROVIDE(__end_noinit_SRAM_OC = .) ;
- } > SRAM_OC AT> SRAM_OC
- /* NOINIT section for BOARD_SDRAM */
- .noinit_RAM4 (NOLOAD) : ALIGN(4)
- {
- PROVIDE(__start_noinit_RAM4 = .) ;
- PROVIDE(__start_noinit_BOARD_SDRAM = .) ;
- *(.noinit.$RAM4)
- *(.noinit.$BOARD_SDRAM)
- *(.noinit.$RAM4.*)
- *(.noinit.$BOARD_SDRAM.*)
- . = ALIGN(4) ;
- PROVIDE(__end_noinit_RAM4 = .) ;
- PROVIDE(__end_noinit_BOARD_SDRAM = .) ;
- } > BOARD_SDRAM AT> BOARD_SDRAM
- /* NOINIT section for NCACHE_REGION */
- .noinit_RAM5 (NOLOAD) : ALIGN(4)
- {
- PROVIDE(__start_noinit_RAM5 = .) ;
- PROVIDE(__start_noinit_NCACHE_REGION = .) ;
- *(.noinit.$RAM5)
- *(.noinit.$NCACHE_REGION)
- *(.noinit.$RAM5.*)
- *(.noinit.$NCACHE_REGION.*)
- . = ALIGN(4) ;
- PROVIDE(__end_noinit_RAM5 = .) ;
- PROVIDE(__end_noinit_NCACHE_REGION = .) ;
- } > NCACHE_REGION AT> NCACHE_REGION
- /* DEFAULT NOINIT SECTION */
- .noinit (NOLOAD): ALIGN(4)
- {
- _noinit = .;
- PROVIDE(__start_noinit_RAM = .) ;
- PROVIDE(__start_noinit_SRAM_DTC = .) ;
- *(.noinit*)
- . = ALIGN(4) ;
- _end_noinit = .;
- PROVIDE(__end_noinit_RAM = .) ;
- PROVIDE(__end_noinit_SRAM_DTC = .) ;
- } > SRAM_DTC AT> SRAM_DTC
- /* Reserve and place Heap within memory map */
- _HeapSize = 0x1000;
- .heap : ALIGN(4)
- {
- _pvHeapStart = .;
- . += _HeapSize;
- . = ALIGN(4);
- _pvHeapLimit = .;
- } > SRAM_DTC
- _StackSize = 0x1000;
- /* Reserve space in memory for Stack */
- .heap2stackfill :
- {
- . += _StackSize;
- } > SRAM_DTC
- /* Locate actual Stack in memory map */
- .stack ORIGIN(SRAM_DTC) + LENGTH(SRAM_DTC) - _StackSize - 0: ALIGN(4)
- {
- _vStackBase = .;
- . = ALIGN(4);
- _vStackTop = . + _StackSize;
- } > SRAM_DTC
- /* Provide basic symbols giving location and size of main text
- * block, including initial values of RW data sections. Note that
- * these will need extending to give a complete picture with
- * complex images (e.g multiple Flash banks).
- */
- _image_start = LOADADDR(.text);
- _image_end = LOADADDR(.data) + SIZEOF(.data);
- _image_size = _image_end - _image_start;
- }
|