mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Tue Nov 25 11:45:06 2014 +0000
Revision:
416:fc5dba704912
Parent:
408:4dd1c1251ba6
Synchronized with git revision 4e89d3c771e1b028648a0aa557a2a6cbc5a5b1ac

Full URL: https://github.com/mbedmicro/mbed/commit/4e89d3c771e1b028648a0aa557a2a6cbc5a5b1ac/

Targets: ARCH_MAX & DISCO_F407VG - Add SystemCoreClockUpdate and HAL_Init to mbed_sdk_init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 408:4dd1c1251ba6 1 /*
mbed_official 408:4dd1c1251ba6 2 *****************************************************************************
mbed_official 408:4dd1c1251ba6 3 **
mbed_official 408:4dd1c1251ba6 4 ** File : STM32L152XE_FLASH.ld
mbed_official 408:4dd1c1251ba6 5 **
mbed_official 408:4dd1c1251ba6 6 ** Abstract : Linker script for STM32L152XE Device with
mbed_official 408:4dd1c1251ba6 7 ** 512KByte FLASH, 80KByte RAM
mbed_official 408:4dd1c1251ba6 8 **
mbed_official 408:4dd1c1251ba6 9 ** Set heap size, stack size and stack location according
mbed_official 408:4dd1c1251ba6 10 ** to application requirements.
mbed_official 408:4dd1c1251ba6 11 **
mbed_official 408:4dd1c1251ba6 12 ** Set memory bank area and size if external memory is used.
mbed_official 408:4dd1c1251ba6 13 **
mbed_official 408:4dd1c1251ba6 14 ** Target : STMicroelectronics STM32
mbed_official 408:4dd1c1251ba6 15 **
mbed_official 408:4dd1c1251ba6 16 ** Environment : Atollic TrueSTUDIO(R)
mbed_official 408:4dd1c1251ba6 17 **
mbed_official 408:4dd1c1251ba6 18 ** Distribution: The file is distributed “as is,” without any warranty
mbed_official 408:4dd1c1251ba6 19 ** of any kind.
mbed_official 408:4dd1c1251ba6 20 **
mbed_official 408:4dd1c1251ba6 21 ** (c)Copyright Atollic AB.
mbed_official 408:4dd1c1251ba6 22 ** You may use this file as-is or modify it according to the needs of your
mbed_official 408:4dd1c1251ba6 23 ** project. This file may only be built (assembled or compiled and linked)
mbed_official 408:4dd1c1251ba6 24 ** using the Atollic TrueSTUDIO(R) product. The use of this file together
mbed_official 408:4dd1c1251ba6 25 ** with other tools than Atollic TrueSTUDIO(R) is not permitted.
mbed_official 408:4dd1c1251ba6 26 **
mbed_official 408:4dd1c1251ba6 27 *****************************************************************************
mbed_official 408:4dd1c1251ba6 28 */
mbed_official 408:4dd1c1251ba6 29
mbed_official 408:4dd1c1251ba6 30 /* Entry Point */
mbed_official 408:4dd1c1251ba6 31 ENTRY(Reset_Handler)
mbed_official 408:4dd1c1251ba6 32
mbed_official 408:4dd1c1251ba6 33 /* Highest address of the user mode stack */
mbed_official 408:4dd1c1251ba6 34 _estack = 0x20013FFF; /* end of RAM */
mbed_official 408:4dd1c1251ba6 35
mbed_official 408:4dd1c1251ba6 36 /* Generate a link error if heap and stack don't fit into RAM */
mbed_official 408:4dd1c1251ba6 37 _Min_Heap_Size = 0x200; /* required amount of heap */
mbed_official 408:4dd1c1251ba6 38 _Min_Stack_Size = 0x400; /* required amount of stack */
mbed_official 408:4dd1c1251ba6 39
mbed_official 408:4dd1c1251ba6 40 /* Specify the memory areas */
mbed_official 408:4dd1c1251ba6 41 MEMORY
mbed_official 408:4dd1c1251ba6 42 {
mbed_official 408:4dd1c1251ba6 43 FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K
mbed_official 408:4dd1c1251ba6 44 RAM (xrw) : ORIGIN = 0x2000013C, LENGTH = 80K - 0x13C
mbed_official 408:4dd1c1251ba6 45 }
mbed_official 408:4dd1c1251ba6 46
mbed_official 408:4dd1c1251ba6 47 /* Define output sections */
mbed_official 408:4dd1c1251ba6 48 SECTIONS
mbed_official 408:4dd1c1251ba6 49 {
mbed_official 408:4dd1c1251ba6 50 /* The startup code goes first into FLASH */
mbed_official 408:4dd1c1251ba6 51 .isr_vector :
mbed_official 408:4dd1c1251ba6 52 {
mbed_official 408:4dd1c1251ba6 53 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 54 KEEP(*(.isr_vector)) /* Startup code */
mbed_official 408:4dd1c1251ba6 55 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 56 } >FLASH
mbed_official 408:4dd1c1251ba6 57
mbed_official 408:4dd1c1251ba6 58 /* The program code and other data goes into FLASH */
mbed_official 408:4dd1c1251ba6 59 .text :
mbed_official 408:4dd1c1251ba6 60 {
mbed_official 408:4dd1c1251ba6 61 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 62 *(.text) /* .text sections (code) */
mbed_official 408:4dd1c1251ba6 63 *(.text*) /* .text* sections (code) */
mbed_official 408:4dd1c1251ba6 64 *(.glue_7) /* glue arm to thumb code */
mbed_official 408:4dd1c1251ba6 65 *(.glue_7t) /* glue thumb to arm code */
mbed_official 408:4dd1c1251ba6 66 *(.eh_frame)
mbed_official 408:4dd1c1251ba6 67
mbed_official 408:4dd1c1251ba6 68 KEEP (*(.init))
mbed_official 408:4dd1c1251ba6 69 KEEP (*(.fini))
mbed_official 408:4dd1c1251ba6 70
mbed_official 408:4dd1c1251ba6 71 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 72 _etext = .; /* define a global symbols at end of code */
mbed_official 408:4dd1c1251ba6 73 } >FLASH
mbed_official 408:4dd1c1251ba6 74
mbed_official 408:4dd1c1251ba6 75 /* Constant data goes into FLASH */
mbed_official 408:4dd1c1251ba6 76 .rodata :
mbed_official 408:4dd1c1251ba6 77 {
mbed_official 408:4dd1c1251ba6 78 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 79 *(.rodata) /* .rodata sections (constants, strings, etc.) */
mbed_official 408:4dd1c1251ba6 80 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
mbed_official 408:4dd1c1251ba6 81 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 82 } >FLASH
mbed_official 408:4dd1c1251ba6 83
mbed_official 408:4dd1c1251ba6 84 .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
mbed_official 408:4dd1c1251ba6 85 .ARM : {
mbed_official 408:4dd1c1251ba6 86 __exidx_start = .;
mbed_official 408:4dd1c1251ba6 87 *(.ARM.exidx*)
mbed_official 408:4dd1c1251ba6 88 __exidx_end = .;
mbed_official 408:4dd1c1251ba6 89 } >FLASH
mbed_official 408:4dd1c1251ba6 90
mbed_official 408:4dd1c1251ba6 91 .preinit_array :
mbed_official 408:4dd1c1251ba6 92 {
mbed_official 408:4dd1c1251ba6 93 PROVIDE_HIDDEN (__preinit_array_start = .);
mbed_official 408:4dd1c1251ba6 94 KEEP (*(.preinit_array*))
mbed_official 408:4dd1c1251ba6 95 PROVIDE_HIDDEN (__preinit_array_end = .);
mbed_official 408:4dd1c1251ba6 96 } >FLASH
mbed_official 408:4dd1c1251ba6 97 .init_array :
mbed_official 408:4dd1c1251ba6 98 {
mbed_official 408:4dd1c1251ba6 99 PROVIDE_HIDDEN (__init_array_start = .);
mbed_official 408:4dd1c1251ba6 100 KEEP (*(SORT(.init_array.*)))
mbed_official 408:4dd1c1251ba6 101 KEEP (*(.init_array*))
mbed_official 408:4dd1c1251ba6 102 PROVIDE_HIDDEN (__init_array_end = .);
mbed_official 408:4dd1c1251ba6 103 } >FLASH
mbed_official 408:4dd1c1251ba6 104 .fini_array :
mbed_official 408:4dd1c1251ba6 105 {
mbed_official 408:4dd1c1251ba6 106 PROVIDE_HIDDEN (__fini_array_start = .);
mbed_official 408:4dd1c1251ba6 107 KEEP (*(SORT(.fini_array.*)))
mbed_official 408:4dd1c1251ba6 108 KEEP (*(.fini_array*))
mbed_official 408:4dd1c1251ba6 109 PROVIDE_HIDDEN (__fini_array_end = .);
mbed_official 408:4dd1c1251ba6 110 } >FLASH
mbed_official 408:4dd1c1251ba6 111
mbed_official 408:4dd1c1251ba6 112 /* used by the startup to initialize data */
mbed_official 408:4dd1c1251ba6 113 _sidata = LOADADDR(.data);
mbed_official 408:4dd1c1251ba6 114
mbed_official 408:4dd1c1251ba6 115 /* Initialized data sections goes into RAM, load LMA copy after code */
mbed_official 408:4dd1c1251ba6 116 .data :
mbed_official 408:4dd1c1251ba6 117 {
mbed_official 408:4dd1c1251ba6 118 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 119 _sdata = .; /* create a global symbol at data start */
mbed_official 408:4dd1c1251ba6 120 *(.data) /* .data sections */
mbed_official 408:4dd1c1251ba6 121 *(.data*) /* .data* sections */
mbed_official 408:4dd1c1251ba6 122
mbed_official 408:4dd1c1251ba6 123 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 124 _edata = .; /* define a global symbol at data end */
mbed_official 408:4dd1c1251ba6 125 } >RAM AT> FLASH
mbed_official 408:4dd1c1251ba6 126
mbed_official 408:4dd1c1251ba6 127
mbed_official 408:4dd1c1251ba6 128 /* Uninitialized data section */
mbed_official 408:4dd1c1251ba6 129 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 130 .bss :
mbed_official 408:4dd1c1251ba6 131 {
mbed_official 408:4dd1c1251ba6 132 /* This is used by the startup in order to initialize the .bss secion */
mbed_official 408:4dd1c1251ba6 133 _sbss = .; /* define a global symbol at bss start */
mbed_official 408:4dd1c1251ba6 134 __bss_start__ = _sbss;
mbed_official 408:4dd1c1251ba6 135 *(.bss)
mbed_official 408:4dd1c1251ba6 136 *(.bss*)
mbed_official 408:4dd1c1251ba6 137 *(COMMON)
mbed_official 408:4dd1c1251ba6 138
mbed_official 408:4dd1c1251ba6 139 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 140 _ebss = .; /* define a global symbol at bss end */
mbed_official 408:4dd1c1251ba6 141 __bss_end__ = _ebss;
mbed_official 408:4dd1c1251ba6 142 } >RAM
mbed_official 408:4dd1c1251ba6 143
mbed_official 408:4dd1c1251ba6 144 /* User_heap_stack section, used to check that there is enough RAM left */
mbed_official 408:4dd1c1251ba6 145 ._user_heap_stack :
mbed_official 408:4dd1c1251ba6 146 {
mbed_official 408:4dd1c1251ba6 147 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 148 PROVIDE ( end = . );
mbed_official 408:4dd1c1251ba6 149 PROVIDE ( _end = . );
mbed_official 408:4dd1c1251ba6 150 PROVIDE ( __end__ = .);
mbed_official 408:4dd1c1251ba6 151 . = . + _Min_Heap_Size;
mbed_official 408:4dd1c1251ba6 152 . = . + _Min_Stack_Size;
mbed_official 408:4dd1c1251ba6 153 . = ALIGN(4);
mbed_official 408:4dd1c1251ba6 154 } >RAM
mbed_official 408:4dd1c1251ba6 155
mbed_official 408:4dd1c1251ba6 156
mbed_official 408:4dd1c1251ba6 157
mbed_official 408:4dd1c1251ba6 158 /* Remove information from the standard libraries */
mbed_official 408:4dd1c1251ba6 159 /DISCARD/ :
mbed_official 408:4dd1c1251ba6 160 {
mbed_official 408:4dd1c1251ba6 161 libc.a ( * )
mbed_official 408:4dd1c1251ba6 162 libm.a ( * )
mbed_official 408:4dd1c1251ba6 163 libgcc.a ( * )
mbed_official 408:4dd1c1251ba6 164 }
mbed_official 408:4dd1c1251ba6 165
mbed_official 408:4dd1c1251ba6 166 .ARM.attributes 0 : { *(.ARM.attributes) }
mbed_official 408:4dd1c1251ba6 167 }