Mercurial > ecos
annotate packages/hal/arm/arch/current/src/arm.ld @ 46:797268ecc331 ecos-sw-1999-10-19
Merge from eCos master repository on 1999-10-19-18:55:31-BST
| author | jlarmour |
|---|---|
| date | Tue, 19 Oct 1999 19:19:52 +0000 |
| parents | e7ba79f6d3a8 |
| children | a0774359f013 |
| rev | line source |
|---|---|
| 2 | 1 //============================================================================= |
| 2 // | |
| 3 // MLT linker script for ARM | |
| 4 // adapted from packages/hal/arm/pid/v1_1/src/pid.ld | |
| 5 // | |
| 6 //============================================================================= | |
| 7 //####COPYRIGHTBEGIN#### | |
| 8 // | |
| 9 // ------------------------------------------- | |
| 10 // The contents of this file are subject to the Cygnus eCos Public License | |
| 11 // Version 1.0 (the "License"); you may not use this file except in | |
| 12 // compliance with the License. You may obtain a copy of the License at | |
| 13 // http://sourceware.cygnus.com/ecos | |
| 14 // | |
| 15 // Software distributed under the License is distributed on an "AS IS" | |
| 16 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the | |
| 17 // License for the specific language governing rights and limitations under | |
| 18 // the License. | |
| 19 // | |
| 20 // The Original Code is eCos - Embedded Cygnus Operating System, released | |
| 21 // September 30, 1998. | |
| 22 // | |
| 23 // The Initial Developer of the Original Code is Cygnus. Portions created | |
| 24 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. | |
| 25 // ------------------------------------------- | |
| 26 // | |
| 27 //####COPYRIGHTEND#### | |
| 28 //============================================================================= | |
| 29 | |
| 30 #include <pkgconf/system.h> | |
| 31 STARTUP(vectors.o) | |
| 32 ENTRY(reset_vector) | |
| 33 #ifdef EXTRAS | |
| 34 INPUT(extras.o) | |
| 35 #endif | |
| 36 GROUP(libtarget.a libgcc.a) | |
| 37 | |
| 38 #define ALIGN_LMA 4 | |
| 39 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1)) | |
| 40 #define LMA_EQ_VMA | |
| 41 #define FORCE_OUTPUT . = . | |
| 42 | |
| 43 #define SECTIONS_BEGIN \ | |
| 44 /* Debug information */ \ | |
| 45 .debug_aranges 0 : { *(.debug_aranges) } \ | |
| 46 .debug_pubnames 0 : { *(.debug_pubnames) } \ | |
| 47 .debug_info 0 : { *(.debug_info) } \ | |
| 48 .debug_abbrev 0 : { *(.debug_abbrev) } \ | |
| 49 .debug_line 0 : { *(.debug_line) } \ | |
| 50 .debug_frame 0 : { *(.debug_frame) } \ | |
| 51 .debug_str 0 : { *(.debug_str) } \ | |
| 52 .debug_loc 0 : { *(.debug_loc) } \ | |
| 53 .debug_macinfo 0 : { *(.debug_macinfo) } | |
| 54 | |
| 55 #define SECTION_rom_vectors(_region_, _vma_, _lma_) \ | |
| 56 .rom_vectors _vma_ : _lma_ \ | |
| 57 { FORCE_OUTPUT; KEEP (*(.vectors)) } \ | |
| 58 > _region_ | |
| 59 | |
| 60 #define SECTION_text(_region_, _vma_, _lma_) \ | |
| 61 .text _vma_ : _lma_ \ | |
|
8
ece80412419a
Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents:
2
diff
changeset
|
62 { stext = ABSOLUTE(.); \ |
| 2 | 63 PROVIDE (__stext = ABSOLUTE(.)); \ |
|
38
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
8
diff
changeset
|
64 *(.text*) *(.gnu.warning) *(.gnu.linkonce*) *(.init) }\ |
| 2 | 65 > _region_ \ |
|
8
ece80412419a
Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents:
2
diff
changeset
|
66 etext = .; PROVIDE (__etext = .); |
| 2 | 67 |
| 68 #define SECTION_fini(_region_, _vma_, _lma_) \ | |
| 69 .fini _vma_ : _lma_ \ | |
| 70 { FORCE_OUTPUT; *(.fini) } \ | |
| 71 > _region_ | |
| 72 | |
| 73 #define SECTION_rodata(_region_, _vma_, _lma_) \ | |
| 74 .rodata _vma_ : _lma_ \ | |
| 75 { FORCE_OUTPUT; *(.rodata*) } \ | |
| 76 > _region_ | |
| 77 | |
| 78 #define SECTION_rodata1(_region_, _vma_, _lma_) \ | |
| 79 .rodata1 _vma_ : _lma_ \ | |
| 80 { FORCE_OUTPUT; *(.rodata1) } \ | |
| 81 > _region_ | |
| 82 | |
| 83 #define SECTION_fixup(_region_, _vma_, _lma_) \ | |
| 84 .fixup _vma_ : _lma_ \ | |
| 85 { FORCE_OUTPUT; *(.fixup) } \ | |
| 86 > _region_ | |
| 87 | |
| 88 #define SECTION_gcc_except_table(_region_, _vma_, _lma_) \ | |
| 89 .gcc_except_table _vma_ : _lma_ \ | |
| 90 { FORCE_OUTPUT; *(.gcc_except_table) } \ | |
| 91 > _region_ | |
| 92 | |
| 93 #define SECTION_data(_region_, _vma_, _lma_) \ | |
| 94 .data _vma_ : _lma_ \ | |
| 95 { __ram_data_start = ABSOLUTE (.); *(.data*) *(.data1) \ | |
| 96 _GOT1_START_ = ABSOLUTE (.); *(.got1) _GOT1_END_ = ABSOLUTE (.); \ | |
| 97 _GOT2_START_ = ABSOLUTE (.); *(.got2) _GOT2_END_ = ABSOLUTE (.); \ | |
| 98 . = ALIGN (4); \ | |
| 99 __DEVTAB__ = ABSOLUTE (.); KEEP (*(SORT (.devtab*))) __DEVTAB_END__ = ABSOLUTE (.); \ | |
| 100 __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \ | |
| 101 __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \ | |
| 102 *(.dynamic) *(.sdata*) *(.sbss*) } \ | |
| 103 > _region_ \ | |
| 104 __rom_data_start = LOADADDR (.data); \ | |
| 105 __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .); \ | |
| 106 PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data)); | |
| 107 | |
| 108 #define SECTION_bss(_region_, _vma_, _lma_) \ | |
| 109 .bss _vma_ : _lma_ \ | |
| 110 { __bss_start = ABSOLUTE (.); \ | |
|
46
797268ecc331
Merge from eCos master repository on 1999-10-19-18:55:31-BST
jlarmour
parents:
38
diff
changeset
|
111 *(.scommon) *(.dynbss) *(.bss*) *(COMMON) \ |
| 2 | 112 __bss_end = ABSOLUTE (.); } \ |
| 113 > _region_ | |
| 114 | |
| 115 #define SECTIONS_END . = ALIGN(4); _end = .; PROVIDE (end = .); | |
| 116 | |
| 117 #include <pkgconf/hal_arm.h> | |
| 118 #include CYGHWR_MEMORY_LAYOUT_LDI |
