
4 changed files with 189 additions and 6 deletions
@ -0,0 +1,128 @@
|
||||
/* |
||||
Common part of the linker scripts for STR71x devices in FLASH mode |
||||
(that is, the FLASH is seen at 0) |
||||
Copyright RAISONANCE 2005 |
||||
You can use, modify and distribute this file freely, but without any warranty. |
||||
*/ |
||||
|
||||
/* Sections Definitions */ |
||||
|
||||
SECTIONS |
||||
{ |
||||
/* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */ |
||||
.isr_vector : |
||||
{ |
||||
. = ALIGN(4); |
||||
KEEP(*(.isr_vector)) /* Startup code */ |
||||
. = ALIGN(4); |
||||
} >FLASH |
||||
|
||||
/* the program code is stored in the .text section, which goes to Flash */ |
||||
.text : |
||||
{ |
||||
. = ALIGN(4); |
||||
|
||||
*(.text) /* normal code */ |
||||
*(.text.*) /* -ffunction-sections code */ |
||||
*(.rodata) /* read-only data (constants) */ |
||||
*(.rodata*) /* -fdata-sections read only data */ |
||||
*(.glue_7) /* TBD - needed ? */ |
||||
*(.glue_7t) /* TBD - needed ? */ |
||||
|
||||
/* Necessary KEEP sections (see http://sourceware.org/ml/newlib/2005/msg00255.html) */ |
||||
KEEP (*(.init)) |
||||
KEEP (*(.fini)) |
||||
|
||||
. = ALIGN(4); |
||||
_etext = .; |
||||
/* This is used by the startup in order to initialize the .data section */ |
||||
_sidata = _etext; |
||||
} >FLASH |
||||
|
||||
/* This is the initialized data section |
||||
The program executes knowing that the data is in the RAM |
||||
but the loader puts the initial values in the FLASH (inidata). |
||||
It is one task of the startup to copy the initial values from FLASH to RAM. */ |
||||
.data : AT ( _sidata ) |
||||
{ |
||||
. = ALIGN(4); |
||||
/* This is used by the startup in order to initialize the .data secion */ |
||||
_sdata = . ; |
||||
_data = . ; |
||||
|
||||
*(.data) |
||||
*(.data.*) |
||||
*(.RAMtext) |
||||
|
||||
. = ALIGN(4); |
||||
/* This is used by the startup in order to initialize the .data secion */ |
||||
_edata = . ; |
||||
} >RAM |
||||
|
||||
/* This is the uninitialized data section */ |
||||
.bss : |
||||
{ |
||||
. = ALIGN(4); |
||||
/* This is used by the startup in order to initialize the .bss secion */ |
||||
_sbss = .; |
||||
_bss = .; |
||||
|
||||
*(.bss) |
||||
*(.bss.*) /* patched by elias - allows the use of -fdata-sections */ |
||||
*(COMMON) |
||||
|
||||
. = ALIGN(4); |
||||
/* This is used by the startup in order to initialize the .bss secion */ |
||||
_ebss = . ; |
||||
} >RAM |
||||
|
||||
PROVIDE ( end = _ebss ); |
||||
PROVIDE ( _end = _ebss ); |
||||
|
||||
__exidx_start = .; |
||||
__exidx_end = .; |
||||
|
||||
/* after that it's only debugging information. */ |
||||
|
||||
/* remove the debugging information from the standard libraries */ |
||||
/DISCARD/ : |
||||
{ |
||||
libc.a ( * ) |
||||
libm.a ( * ) |
||||
libgcc.a ( * ) |
||||
} |
||||
|
||||
/* Stabs debugging sections. */ |
||||
.stab 0 : { *(.stab) } |
||||
.stabstr 0 : { *(.stabstr) } |
||||
.stab.excl 0 : { *(.stab.excl) } |
||||
.stab.exclstr 0 : { *(.stab.exclstr) } |
||||
.stab.index 0 : { *(.stab.index) } |
||||
.stab.indexstr 0 : { *(.stab.indexstr) } |
||||
.comment 0 : { *(.comment) } |
||||
/* DWARF debug sections. |
||||
Symbols in the DWARF debugging sections are relative to the beginning |
||||
of the section so we begin them at 0. */ |
||||
/* DWARF 1 */ |
||||
.debug 0 : { *(.debug) } |
||||
.line 0 : { *(.line) } |
||||
/* GNU DWARF 1 extensions */ |
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) } |
||||
.debug_sfnames 0 : { *(.debug_sfnames) } |
||||
/* DWARF 1.1 and DWARF 2 */ |
||||
.debug_aranges 0 : { *(.debug_aranges) } |
||||
.debug_pubnames 0 : { *(.debug_pubnames) } |
||||
/* DWARF 2 */ |
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } |
||||
.debug_abbrev 0 : { *(.debug_abbrev) } |
||||
.debug_line 0 : { *(.debug_line) } |
||||
.debug_frame 0 : { *(.debug_frame) } |
||||
.debug_str 0 : { *(.debug_str) } |
||||
.debug_loc 0 : { *(.debug_loc) } |
||||
.debug_macinfo 0 : { *(.debug_macinfo) } |
||||
/* SGI/MIPS DWARF 2 extensions */ |
||||
.debug_weaknames 0 : { *(.debug_weaknames) } |
||||
.debug_funcnames 0 : { *(.debug_funcnames) } |
||||
.debug_typenames 0 : { *(.debug_typenames) } |
||||
.debug_varnames 0 : { *(.debug_varnames) } |
||||
} |
@ -0,0 +1,15 @@
|
||||
/* |
||||
Default linker script for STM32F051R8T6 64k 8k |
||||
Copyright RAISONANCE S.A.S. 2007 |
||||
|
||||
!!! This file is automatically generated by RIDE !!! |
||||
Do not modify it, as it will be erased at every link. |
||||
You can use, copy and distribute this file freely, but without any waranty. |
||||
*/ |
||||
|
||||
/* include the memory spaces definitions sub-script */ |
||||
INCLUDE "stm32f0discovery_def.ld" |
||||
|
||||
/* include the sections management sub-script for FLASH mode */ |
||||
INCLUDE "sections_flash.ld" |
||||
|
@ -0,0 +1,20 @@
|
||||
/* |
||||
Linker subscript for STM32F051 definitions with 64K Flash and 8K RAM |
||||
Copyright RAISONANCE 2007 |
||||
!!! This file is automatically generated by RIDE !!! |
||||
Do not modify it, as it will be erased at every link. |
||||
You can use, copy and distribute this file freely, but without any warranty. |
||||
*/ |
||||
|
||||
/* Memory Spaces Definitions */ |
||||
|
||||
ENTRY(Reset_Handler) |
||||
|
||||
MEMORY |
||||
{ |
||||
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 64K |
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K |
||||
} |
||||
|
||||
/* highest address of the user mode stack */ |
||||
_estack = 0x20002000; |
Loading…
Reference in new issue