From 3d1051dbbe5a61535d33afb6096e556da07e13af Mon Sep 17 00:00:00 2001 From: harmut01 Date: Wed, 24 Mar 2021 14:53:17 +0000 Subject: [PATCH 1/4] Maxim: Add bare metal support to targets Add heap load region to scatter file and update `targets.json` to provide baremetal support to the following targets: SDT32620B, SDT32625B, MAX32620FTHR, MAX32625MBED, MAX32625PICO, and MAX32630FTHR. --- .../device/TOOLCHAIN_ARM_STD/MAX32620.sct | 31 ++++++++++++++----- .../TARGET_MAX32625_BOOT/MAX32625.sct | 19 ++++++++++-- .../TARGET_MAX32625_NO_BOOT/MAX32625.sct | 29 ++++++++++++++--- .../device/TOOLCHAIN_ARM_STD/MAX3263x.sct | 30 +++++++++++++++--- targets/targets.json | 14 +++++++-- 5 files changed, 103 insertions(+), 20 deletions(-) diff --git a/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct b/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct index 1e008d0e0f..1d961e5ebf 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct @@ -4,8 +4,22 @@ ; 256KB RAM (0x40000) @ 0x20000000 +#if !defined(MBED_APP_START) + #define MBED_APP_START 0x000000000 +#endif + +#if !defined(MBED_APP_SIZE) + #define MBED_APP_SIZE 0x200000 +#endif ; MAX32620: 2MB FLASH (0x200000) + 256KB RAM (0x40000) +#if !defined(MBED_RAM_SIZE) +#define MBED_RAM_SIZE 0x40000 +#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) @@ -15,20 +29,23 @@ # endif #endif +; [RAM] Vector table dynamic copy: 65 vectors * 4 bytes = 260 (0x104) + 4 +; for 8 byte alignment +#define VECTOR_SIZE 0x108 #define Stack_Size MBED_CONF_TARGET_BOOT_STACK_SIZE +#define RAM_FIXED_SIZE (Stack_Size + VECTOR_SIZE) -LR_IROM1 0x00000000 0x200000 { ; load region size_region - ER_IROM1 0x00000000 0x200000 { ; load address = execution address +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: 65 vectors * 4 bytes = 260 (0x104) + 4 - ; for 8 byte alignment - RW_IRAM1 (0x20000000+0x108) (0x40000-0x108-Stack_Size) { ; RW data + RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data .ANY (+RW +ZI) } - ARM_LIB_STACK (0x20000000+0x40000) EMPTY -Stack_Size { ; stack + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM_START)){ ; heap region growing up + } + ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } } diff --git a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct index 7f99dfe764..ba7ed27e93 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct @@ -11,6 +11,14 @@ #define MBED_APP_SIZE 0x00070000 #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 @@ -19,7 +27,10 @@ # 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) LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region ER_IROM1 MBED_APP_START MBED_APP_SIZE { ; load address = execution address @@ -28,10 +39,12 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region .ANY (+RO) } - ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110) - RW_IRAM1 (0x20000000+0x110) (0x28000-0x110-Stack_Size) { ; RW data + RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data .ANY (+RW +ZI) } - ARM_LIB_STACK (0x20000000+0x28000) EMPTY -Stack_Size { ; stack + + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM_START)){ ; heap region growing up + } + ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } } diff --git a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct index cadad8f9cd..d94fa6ddba 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct @@ -3,6 +3,22 @@ ; 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 @@ -11,19 +27,24 @@ # 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) -LR_IROM1 0x000000000 0x80000 { ; load region size_region - ER_IROM1 0x000000000 0x80000 { ; load address = execution address +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 (0x20000000+0x110) (0x28000-0x110-Stack_Size) { ; RW data + RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data .ANY (+RW +ZI) } - ARM_LIB_STACK (0x20000000+0x28000) EMPTY -Stack_Size { ; stack + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM_START)){ ; heap region growing up + } + ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } } diff --git a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct index 3a00e82466..60fdf76245 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct @@ -3,6 +3,23 @@ ; 2MB FLASH (0x200000) @ 0x000000000 ; 512KB RAM (0x80000) @ 0x20000000 +#if !defined(MBED_APP_START) + #define MBED_APP_START 0x000000000 +#endif + +#if !defined(MBED_APP_SIZE) + #define MBED_APP_SIZE 0x200000 +#endif + +; MAX32620: 2MB FLASH (0x200000) + 256KB RAM (0x40000) +#if !defined(MBED_RAM_SIZE) +#define MBED_RAM_SIZE 0x80000 +#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 @@ -11,19 +28,24 @@ # 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) -LR_IROM1 0x000000000 0x200000 { ; load region size_region - ER_IROM1 0x000000000 0x200000 { ; load address = execution address +LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region + ER_IROM1 MBED_APP_START MBED_APP_START { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110) - RW_IRAM1 (0x20000000+0x110) (0x80000-0x110-Stack_Size) { ; RW data + RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_START-RAM_FIXED_SIZE) { ; RW data .ANY (+RW +ZI) } - ARM_LIB_STACK (0x20000000+0x80000) EMPTY -Stack_Size { ; stack + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM_START)){ ; heap region growing up + } + ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } } diff --git a/targets/targets.json b/targets/targets.json index ef62982274..6a60dbd8dc 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -5184,7 +5184,6 @@ ], "supported_toolchains": [ "GCC_ARM", - "IAR", "ARM" ], "device_has": [ @@ -5206,7 +5205,18 @@ ], "release_versions": [ "5" - ] + ], + "supported_application_profiles" : ["full", "bare-metal"], + "supported_c_libs": { + "arm": [ + "std", + "small" + ], + "gcc_arm": [ + "std", + "small" + ] + } }, "MAX32625_BASE": { "inherits": [ From 3d66447302073664ef3c4050ccde18e68ad7ac18 Mon Sep 17 00:00:00 2001 From: harmut01 Date: Wed, 31 Mar 2021 14:23:32 +0100 Subject: [PATCH 2/4] Refactor RW_IRAM1 load region definition --- .../TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct index 60fdf76245..d6ea9e54dc 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct @@ -41,7 +41,7 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region } ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110) - RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_START-RAM_FIXED_SIZE) { ; RW data + RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_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_RAM_START)){ ; heap region growing up From 18d84999797fbdff9b16f1e2c390548d1131757d Mon Sep 17 00:00:00 2001 From: harmut01 Date: Wed, 31 Mar 2021 16:27:28 +0100 Subject: [PATCH 3/4] Refactor ER_IROM1 load region defintion --- .../TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct index d6ea9e54dc..b8258fcffc 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct @@ -34,7 +34,7 @@ #define RAM_FIXED_SIZE (Stack_Size + VECTOR_SIZE) LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region - ER_IROM1 MBED_APP_START MBED_APP_START { ; load address = execution address + ER_IROM1 MBED_APP_START MBED_APP_SIZE { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) From 1c671c43ffc209874f784349b50d9676abf928ab Mon Sep 17 00:00:00 2001 From: harmut01 Date: Wed, 7 Apr 2021 10:57:35 +0100 Subject: [PATCH 4/4] Refactor definition of heap load region start --- .../TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct | 7 +++++-- .../TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct | 7 +++++-- .../TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct | 7 +++++-- .../TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct b/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct index 1d961e5ebf..3ee0dabd9e 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32620C/device/TOOLCHAIN_ARM_STD/MAX32620.sct @@ -35,16 +35,19 @@ #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) } - RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data + RW_IRAM1 MBED_RAM1_START MBED_RAM1_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_RAM_START)){ ; heap region growing up + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM1_START)){ ; heap region growing up } ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } diff --git a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct index ba7ed27e93..386dd7d32d 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_BOOT/MAX32625.sct @@ -32,6 +32,9 @@ #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) @@ -39,11 +42,11 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region .ANY (+RO) } - RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data + RW_IRAM1 MBED_RAM1_START MBED_RAM1_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_RAM_START)){ ; heap region growing up + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM1_START)){ ; heap region growing up } ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } diff --git a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct index d94fa6ddba..8b1b8ec152 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32625/device/TOOLCHAIN_ARM_STD/TARGET_MAX32625_NO_BOOT/MAX32625.sct @@ -32,6 +32,9 @@ #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) @@ -40,10 +43,10 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region } ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110) - RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data + RW_IRAM1 MBED_RAM1_START MBED_RAM1_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_RAM_START)){ ; heap region growing up + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM1_START)){ ; heap region growing up } ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down } diff --git a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct index b8258fcffc..667e904466 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct +++ b/targets/TARGET_Maxim/TARGET_MAX32630/device/TOOLCHAIN_ARM_STD/MAX3263x.sct @@ -33,6 +33,9 @@ #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) @@ -41,10 +44,10 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region } ; [RAM] Vector table dynamic copy: 68 vectors * 4 bytes = 272 (0x110) - RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-RAM_FIXED_SIZE) { ; RW data + RW_IRAM1 MBED_RAM1_START MBED_RAM1_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_RAM_START)){ ; heap region growing up + ARM_LIB_HEAP AlignExpr(+0, +16) EMPTY (MBED_RAM_SIZE - RAM_FIXED_SIZE - (AlignExpr(ImageLimit(RW_IRAM1), 16) - MBED_RAM1_START)){ ; heap region growing up } ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -Stack_Size { ; stack region growing down }