Browse Source
Instead of every "simple" target having their own duplicate file with all the section mappings, just provide a single, simple, "cortex-m-generic.ld" that works with our startup code and any simple rom/ram system. This also drops the pointless copying of files all over the place. Using -L flags properly is sufficient, and the standard file is now in the root of the library already.pull/771/merge
Karl Palsson
7 years ago
58 changed files with 48 additions and 2376 deletions
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,105 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,2 +0,0 @@ |
|||
/* Yes, we can simply use the lm3s linker script */ |
|||
INCLUDE "libopencm3_lm3s.ld" |
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
@ -1,106 +0,0 @@ |
|||
/* |
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> |
|||
* |
|||
* 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 <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
/* 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)); |
|||
|
Loading…
Reference in new issue