Newer
Older
mbed-os / targets / TARGET_Silicon_Labs / TARGET_EFM32 / TARGET_EFM32GG / device / TARGET_1024K / TOOLCHAIN_ARM_STD / efm32gg.sct
@Harrison Mutai Harrison Mutai on 2 Mar 2021 1 KB Add bare metal support to EFM32 targets
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m3
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

#if !defined(MBED_APP_START)
  #define MBED_APP_START 0x00000000
#endif

#if !defined(MBED_APP_SIZE)
  #define MBED_APP_SIZE 0x00100000
#endif

#if !defined(MBED_RAM_START)
  #define MBED_RAM_START 0x20000000
#endif

#if !defined(MBED_RAM_SIZE)
#define MBED_RAM_SIZE 0x20000
#endif

#if !defined(MBED_CONF_TARGET_BOOT_STACK_SIZE)
#  if defined(MBED_BOOT_STACK_SIZE)
#    define MBED_CONF_TARGET_BOOT_STACK_SIZE MBED_BOOT_STACK_SIZE
#  else
#    define MBED_CONF_TARGET_BOOT_STACK_SIZE 0x400
#  endif
#endif

#define Vector_Size 0xE0
#define Stack_Size MBED_CONF_TARGET_BOOT_STACK_SIZE

#define MBED_IRAM1_SIZE   (MBED_RAM_SIZE - Vector_Size - Stack_Size)
#define MBED_IRAM1_START  (MBED_RAM_START + Vector_Size)
#define RAM_FIXED_SIZE    (Vector_Size + Stack_Size)

LR_IROM1 MBED_APP_START MBED_APP_SIZE  {    ; load region size_region
  ER_IROM1 MBED_APP_START MBED_APP_SIZE  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 MBED_IRAM1_START MBED_IRAM1_SIZE {  ; RW data
   .ANY (+RW +ZI)
  }
  ARM_LIB_HEAP AlignExpr(+0, 16)  EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_IRAM1_START)) { ; heap growing up
  }
  ARM_LIB_STACK (MBED_RAM_START + MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack
  }
}