source: arduino-1-6-7/trunk/fuentes/arduino-ide-amd64/hardware/tools/avr/avr/lib/ldscripts/avrtiny.xr @ 4837

Last change on this file since 4837 was 4837, checked in by daduve, 2 years ago

Adding new version

File size: 6.1 KB
Line 
1/* Script for ld -r: link without relocation */
2/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
3   Copying and distribution of this script, with or without modification,
4   are permitted in any medium without royalty provided the copyright
5   notice and this notice are preserved.  */
6OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
7OUTPUT_ARCH(avr:100)
8__TEXT_REGION_LENGTH__ = DEFINED(__TEXT_REGION_LENGTH__) ? __TEXT_REGION_LENGTH__ : 4K;
9__DATA_REGION_LENGTH__ = DEFINED(__DATA_REGION_LENGTH__) ? __DATA_REGION_LENGTH__ : 0x100;
10__FUSE_REGION_LENGTH__ = DEFINED(__FUSE_REGION_LENGTH__) ? __FUSE_REGION_LENGTH__ : 2;
11__LOCK_REGION_LENGTH__ = DEFINED(__LOCK_REGION_LENGTH__) ? __LOCK_REGION_LENGTH__ : 2;
12__SIGNATURE_REGION_LENGTH__ = DEFINED(__SIGNATURE_REGION_LENGTH__) ? __SIGNATURE_REGION_LENGTH__ : 4;
13MEMORY
14{
15  text   (rx)   : ORIGIN = 0x0, LENGTH = __TEXT_REGION_LENGTH__
16  data   (rw!x) : ORIGIN = 0x0800040, LENGTH = __DATA_REGION_LENGTH__
17  /* Provide offsets for config, lock and signature to match
18     production file format. Ignore offsets in datasheet.  */
19  config    (rw!x) : ORIGIN = 0x820000, LENGTH = __FUSE_REGION_LENGTH__
20  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = __LOCK_REGION_LENGTH__
21  signature (rw!x) : ORIGIN = 0x840000, LENGTH = __SIGNATURE_REGION_LENGTH__
22}
23SECTIONS
24{
25  /* Read-only sections, merged into text segment: */
26  .hash        0 : { *(.hash)           }
27  .dynsym      0 : { *(.dynsym)         }
28  .dynstr      0 : { *(.dynstr)         }
29  .gnu.version 0 : { *(.gnu.version)    }
30  .gnu.version_d 0 : { *(.gnu.version_d)        }
31  .gnu.version_r 0 : { *(.gnu.version_r)        }
32  .rel.init    0 : { *(.rel.init)       }
33  .rela.init   0 : { *(.rela.init)      }
34  .rel.text    0 :
35    {
36      *(.rel.text)
37    }
38  .rela.text   0 :
39    {
40      *(.rela.text)
41    }
42  .rel.fini    0 : { *(.rel.fini)       }
43  .rela.fini   0 : { *(.rela.fini)      }
44  .rel.rodata  0 :
45    {
46      *(.rel.rodata)
47    }
48  .rela.rodata 0 :
49    {
50      *(.rela.rodata)
51    }
52  .rel.data    0 :
53    {
54      *(.rel.data)
55    }
56  .rela.data   0 :
57    {
58      *(.rela.data)
59    }
60  .rel.ctors   0 : { *(.rel.ctors)      }
61  .rela.ctors  0 : { *(.rela.ctors)     }
62  .rel.dtors   0 : { *(.rel.dtors)      }
63  .rela.dtors  0 : { *(.rela.dtors)     }
64  .rel.got     0 : { *(.rel.got)                }
65  .rela.got    0 : { *(.rela.got)       }
66  .rel.bss     0 : { *(.rel.bss)                }
67  .rela.bss    0 : { *(.rela.bss)       }
68  .rel.plt     0 : { *(.rel.plt)                }
69  .rela.plt    0 : { *(.rela.plt)       }
70  /* Internal text space or external memory.  */
71  .text 0 :
72  {
73    *(.vectors)
74    KEEP(*(.vectors))
75    /* For data that needs to reside in the lower 64k of progmem.  */
76    /* PR 13812: Placing the trampolines here gives a better chance
77       that they will be in range of the code that uses them.  */
78    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
79    *(.trampolines)
80    /* avr-libc expects these data to reside in lower 64K. */
81    /* For future tablejump instruction arrays for 3 byte pc devices.
82       We don't relax jump/call instructions within these sections.  */
83    *(.jumptables)
84    /* For code that needs to reside in the lower 128k progmem.  */
85    *(.lowtext)
86    KEEP(SORT(*)(.ctors))
87    KEEP(SORT(*)(.dtors))
88    /* From this point on, we don't bother about wether the insns are
89       below or above the 16 bits boundary.  */
90    *(.init0)  /* Start here after reset.  */
91    KEEP (*(.init0))
92    *(.init1)
93    KEEP (*(.init1))
94    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
95    KEEP (*(.init2))
96    *(.init3)
97    KEEP (*(.init3))
98    *(.init4)  /* Initialize data and BSS.  */
99    KEEP (*(.init4))
100    *(.init5)
101    KEEP (*(.init5))
102    *(.init6)  /* C++ constructors.  */
103    KEEP (*(.init6))
104    *(.init7)
105    KEEP (*(.init7))
106    *(.init8)
107    KEEP (*(.init8))
108    *(.init9)  /* Call main().  */
109    KEEP (*(.init9))
110    *(.text)
111    *(.fini9)  /* _exit() starts here.  */
112    KEEP (*(.fini9))
113    *(.fini8)
114    KEEP (*(.fini8))
115    *(.fini7)
116    KEEP (*(.fini7))
117    *(.fini6)  /* C++ destructors.  */
118    KEEP (*(.fini6))
119    *(.fini5)
120    KEEP (*(.fini5))
121    *(.fini4)
122    KEEP (*(.fini4))
123    *(.fini3)
124    KEEP (*(.fini3))
125    *(.fini2)
126    KEEP (*(.fini2))
127    *(.fini1)
128    KEEP (*(.fini1))
129    *(.fini0)  /* Infinite loop after program termination.  */
130    KEEP (*(.fini0))
131  }
132  .data        0 :
133  {
134    *(.data)
135    *(.rodata)  /* We need to include .rodata here if gcc is used */
136     /* with -fdata-sections.  */
137    *(.gnu.linkonce.d*)
138  }
139  .bss  0 :
140  {
141    *(.bss)
142    *(COMMON)
143  }
144  /* Global data not cleared after reset.  */
145  .noinit  0 :
146  {
147    *(.noinit*)
148  }
149  .lock 0:
150  {
151    KEEP(*(.lock*))
152  }
153  .signature 0:
154  {
155    KEEP(*(.signature*))
156  }
157  .config 0:
158  {
159    KEEP(*(.config*))
160  }
161  /* Stabs debugging sections.  */
162  .stab 0 : { *(.stab) }
163  .stabstr 0 : { *(.stabstr) }
164  .stab.excl 0 : { *(.stab.excl) }
165  .stab.exclstr 0 : { *(.stab.exclstr) }
166  .stab.index 0 : { *(.stab.index) }
167  .stab.indexstr 0 : { *(.stab.indexstr) }
168  .comment 0 : { *(.comment) }
169  .note.gnu.build-id : { *(.note.gnu.build-id) }
170  /* DWARF debug sections.
171     Symbols in the DWARF debugging sections are relative to the beginning
172     of the section so we begin them at 0.  */
173  /* DWARF 1 */
174  .debug          0 : { *(.debug) }
175  .line           0 : { *(.line) }
176  /* GNU DWARF 1 extensions */
177  .debug_srcinfo  0 : { *(.debug_srcinfo) }
178  .debug_sfnames  0 : { *(.debug_sfnames) }
179  /* DWARF 1.1 and DWARF 2 */
180  .debug_aranges  0 : { *(.debug_aranges) }
181  .debug_pubnames 0 : { *(.debug_pubnames) }
182  /* DWARF 2 */
183  .debug_info     0 : { *(.debug_info) }
184  .debug_abbrev   0 : { *(.debug_abbrev) }
185  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
186  .debug_frame    0 : { *(.debug_frame) }
187  .debug_str      0 : { *(.debug_str) }
188  .debug_loc      0 : { *(.debug_loc) }
189  .debug_macinfo  0 : { *(.debug_macinfo) }
190  /* SGI/MIPS DWARF 2 extensions */
191  .debug_weaknames 0 : { *(.debug_weaknames) }
192  .debug_funcnames 0 : { *(.debug_funcnames) }
193  .debug_typenames 0 : { *(.debug_typenames) }
194  .debug_varnames  0 : { *(.debug_varnames) }
195  /* DWARF 3 */
196  .debug_pubtypes 0 : { *(.debug_pubtypes) }
197  .debug_ranges   0 : { *(.debug_ranges) }
198  /* DWARF Extension.  */
199  .debug_macro    0 : { *(.debug_macro) }
200}
Note: See TracBrowser for help on using the repository browser.