diff --git a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_MICRO/M2351.sct b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_MICRO/M2351.sct index 3ffe94b48f..f78f2487f6 100644 --- a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_MICRO/M2351.sct +++ b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_MICRO/M2351.sct @@ -12,33 +12,33 @@ */ #ifndef MBED_ROM_SIZE_S -#define MBED_ROM_SIZE_S (0x40000) +#define MBED_ROM_SIZE_S (0x40000) #endif #ifndef MBED_RAM_SIZE_S -#define MBED_RAM_SIZE_S (0x8000) +#define MBED_RAM_SIZE_S (0x8000) #endif #ifndef NU_TZ_NSC_SIZE -#define NU_TZ_NSC_SIZE (0x1000) +#define NU_TZ_NSC_SIZE (0x1000) #endif #if defined(DOMAIN_NS) && DOMAIN_NS #ifndef MBED_APP_START -#define MBED_APP_START (0x10000000 + MBED_ROM_START + MBED_ROM_SIZE_S) +#define MBED_APP_START (0x10000000 + MBED_ROM_START + MBED_ROM_SIZE_S) #endif #ifndef MBED_APP_SIZE -#define MBED_APP_SIZE (MBED_ROM_SIZE - MBED_ROM_SIZE_S) +#define MBED_APP_SIZE (MBED_ROM_SIZE - MBED_ROM_SIZE_S) #endif #ifndef MBED_RAM_APP_START -#define MBED_RAM_APP_START (0x10000000 + MBED_RAM_START + MBED_RAM_SIZE_S) +#define MBED_RAM_APP_START (0x10000000 + MBED_RAM_START + MBED_RAM_SIZE_S) #endif #ifndef MBED_RAM_APP_SIZE -#define MBED_RAM_APP_SIZE (MBED_RAM_SIZE - MBED_RAM_SIZE_S) +#define MBED_RAM_APP_SIZE (MBED_RAM_SIZE - MBED_RAM_SIZE_S) #endif #else @@ -68,14 +68,14 @@ * 3. Greentea NVSTORE uses last 2 sectors or 4KiB x 2 for its test. Avoid this range. * 4. NSC region size defaults to 4KiB if not defined. */ -#define NU_TZ_NSC_START (MBED_APP_START + MBED_APP_SIZE - 0x2000 - NU_TZ_NSC_SIZE) +#define NU_TZ_NSC_START (MBED_APP_START + MBED_APP_SIZE - 0x2000 - NU_TZ_NSC_SIZE) /* Initial/ISR stack size */ #if (! defined(NU_INITIAL_STACK_SIZE)) #if defined(DOMAIN_NS) && DOMAIN_NS -#define NU_INITIAL_STACK_SIZE 0x800 +#define NU_INITIAL_STACK_SIZE 0x800 #else -#define NU_INITIAL_STACK_SIZE 0x800 +#define NU_INITIAL_STACK_SIZE 0x800 #endif #endif diff --git a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_STD/M2351.sct b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_STD/M2351.sct index 36c604fbbe..f78f2487f6 100644 --- a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_STD/M2351.sct +++ b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_ARM_STD/M2351.sct @@ -12,33 +12,33 @@ */ #ifndef MBED_ROM_SIZE_S -#define MBED_ROM_SIZE_S (0x40000) +#define MBED_ROM_SIZE_S (0x40000) #endif #ifndef MBED_RAM_SIZE_S -#define MBED_RAM_SIZE_S (0x8000) +#define MBED_RAM_SIZE_S (0x8000) #endif #ifndef NU_TZ_NSC_SIZE -#define NU_TZ_NSC_SIZE (0x1000) +#define NU_TZ_NSC_SIZE (0x1000) #endif #if defined(DOMAIN_NS) && DOMAIN_NS #ifndef MBED_APP_START -#define MBED_APP_START (0x10000000 + MBED_ROM_START + MBED_ROM_SIZE_S) +#define MBED_APP_START (0x10000000 + MBED_ROM_START + MBED_ROM_SIZE_S) #endif #ifndef MBED_APP_SIZE -#define MBED_APP_SIZE (MBED_ROM_SIZE - MBED_ROM_SIZE_S) +#define MBED_APP_SIZE (MBED_ROM_SIZE - MBED_ROM_SIZE_S) #endif #ifndef MBED_RAM_APP_START -#define MBED_RAM_APP_START (0x10000000 + MBED_RAM_START + MBED_RAM_SIZE_S) +#define MBED_RAM_APP_START (0x10000000 + MBED_RAM_START + MBED_RAM_SIZE_S) #endif #ifndef MBED_RAM_APP_SIZE -#define MBED_RAM_APP_SIZE (MBED_RAM_SIZE - MBED_RAM_SIZE_S) +#define MBED_RAM_APP_SIZE (MBED_RAM_SIZE - MBED_RAM_SIZE_S) #endif #else @@ -68,14 +68,14 @@ * 3. Greentea NVSTORE uses last 2 sectors or 4KiB x 2 for its test. Avoid this range. * 4. NSC region size defaults to 4KiB if not defined. */ -#define NU_TZ_NSC_START (MBED_APP_START + MBED_APP_SIZE - 0x2000 - NU_TZ_NSC_SIZE) +#define NU_TZ_NSC_START (MBED_APP_START + MBED_APP_SIZE - 0x2000 - NU_TZ_NSC_SIZE) /* Initial/ISR stack size */ #if (! defined(NU_INITIAL_STACK_SIZE)) #if defined(DOMAIN_NS) && DOMAIN_NS -#define NU_INITIAL_STACK_SIZE 0x800 +#define NU_INITIAL_STACK_SIZE 0x800 #else -#define NU_INITIAL_STACK_SIZE 0x800 +#define NU_INITIAL_STACK_SIZE 0x800 #endif #endif diff --git a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_GCC_ARM/M2351.ld b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_GCC_ARM/M2351.ld index 9a3289953b..21dd0c2fda 100644 --- a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_GCC_ARM/M2351.ld +++ b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_GCC_ARM/M2351.ld @@ -79,9 +79,6 @@ StackSize = 0x800; #ifndef NU_TZ_NSC_START #define NU_TZ_NSC_START (MBED_APP_START + MBED_APP_SIZE - 0x2000 - NU_TZ_NSC_SIZE) #endif -#ifndef NU_TZ_NSC_SIZE -#define NU_TZ_NSC_SIZE 0x1000 -#endif #if defined(DOMAIN_NS) && DOMAIN_NS diff --git a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_IAR/M2351.icf b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_IAR/M2351.icf index 74b86ac63f..059f2f4388 100644 --- a/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_IAR/M2351.icf +++ b/targets/TARGET_NUVOTON/TARGET_M2351/device/TOOLCHAIN_IAR/M2351.icf @@ -18,21 +18,28 @@ if (! isdefinedsymbol(NU_TZ_NSC_SIZE)) { if (isdefinedsymbol(DOMAIN_NS)) { if (! isdefinedsymbol(MBED_APP_START)) { - define symbol MBED_APP_START = 0x10040000; + define symbol MBED_APP_START = (0x10000000 + MBED_ROM_START + MBED_ROM_SIZE_S); } if (! isdefinedsymbol(MBED_APP_SIZE)) { - define symbol MBED_APP_SIZE = 0x40000; + define symbol MBED_APP_SIZE = (MBED_ROM_SIZE - MBED_ROM_SIZE_S); } + if (! isdefinedsymbol(MBED_RAM_APP_START)) { + define symbol MBED_RAM_APP_START = (0x10000000 + MBED_RAM_START + MBED_RAM_SIZE_S); + } + + if (! isdefinedsymbol(MBED_RAM_APP_SIZE)) { + define symbol MBED_RAM_APP_SIZE = (MBED_RAM_SIZE - MBED_RAM_SIZE_S); + } /*-Specials-*/ define symbol __ICFEDIT_intvec_start__ = MBED_APP_START; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = MBED_APP_START; define symbol __ICFEDIT_region_ROM_end__ = MBED_APP_START + MBED_APP_SIZE - 1; - define symbol __ICFEDIT_region_IRAM_start__ = MBED_RAM_START + MBED_RAM_SIZE_S; - define symbol __ICFEDIT_region_IRAM_end__ = MBED_RAM_START + MBED_RAM_SIZE - 1; + define symbol __ICFEDIT_region_IRAM_start__ = MBED_RAM_APP_START; + define symbol __ICFEDIT_region_IRAM_end__ = MBED_RAM_APP_START + MBED_RAM_APP_SIZE - 1; /*-Sizes-*/ define symbol __ICFEDIT_size_cstack__ = 0x800; @@ -41,11 +48,19 @@ if (isdefinedsymbol(DOMAIN_NS)) { } else { if (! isdefinedsymbol(MBED_APP_START)) { - define symbol MBED_APP_START = 0x0; + define symbol MBED_APP_START = MBED_ROM_START; } if (! isdefinedsymbol(MBED_APP_SIZE)) { - define symbol MBED_APP_SIZE = 0x40000; + define symbol MBED_APP_SIZE = MBED_ROM_SIZE_S; + } + + if (! isdefinedsymbol(MBED_RAM_APP_START)) { + define symbol MBED_RAM_APP_START = MBED_RAM_START; + } + + if (! isdefinedsymbol(MBED_RAM_APP_SIZE)) { + define symbol MBED_RAM_APP_SIZE = MBED_RAM_SIZE_S; } /* Requirements for NSC location @@ -68,8 +83,8 @@ if (isdefinedsymbol(DOMAIN_NS)) { define symbol __ICFEDIT_region_ROM_end__ = MBED_APP_START + MBED_APP_SIZE - 1; define symbol __ICFEDIT_region_NSCROM_start__ = NU_TZ_NSC_START; define symbol __ICFEDIT_region_NSCROM_end__ = NU_TZ_NSC_START + NU_TZ_NSC_SIZE - 1; - define symbol __ICFEDIT_region_IRAM_start__ = MBED_RAM_START; - define symbol __ICFEDIT_region_IRAM_end__ = MBED_RAM_START + MBED_RAM_SIZE_S - 1; + define symbol __ICFEDIT_region_IRAM_start__ = MBED_RAM_APP_START; + define symbol __ICFEDIT_region_IRAM_end__ = MBED_RAM_APP_START + MBED_RAM_APP_SIZE - 1; /*-Sizes-*/ define symbol __ICFEDIT_size_cstack__ = 0x800; diff --git a/targets/TARGET_NUVOTON/TARGET_M2351/flash_api.c b/targets/TARGET_NUVOTON/TARGET_M2351/flash_api.c index 0e489aacd1..a3e52c5c8d 100644 --- a/targets/TARGET_NUVOTON/TARGET_M2351/flash_api.c +++ b/targets/TARGET_NUVOTON/TARGET_M2351/flash_api.c @@ -25,8 +25,12 @@ #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#ifndef MBED_ROM_SIZE_S +#define MBED_ROM_SIZE_S (0x40000) +#endif + #define NU_SECURE_FLASH_START (MBED_ROM_START) -#define NU_SECURE_FLASH_SIZE (MBED_ROM_SIZE / 2) +#define NU_SECURE_FLASH_SIZE (MBED_ROM_SIZE_S) // This is a flash algo binary blob. It is PIC (position independent code) that should be stored in RAM // NOTE: On ARMv7-M/ARMv8-M, instruction fetches are always little-endian.