summaryrefslogtreecommitdiffhomepage
path: root/digital/beacon/tests/servo/atmega1281.ld
diff options
context:
space:
mode:
Diffstat (limited to 'digital/beacon/tests/servo/atmega1281.ld')
-rw-r--r--digital/beacon/tests/servo/atmega1281.ld97
1 files changed, 97 insertions, 0 deletions
diff --git a/digital/beacon/tests/servo/atmega1281.ld b/digital/beacon/tests/servo/atmega1281.ld
new file mode 100644
index 00000000..056e2cad
--- /dev/null
+++ b/digital/beacon/tests/servo/atmega1281.ld
@@ -0,0 +1,97 @@
+OUTPUT_FORMAT("elf32-avr")
+OUTPUT_ARCH(avr:5)
+
+MEMORY
+{
+ text (rx) : ORIGIN = 0x00000000, LENGTH = 128K
+ data (rw!x) : ORIGIN = 0x00800200, LENGTH = 8K - 500 /* leave 500 bytes for stack */
+ eeprom (rw!x) : ORIGIN = 0x00810000, LENGTH = 4K
+}
+
+SECTIONS
+{
+ .text :
+ {
+ PROVIDE(__text_start = .);
+
+ *(.vectors)
+ KEEP(*(.vectors))
+
+ *(.progmem.gcc*)
+ *(.progmem*)
+ . = ALIGN(2);
+
+ *(.trampolines*)
+ *(.jumptables*)
+ *(.lowtext*)
+
+ *(.init0)
+ KEEP (*(.init0))
+ *(.init1)
+ KEEP (*(.init1))
+ *(.init2)
+ KEEP (*(.init2))
+ *(.init3)
+ KEEP (*(.init3))
+ *(.init4)
+ KEEP (*(.init4))
+ *(.init5)
+ KEEP (*(.init5))
+ *(.init6)
+ KEEP (*(.init6))
+ *(.init7)
+ KEEP (*(.init7))
+ *(.init8)
+ KEEP (*(.init8))
+
+ *(.text.main)
+ KEEP (*(.text.main))
+ *(.text)
+ *(.text.*)
+
+ PROVIDE(__text_end = .);
+ } > text
+
+ .data : AT (ADDR(.text) + SIZEOF(.text))
+ {
+ PROVIDE(__data_start = .);
+ *(.data*)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ . = ALIGN(2);
+ PROVIDE(__data_end = .);
+ } > data
+
+ .bss __data_end :
+ {
+ PROVIDE(__bss_start = .);
+ *(.bss*)
+ *(COMMON)
+ PROVIDE(__bss_end = .);
+ } > data
+
+ .noinit __bss_end :
+ {
+ *(.noinit*)
+ PROVIDE(__heap_start = .);
+ } > data
+
+ __stack_start = .;
+
+ __data_load_start = LOADADDR(.data);
+ __data_load_end = __data_load_start + SIZEOF(.data);
+
+ .eeprom :
+ {
+ FILL(0xff)
+ BYTE(0xff)
+ . = . + LENGTH(eeprom)-1;
+ } > eeprom
+
+ /DISCARD/ :
+ {
+ *(.init9)
+ *(.fini*)
+ }
+
+}