123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /******************************************************************************
- *
- * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *****************************************************************************/
- MEMORY
- {
- FLASH (RX) : ORIGIN = 0x00000000, LENGTH = 0x00100000
- SRAM (WX) : ORIGIN = 0x20000000, LENGTH = 0x00040000
- }
- REGION_ALIAS("REGION_TEXT", FLASH);
- REGION_ALIAS("REGION_BSS", SRAM);
- REGION_ALIAS("REGION_DATA", SRAM);
- REGION_ALIAS("REGION_STACK", SRAM);
- REGION_ALIAS("REGION_HEAP", SRAM);
- REGION_ALIAS("REGION_ARM_EXIDX", FLASH);
- REGION_ALIAS("REGION_ARM_EXTAB", FLASH);
- SECTIONS {
- /* section for the interrupt vector area */
- PROVIDE (_intvecs_base_address =
- DEFINED(_intvecs_base_address) ? _intvecs_base_address : 0x0);
- .intvecs (_intvecs_base_address) : AT (_intvecs_base_address) {
- KEEP (*(.intvecs))
- } > REGION_TEXT
- PROVIDE (_vtable_base_address =
- DEFINED(_vtable_base_address) ? _vtable_base_address : 0x20000000);
- .vtable (_vtable_base_address) : AT (_vtable_base_address) {
- KEEP (*(.vtable))
- } > REGION_DATA
- .text : {
- CREATE_OBJECT_SYMBOLS
- KEEP (*(.text))
- *(.text.*)
- . = ALIGN(0x4);
- KEEP (*(.ctors))
- . = ALIGN(0x4);
- KEEP (*(.dtors))
- . = ALIGN(0x4);
- __init_array_start = .;
- KEEP (*(.init_array*))
- __init_array_end = .;
- KEEP (*(.init))
- KEEP (*(.fini*))
- /* section information for finsh shell */
- . = ALIGN(4);
- __fsymtab_start = .;
- KEEP(*(FSymTab))
- __fsymtab_end = .;
- . = ALIGN(4);
- __vsymtab_start = .;
- KEEP(*(VSymTab))
- __vsymtab_end = .;
- /* section information for initial. */
- . = ALIGN(4);
- __rt_init_start = .;
- KEEP(*(SORT(.rti_fn*)))
- __rt_init_end = .;
- . = ALIGN(4);
- } > REGION_TEXT AT> REGION_TEXT
- .rodata : {
- *(.rodata)
- *(.rodata.*)
- } > REGION_TEXT AT> REGION_TEXT
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- __exidx_end = .;
- } > REGION_ARM_EXIDX AT> REGION_ARM_EXIDX
- .ARM.extab : {
- KEEP (*(.ARM.extab* .gnu.linkonce.armextab.*))
- } > REGION_ARM_EXTAB AT> REGION_ARM_EXTAB
- __etext = .;
- .data : {
- __data_load__ = LOADADDR (.data);
- __data_start__ = .;
- KEEP (*(.data))
- KEEP (*(.data*))
- . = ALIGN (4);
- __data_end__ = .;
- } > REGION_DATA AT> REGION_TEXT
- .bss : {
- __bss_start__ = .;
- *(.shbss)
- KEEP (*(.bss))
- *(.bss.*)
- *(COMMON)
- . = ALIGN (4);
- __bss_end__ = .;
- } > REGION_BSS AT> REGION_BSS
- .heap : {
- __heap_start__ = .;
- end = __heap_start__;
- _end = end;
- __end = end;
- KEEP (*(.heap))
- __heap_end__ = .;
- __HeapLimit = __heap_end__;
- } > REGION_HEAP AT> REGION_HEAP
- .stack (NOLOAD) : ALIGN(0x8) {
- _stack = .;
- KEEP(*(.stack))
- } > REGION_STACK AT> REGION_STACK
- __StackTop = ORIGIN(REGION_STACK) + LENGTH(REGION_STACK);
- PROVIDE(__stack = __StackTop);
- __end = .;
- }
|