1 /******************************************************************************
3 * Copyright (C) 2012-2018 Texas Instruments Incorporated - http://www.ti.com/
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the
17 * Neither the name of Texas Instruments Incorporated nor the names of
18 * its contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 ******************************************************************************/
36 MAIN_FLASH (RX) : ORIGIN = 0x00000000, LENGTH = 0x00040000
37 INFO_FLASH (RX) : ORIGIN = 0x00200000, LENGTH = 0x00004000
38 SRAM_CODE_0(RWX): ORIGIN = 0x01000000, LENGTH = 0x00000110
39 SRAM_CODE_1(RWX): ORIGIN = 0x01000110, LENGTH = 0x00000030
40 SRAM_CODE_2(RWX): ORIGIN = 0x01000150, LENGTH = 0x00000040
41 SRAM_CODE_3(RWX): ORIGIN = 0x01000190, LENGTH = 0x00000F70
42 SRAM_CODE_4(RWX): ORIGIN = 0x01001170, LENGTH = 0x00000200
43 SRAM_DATA (RW) : ORIGIN = 0x20002000, LENGTH = 0x00001000
46 REGION_ALIAS("REGION_INTVECT", SRAM_CODE_0);
47 REGION_ALIAS("REGION_RESET", SRAM_CODE_1);
48 REGION_ALIAS("REGION_DESCRIPTOR", SRAM_CODE_2);
49 REGION_ALIAS("REGION_TEXT", SRAM_CODE_3);
50 REGION_ALIAS("REGION_BSS", SRAM_CODE_3);
51 REGION_ALIAS("REGION_DATA", SRAM_DATA);
52 REGION_ALIAS("REGION_STACK", SRAM_CODE_4);
53 REGION_ALIAS("REGION_HEAP", SRAM_DATA);
54 REGION_ALIAS("REGION_ARM_EXIDX", SRAM_CODE_3);
55 REGION_ALIAS("REGION_ARM_EXTAB", SRAM_CODE_3);
59 /* section for the interrupt vector area */
64 PROVIDE (_vtable_base_address =
65 DEFINED(_vtable_base_address) ? _vtable_base_address : 0x20000000);
67 .vtable (_vtable_base_address) : AT (_vtable_base_address) {
73 . = ORIGIN(REGION_DESCRIPTOR) + LENGTH(REGION_DESCRIPTOR) - 1;
80 } > REGION_RESET AT> REGION_RESET
91 __init_array_start = .;
92 KEEP (*(.init_array*))
96 } > REGION_TEXT AT> REGION_TEXT
101 } > REGION_TEXT AT> REGION_TEXT
105 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
107 } > REGION_ARM_EXIDX AT> REGION_ARM_EXIDX
110 KEEP (*(.ARM.extab* .gnu.linkonce.armextab.*))
111 } > REGION_ARM_EXTAB AT> REGION_ARM_EXTAB
116 __data_load__ = LOADADDR (.data);
122 } > REGION_DATA AT> REGION_TEXT
132 } > REGION_BSS AT> REGION_BSS
136 end = __heap_start__;
141 __HeapLimit = __heap_end__;
142 } > REGION_HEAP AT> REGION_HEAP
144 .stack (NOLOAD) : ALIGN(0x8) {
147 } > REGION_STACK AT> REGION_STACK
149 __stack_top = ORIGIN(REGION_STACK) + LENGTH(REGION_STACK);
150 PROVIDE(__stack = __stack_top);