123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
- OUTPUT_ARCH(avr:5)
- MEMORY
- {
-
- text (rx) : ORIGIN = 0, LENGTH = 128K
- keymap (rw!x) : ORIGIN = 0x6800, LENGTH = 2K
- data (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
- eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
- fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
- lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
- signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
- }
- SECTIONS
- {
-
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rel.init : { *(.rel.init) }
- .rela.init : { *(.rela.init) }
- .rel.text :
- {
- }
- .rela.text :
- {
- }
- .rel.fini : { *(.rel.fini) }
- .rela.fini : { *(.rela.fini) }
- .rel.rodata :
- {
- }
- .rela.rodata :
- {
- }
- .rel.data :
- {
- }
- .rela.data :
- {
- }
- .rel.ctors : { *(.rel.ctors) }
- .rela.ctors : { *(.rela.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rela.dtors : { *(.rela.dtors) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
-
- .text :
- {
- KEEP(*(.vectors))
-
- . = ALIGN(2);
- __trampolines_start = . ;
-
- __trampolines_end = . ;
-
-
- __ctors_start = . ;
- __ctors_end = . ;
- __dtors_start = . ;
- __dtors_end = . ;
- KEEP(SORT(*)(.ctors))
- KEEP(SORT(*)(.dtors))
-
- KEEP (*(.init0))
- KEEP (*(.init1))
- KEEP (*(.init2))
- KEEP (*(.init3))
- KEEP (*(.init4))
- KEEP (*(.init5))
- KEEP (*(.init6))
- KEEP (*(.init7))
- KEEP (*(.init8))
- KEEP (*(.init9))
- . = ALIGN(2);
- . = ALIGN(2);
- KEEP (*(.fini9))
- KEEP (*(.fini8))
- KEEP (*(.fini7))
- KEEP (*(.fini6))
- KEEP (*(.fini5))
- KEEP (*(.fini4))
- KEEP (*(.fini3))
- KEEP (*(.fini2))
- KEEP (*(.fini1))
- KEEP (*(.fini0))
- _etext = . ;
- } > text
- .data : AT (ADDR (.text) + SIZEOF (.text))
- {
- PROVIDE (__data_start = .) ;
- . = ALIGN(2);
- _edata = . ;
- PROVIDE (__data_end = .) ;
- } > data
- .bss : AT (ADDR (.bss))
- {
- PROVIDE (__bss_start = .) ;
- PROVIDE (__bss_end = .) ;
- } > data
- __data_load_start = LOADADDR(.data);
- __data_load_end = __data_load_start + SIZEOF(.data);
-
- .noinit :
- {
- PROVIDE (__noinit_start = .) ;
- PROVIDE (__noinit_end = .) ;
- _end = . ;
- PROVIDE (__heap_start = .) ;
- } > data
-
- .keymap :
- {
- PROVIDE(__keymap_start = .) ;
- . = ALIGN(0x40);
-
- } > keymap = 0x00
- .eeprom :
- {
- __eeprom_end = . ;
- } > eeprom
- .fuse :
- {
- KEEP(*(.fuse))
- KEEP(*(.lfuse))
- KEEP(*(.hfuse))
- KEEP(*(.efuse))
- } > fuse
- .lock :
- {
- KEEP(*(.lock*))
- } > lock
- .signature :
- {
- KEEP(*(.signature*))
- } > signature
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
-
-
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
-
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
-
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
-
- .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- }
|