Files @ f602474ad6c6
Branch filter:

Location: therm-ng/ldscripts/STM32F302K8_FLASH.ld - annotation

ethanzonca
Initial work on max31856 driver, etc
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
/*
*****************************************************************************
**
**  File        : stm32_flash.ld
**
**  Abstract    : Linker script for STM32F302K8 Device with
**                64KByte FLASH, 16KByte RAM
**
**                Set heap size, stack size and stack location according
**                to application requirements.
**
**                Set memory bank area and size if external memory is used.
**
**  Target      : STMicroelectronics STM32
**
**  Environment : Atollic TrueSTUDIO(R)
**
**  Distribution: The file is distributed “as is,” without any warranty
**                of any kind.
**
**  (c)Copyright Atollic AB.
**  You may use this file as-is or modify it according to the needs of your
**  project. This file may only be built (assembled or compiled and linked)
**  using the Atollic TrueSTUDIO(R) product. The use of this file together
**  with other tools than Atollic TrueSTUDIO(R) is not permitted.
**
*****************************************************************************
*/

/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x20004000;    /* end of RAM */

/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 63K
EEPROM (xrw)    : ORIGIN = 0x800FC00, LENGTH = 1K
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 16K
}

/* Define output sections */
SECTIONS
{
  /* The startup code goes first into FLASH */
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */
    . = ALIGN(4);
  } >FLASH

  /* The program code and other data goes into FLASH */
  .text :
  {
    . = ALIGN(4);
    *(.text)           /* .text sections (code) */
    *(.text*)          /* .text* sections (code) */
    *(.glue_7)         /* glue arm to thumb code */
    *(.glue_7t)        /* glue thumb to arm code */
    *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        /* define a global symbols at end of code */
  } >FLASH

  /* Constant data goes into FLASH */
  .rodata :
  {
    . = ALIGN(4);
    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
    . = ALIGN(4);
  } >FLASH

  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
  .ARM : {
    __exidx_start = .;
    *(.ARM.exidx*)
    __exidx_end = .;
  } >FLASH

  .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 (*(SORT(.fini_array.*)))
    KEEP (*(.fini_array*))
    PROVIDE_HIDDEN (__fini_array_end = .);
  } >FLASH

  /* used by the startup to initialize data */
  _sidata = LOADADDR(.data);

  /* Initialized data sections goes into RAM, load LMA copy after code */
  .data : 
  {
    . = ALIGN(4);
    _sdata = .;        /* create a global symbol at data start */
    *(.data)           /* .data sections */
    *(.data*)          /* .data* sections */

    . = ALIGN(4);
    _edata = .;        /* define a global symbol at data end */
  } >RAM AT> FLASH

  
  /* Uninitialized data section */
  . = ALIGN(4);
  .bss :
  {
    /* This is used by the startup in order to initialize the .bss secion */
    _sbss = .;         /* define a global symbol at bss start */
    __bss_start__ = _sbss;
    *(.bss)
    *(.bss*)
    *(COMMON)

    . = ALIGN(4);
    _ebss = .;         /* define a global symbol at bss end */
    __bss_end__ = _ebss;
  } >RAM

  /* User_heap_stack section, used to check that there is enough RAM left */
  ._user_heap_stack :
  {
    . = ALIGN(4);
    PROVIDE ( end = . );
    PROVIDE ( _end = . );
    . = . + _Min_Heap_Size;
    . = . + _Min_Stack_Size;
    . = ALIGN(4);
  } >RAM

    /* EMZ: EEPROM emulation data storage */
  .eeprom :
  {
  	. = ALIGN(4);
  		*(.eeprom)
  	. = ALIGN(4);
  } >EEPROM

  /* Remove information from the standard libraries */
  /DISCARD/ :
  {
    libc.a ( * )
    libm.a ( * )
    libgcc.a ( * )
  }

  .ARM.attributes 0 : { *(.ARM.attributes) }
}