diff --git a/lib/Makefile.include b/lib/Makefile.include
index f6c805f9..9caf3ee3 100644
--- a/lib/Makefile.include
+++ b/lib/Makefile.include
@@ -32,15 +32,10 @@ STANDARD_FLAGS ?= -std=c99
all: $(SRCLIBDIR)/$(LIBNAME).a
-$(SRCLIBDIR)/$(LIBNAME).a: $(SRCLIBDIR)/$(LIBNAME).ld $(OBJS)
+$(SRCLIBDIR)/$(LIBNAME).a: $(OBJS)
@printf " AR $(LIBNAME).a\n"
$(Q)$(AR) $(ARFLAGS) "$@" $(OBJS)
-$(SRCLIBDIR)/$(LIBNAME).ld: $(LIBNAME).ld
- @printf " CP $(LIBNAME).ld\n"
- $(Q)cp $^ "$@"
- $(Q)if [ -f $(LIBNAME)_rom_to_ram.ld ]; then cp $(LIBNAME)_rom_to_ram.ld $(SRCLIBDIR); fi
-
%.o: %.c
@printf " CC $(.
*/
-/* Generic linker script for EFM32 targets using libopencm3. */
+/*
+ * This is a generic linker script for Cortex-M targets using libopencm3.
+ *
+ * Memory regions MUST be defined in the ld script which includes this one!
+ * Example:
+
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x08000000, LENGTH = 256K
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 16K
+}
+
+INCLUDE cortex-m-generic.ld
-/* Memory regions must be defined in the ld script which includes this one. */
+*/
/* Enforce emmition of the vector table. */
EXTERN (vector_table)
diff --git a/lib/efm32/g/libopencm3_efm32g880f128.ld b/lib/efm32/g/libopencm3_efm32g880f128.ld
index 09c6fb0f..dac6aa38 100644
--- a/lib/efm32/g/libopencm3_efm32g880f128.ld
+++ b/lib/efm32/g/libopencm3_efm32g880f128.ld
@@ -12,4 +12,4 @@ MEMORY
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 16k
}
-INCLUDE libopencm3_efm32g.ld;
+INCLUDE cortex-m-generic.ld;
diff --git a/lib/efm32/gg/libopencm3_efm32gg.ld b/lib/efm32/gg/libopencm3_efm32gg.ld
deleted file mode 100644
index 87d6ee63..00000000
--- a/lib/efm32/gg/libopencm3_efm32gg.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for EFM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/efm32/gg/libopencm3_efm32gg990f1024.ld b/lib/efm32/gg/libopencm3_efm32gg990f1024.ld
index 694e17a9..e1dcc103 100644
--- a/lib/efm32/gg/libopencm3_efm32gg990f1024.ld
+++ b/lib/efm32/gg/libopencm3_efm32gg990f1024.ld
@@ -12,4 +12,4 @@ MEMORY
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 128k
}
-INCLUDE libopencm3_efm32gg.ld;
+INCLUDE cortex-m-generic.ld;
diff --git a/lib/efm32/hg/efm32hg309f64.ld b/lib/efm32/hg/efm32hg309f64.ld
index 1a8fb6ea..e9bc1d6c 100644
--- a/lib/efm32/hg/efm32hg309f64.ld
+++ b/lib/efm32/hg/efm32hg309f64.ld
@@ -25,4 +25,4 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_efm32hg.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/efm32/hg/libopencm3_efm32hg.ld b/lib/efm32/hg/libopencm3_efm32hg.ld
deleted file mode 100644
index ed9b616f..00000000
--- a/lib/efm32/hg/libopencm3_efm32hg.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for EFM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
diff --git a/lib/efm32/lg/libopencm3_efm32lg.ld b/lib/efm32/lg/libopencm3_efm32lg.ld
deleted file mode 100644
index 87d6ee63..00000000
--- a/lib/efm32/lg/libopencm3_efm32lg.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for EFM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/efm32/tg/libopencm3_efm32tg.ld b/lib/efm32/tg/libopencm3_efm32tg.ld
deleted file mode 100644
index 87d6ee63..00000000
--- a/lib/efm32/tg/libopencm3_efm32tg.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for EFM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/efm32/tg/libopencm3_efm32tg840f32.ld b/lib/efm32/tg/libopencm3_efm32tg840f32.ld
index 2cb8daf0..2a133ddc 100644
--- a/lib/efm32/tg/libopencm3_efm32tg840f32.ld
+++ b/lib/efm32/tg/libopencm3_efm32tg840f32.ld
@@ -12,4 +12,4 @@ MEMORY
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 4k
}
-INCLUDE libopencm3_efm32tg.ld;
+INCLUDE cortex-m-generic.ld;
diff --git a/lib/lm3s/libopencm3_lm3s.ld b/lib/lm3s/libopencm3_lm3s.ld
deleted file mode 100644
index 6c8c7f2e..00000000
--- a/lib/lm3s/libopencm3_lm3s.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for LM3S targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/lm3s/lm3s6965.ld b/lib/lm3s/lm3s6965.ld
index 68094f92..c0fc3b2b 100644
--- a/lib/lm3s/lm3s6965.ld
+++ b/lib/lm3s/lm3s6965.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_lm3s.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/lm4f/libopencm3_lm4f.ld b/lib/lm4f/libopencm3_lm4f.ld
deleted file mode 100644
index 12d939e2..00000000
--- a/lib/lm4f/libopencm3_lm4f.ld
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Yes, we can simply use the lm3s linker script */
-INCLUDE "libopencm3_lm3s.ld"
diff --git a/lib/lpc13xx/libopencm3_lpc13xx.ld b/lib/lpc13xx/libopencm3_lpc13xx.ld
deleted file mode 100644
index bd0005c7..00000000
--- a/lib/lpc13xx/libopencm3_lpc13xx.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for LPC13XX targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/lpc17xx/libopencm3_lpc17xx.ld b/lib/lpc17xx/libopencm3_lpc17xx.ld
deleted file mode 100644
index a122ea93..00000000
--- a/lib/lpc17xx/libopencm3_lpc17xx.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for LPC17XX targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/3a/libopencm3_sam3a.ld b/lib/sam/3a/libopencm3_sam3a.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/sam/3a/libopencm3_sam3a.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/3n/libopencm3_sam3n.ld b/lib/sam/3n/libopencm3_sam3n.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/sam/3n/libopencm3_sam3n.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/3s/libopencm3_sam3s.ld b/lib/sam/3s/libopencm3_sam3s.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/sam/3s/libopencm3_sam3s.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/3u/libopencm3_sam3u.ld b/lib/sam/3u/libopencm3_sam3u.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/sam/3u/libopencm3_sam3u.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/3x/libopencm3_sam3x.ld b/lib/sam/3x/libopencm3_sam3x.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/sam/3x/libopencm3_sam3x.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/sam/d/libopencm3_samd.ld b/lib/sam/d/libopencm3_samd.ld
deleted file mode 100644
index ada86c36..00000000
--- a/lib/sam/d/libopencm3_samd.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f0/libopencm3_stm32f0.ld b/lib/stm32/f0/libopencm3_stm32f0.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f0/libopencm3_stm32f0.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f0/stm32f03xz6.ld b/lib/stm32/f0/stm32f03xz6.ld
index 3cb420d4..f564dbfd 100644
--- a/lib/stm32/f0/stm32f03xz6.ld
+++ b/lib/stm32/f0/stm32f03xz6.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f0/stm32f04xz6.ld b/lib/stm32/f0/stm32f04xz6.ld
index 772b6009..164d0e84 100644
--- a/lib/stm32/f0/stm32f04xz6.ld
+++ b/lib/stm32/f0/stm32f04xz6.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f0/stm32f05xz6.ld b/lib/stm32/f0/stm32f05xz6.ld
index 161bdc88..b8bd7b9b 100644
--- a/lib/stm32/f0/stm32f05xz6.ld
+++ b/lib/stm32/f0/stm32f05xz6.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f0/stm32f05xz8.ld b/lib/stm32/f0/stm32f05xz8.ld
index f53704cb..dd0ce931 100644
--- a/lib/stm32/f0/stm32f05xz8.ld
+++ b/lib/stm32/f0/stm32f05xz8.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f0/stm32f07xz8.ld b/lib/stm32/f0/stm32f07xz8.ld
index dda24fdb..af45ae78 100644
--- a/lib/stm32/f0/stm32f07xz8.ld
+++ b/lib/stm32/f0/stm32f07xz8.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f0/stm32f07xzb.ld b/lib/stm32/f0/stm32f07xzb.ld
index 0cbe7490..b55510ec 100644
--- a/lib/stm32/f0/stm32f07xzb.ld
+++ b/lib/stm32/f0/stm32f07xzb.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/libopencm3_stm32f1.ld b/lib/stm32/f1/libopencm3_stm32f1.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f1/libopencm3_stm32f1.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f1/stm32f100x4.ld b/lib/stm32/f1/stm32f100x4.ld
index 4c86aee8..4b1af96e 100644
--- a/lib/stm32/f1/stm32f100x4.ld
+++ b/lib/stm32/f1/stm32f100x4.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100x6.ld b/lib/stm32/f1/stm32f100x6.ld
index 23f77f3f..6abe9034 100644
--- a/lib/stm32/f1/stm32f100x6.ld
+++ b/lib/stm32/f1/stm32f100x6.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100x8.ld b/lib/stm32/f1/stm32f100x8.ld
index e0aa041f..9a037f09 100644
--- a/lib/stm32/f1/stm32f100x8.ld
+++ b/lib/stm32/f1/stm32f100x8.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100xb.ld b/lib/stm32/f1/stm32f100xb.ld
index 83d64fdd..0874999e 100644
--- a/lib/stm32/f1/stm32f100xb.ld
+++ b/lib/stm32/f1/stm32f100xb.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100xc.ld b/lib/stm32/f1/stm32f100xc.ld
index 30a894af..b6c38c05 100644
--- a/lib/stm32/f1/stm32f100xc.ld
+++ b/lib/stm32/f1/stm32f100xc.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100xd.ld b/lib/stm32/f1/stm32f100xd.ld
index b5074358..2dbd7bdb 100644
--- a/lib/stm32/f1/stm32f100xd.ld
+++ b/lib/stm32/f1/stm32f100xd.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f100xe.ld b/lib/stm32/f1/stm32f100xe.ld
index a12d1ff7..c181c447 100644
--- a/lib/stm32/f1/stm32f100xe.ld
+++ b/lib/stm32/f1/stm32f100xe.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f103x8.ld b/lib/stm32/f1/stm32f103x8.ld
index c1700de4..3ae984d8 100644
--- a/lib/stm32/f1/stm32f103x8.ld
+++ b/lib/stm32/f1/stm32f103x8.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f103xb.ld b/lib/stm32/f1/stm32f103xb.ld
index 67384790..4ec8235d 100644
--- a/lib/stm32/f1/stm32f103xb.ld
+++ b/lib/stm32/f1/stm32f103xb.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f103xc.ld b/lib/stm32/f1/stm32f103xc.ld
index 01801a77..de30d14c 100644
--- a/lib/stm32/f1/stm32f103xc.ld
+++ b/lib/stm32/f1/stm32f103xc.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f103xd.ld b/lib/stm32/f1/stm32f103xd.ld
index 6b38e3ab..cfc6ee41 100644
--- a/lib/stm32/f1/stm32f103xd.ld
+++ b/lib/stm32/f1/stm32f103xd.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f1/stm32f103xe.ld b/lib/stm32/f1/stm32f103xe.ld
index 13094006..78f68797 100644
--- a/lib/stm32/f1/stm32f103xe.ld
+++ b/lib/stm32/f1/stm32f103xe.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f2/libopencm3_stm32f2.ld b/lib/stm32/f2/libopencm3_stm32f2.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f2/libopencm3_stm32f2.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f3/libopencm3_stm32f3.ld b/lib/stm32/f3/libopencm3_stm32f3.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f3/libopencm3_stm32f3.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f3/stm32f303xc.ld b/lib/stm32/f3/stm32f303xc.ld
index 9069bf3f..c1e1137a 100644
--- a/lib/stm32/f3/stm32f303xc.ld
+++ b/lib/stm32/f3/stm32f303xc.ld
@@ -27,5 +27,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f3.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f4/libopencm3_stm32f4.ld b/lib/stm32/f4/libopencm3_stm32f4.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f4/libopencm3_stm32f4.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/f4/stm32f405x6.ld b/lib/stm32/f4/stm32f405x6.ld
index 7ce3932e..4c43a279 100644
--- a/lib/stm32/f4/stm32f405x6.ld
+++ b/lib/stm32/f4/stm32f405x6.ld
@@ -30,5 +30,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32f4.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/f7/libopencm3_stm32f7.ld b/lib/stm32/f7/libopencm3_stm32f7.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/f7/libopencm3_stm32f7.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/l0/libopencm3_stm32l0.ld b/lib/stm32/l0/libopencm3_stm32l0.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/l0/libopencm3_stm32l0.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/l0/stm32l0xx6.ld b/lib/stm32/l0/stm32l0xx6.ld
index bdb5fc16..17307b77 100644
--- a/lib/stm32/l0/stm32l0xx6.ld
+++ b/lib/stm32/l0/stm32l0xx6.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l0/stm32l0xx8.ld b/lib/stm32/l0/stm32l0xx8.ld
index 948a26d3..13d43e10 100644
--- a/lib/stm32/l0/stm32l0xx8.ld
+++ b/lib/stm32/l0/stm32l0xx8.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l0.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/libopencm3_stm32l1.ld b/lib/stm32/l1/libopencm3_stm32l1.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/l1/libopencm3_stm32l1.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-
diff --git a/lib/stm32/l1/stm32l100xc.ld b/lib/stm32/l1/stm32l100xc.ld
index 55476200..28f03667 100644
--- a/lib/stm32/l1/stm32l100xc.ld
+++ b/lib/stm32/l1/stm32l100xc.ld
@@ -29,5 +29,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/stm32l15xx6.ld b/lib/stm32/l1/stm32l15xx6.ld
index a72a5d8a..fa22b492 100644
--- a/lib/stm32/l1/stm32l15xx6.ld
+++ b/lib/stm32/l1/stm32l15xx6.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/stm32l15xx8.ld b/lib/stm32/l1/stm32l15xx8.ld
index 656779be..dc62f7a3 100644
--- a/lib/stm32/l1/stm32l15xx8.ld
+++ b/lib/stm32/l1/stm32l15xx8.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/stm32l15xxb.ld b/lib/stm32/l1/stm32l15xxb.ld
index be81f37e..694da9ec 100644
--- a/lib/stm32/l1/stm32l15xxb.ld
+++ b/lib/stm32/l1/stm32l15xxb.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/stm32l15xxc.ld b/lib/stm32/l1/stm32l15xxc.ld
index 651aed39..e0569a29 100644
--- a/lib/stm32/l1/stm32l15xxc.ld
+++ b/lib/stm32/l1/stm32l15xxc.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l1/stm32l15xxd.ld b/lib/stm32/l1/stm32l15xxd.ld
index 4b93c9b1..8020841b 100644
--- a/lib/stm32/l1/stm32l15xxd.ld
+++ b/lib/stm32/l1/stm32l15xxd.ld
@@ -28,5 +28,5 @@ MEMORY
}
/* Include the common ld script. */
-INCLUDE libopencm3_stm32l1.ld
+INCLUDE cortex-m-generic.ld
diff --git a/lib/stm32/l4/libopencm3_stm32l4.ld b/lib/stm32/l4/libopencm3_stm32l4.ld
deleted file mode 100644
index 3fc2ccb6..00000000
--- a/lib/stm32/l4/libopencm3_stm32l4.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2009 Uwe Hermann
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see .
- */
-
-/* Generic linker script for STM32 targets using libopencm3. */
-
-/* Memory regions must be defined in the ld script which includes this one. */
-
-/* Enforce emmition of the vector table. */
-EXTERN (vector_table)
-
-/* Define the entry point of the output file. */
-ENTRY(reset_handler)
-
-/* Define sections. */
-SECTIONS
-{
- .text : {
- *(.vectors) /* Vector table */
- *(.text*) /* Program code */
- . = ALIGN(4);
- *(.rodata*) /* Read-only data */
- . = ALIGN(4);
- } >rom
-
- /* C++ Static constructors/destructors, also used for __attribute__
- * ((constructor)) and the likes */
- .preinit_array : {
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- } >rom
- .init_array : {
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- } >rom
- .fini_array : {
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- } >rom
-
- /*
- * Another section used by C++ stuff, appears when using newlib with
- * 64bit (long long) printf support
- */
- .ARM.extab : {
- *(.ARM.extab*)
- } >rom
- .ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >rom
-
- . = ALIGN(4);
- _etext = .;
-
- .data : {
- _data = .;
- *(.data*) /* Read-write initialized data */
- . = ALIGN(4);
- _edata = .;
- } >ram AT >rom
- _data_loadaddr = LOADADDR(.data);
-
- .bss : {
- *(.bss*) /* Read-write zero initialized data */
- *(COMMON)
- . = ALIGN(4);
- _ebss = .;
- } >ram
-
- /*
- * The .eh_frame section appears to be used for C++ exception handling.
- * You may need to fix this if you're using C++.
- */
- /DISCARD/ : { *(.eh_frame) }
-
- . = ALIGN(4);
- end = .;
-}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
-