123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- /*
- * STM32F030 Linkerscript
- * Copyright (C) 2019 Stefan Strobel <stefan.strobel@shimatta.net>
- *
- * This file is part of 'STM32F0 code template'.
- *
- * It is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 2 of the License.
- *
- * This code 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this template. If not, see <http://www.gnu.org/licenses/>.
- * --------------------------------------------------------------------
- * FLASH: 16K
- * RAM: 4K
- */
- /* USER PARAMETERS */
- __ld_stack_size = 0x0400;
- __ld_heap_size = 0x0200;
- /* END OF USER PARAMETERS */
- ENTRY(Reset_Handler)
- __ld_top_of_stack = 0x20001000; /* One byte above the end of the SRAM. Stack is pre-decrewmenting, so this is okay */
- /* Available memory areas */
- MEMORY
- {
- FLASH (xr) : ORIGIN = 0x08000000, LENGTH = 16K
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K
- }
- SECTIONS
- {
- .vectors :
- {
- . = ALIGN(4);
- KEEP(*(.vectors))
- . = ALIGN(4);
- } >FLASH
-
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
- KEEP(*(.init)) /* Constructors */
- KEEP(*(.fini)) /* Destructors */
- } >FLASH
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } >FLASH
-
- .ARM :
- {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- /* Constructor/Destructor tables */
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
-
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
-
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(.fini_array*))
- KEEP (*(SORT(.fini_array.*)))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* Initialized Data */
- __ld_load_data = LOADADDR(.data);
- .data :
- {
- . = ALIGN(4);
- __ld_sdata = .;
- *(.data)
- *(.data*)
- . = ALIGN(4);
- __ld_edata = .;
- } >RAM AT> FLASH
-
- /* Uninitialized static data */
- .bss :
- {
- . = ALIGN(4);
- __ld_sbss = .;
- *(.bss)
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __ld_ebss = .;
- } >RAM
- .heap_stack (NOLOAD) :
- {
- . = ALIGN(4);
- __ld_sheap = .;
- . = . + __ld_heap_size;
- __ld_eheap = .;
- . = . + __ld_stack_size;
- . = ALIGN(4);
- } >RAM
- }
|