1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18SECTIONS 19{ 20 /* things that live in the main app image */ 21 .text : { 22 KEEP (*(.vectors) ) ; 23 *(.text) *(.text.*) ; 24 *(.rodata) *(.rodata.*) ; 25 . = ALIGN(8); 26 __internal_app_start = ABSOLUTE(.); 27 KEEP (*(.internal_app_init) ) ; 28 __internal_app_end = ABSOLUTE(.); 29 . = ALIGN(4); 30 __text_end = ABSOLUTE(.); 31 } > code = 0xff 32 33 .stack : { 34 . = ALIGN(4); 35 __stack_bottom = ABSOLUTE(.); 36 KEEP ( *(.stack) ); 37 KEEP ( *(.stack.*) ); 38 . = ALIGN(4); 39 __stack_top = ABSOLUTE(.); 40 } > ram 41 42 .data : { 43 . = ALIGN(4); 44 __data_start = ABSOLUTE(.); 45 *(.data); 46 *(.data.*); 47 . = ALIGN(4); 48 __data_end = ABSOLUTE(.); 49 } > ram AT > code 50 51 .bss : { 52 . = ALIGN(4); 53 __bss_start = ABSOLUTE(.); 54 *(.bss) *(.bss.*) *(COMMON); 55 . = ALIGN(4); 56 __bss_end = ABSOLUTE(.); 57 } > ram 58 59 .neverinit : { 60 . = ALIGN(4); 61 *(.neverinit) *(.neverinit.*) ; 62 . = ALIGN(4); 63 __heap_start = ABSOLUTE(.); 64 } > ram 65} 66 67BL = ORIGIN(bl); 68__app_start = __data_data + __data_end - __data_start; 69__heap_end = ORIGIN(ram) + LENGTH(ram); 70ENTRY(__VECTORS) 71 72 73