Newer
Older
mbed-os / targets / TARGET_Maxim / TARGET_MAX32625 / device / TOOLCHAIN_ARM_STD / TARGET_MAX32625_NO_BOOT / MAX32625.sct
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; MAX32625
; 512KB FLASH (0x80000) @ 0x000000000
; 160KB RAM (0x28000) @ 0x20000000

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

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

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

#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x20000000
#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 0x800
#  endif
#endif

; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110)
#define VECTOR_SIZE 0x110
#define Stack_Size MBED_CONF_TARGET_BOOT_STACK_SIZE
#define RAM_FIXED_SIZE  (Stack_Size + VECTOR_SIZE)

#define MBED_RAM1_START (MBED_RAM_START+VECTOR_SIZE)
#define MBED_RAM1_SIZE (MBED_RAM_SIZE-RAM_FIXED_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)
    }

    ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110)
    RW_IRAM1 MBED_RAM1_START MBED_RAM1_SIZE  {  ; RW data
        .ANY (+RW +ZI)
    }
    ARM_LIB_HEAP AlignExpr(+0, 16) EMPTY (MBED_RAM_START + MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16))){ ; heap region growing up
    }
    ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down
    }
}