diff --git a/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/mbed_overrides.c b/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/mbed_overrides.c index af1e63fbe4..d98873577d 100644 --- a/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/mbed_overrides.c +++ b/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/mbed_overrides.c @@ -16,14 +16,6 @@ #include "analogin_api.h" -// NOTE: Ensurce mbed_sdk_init() will get called before C++ global object constructor. -#if defined(__CC_ARM) || defined(__GNUC__) -void mbed_sdk_init_forced(void) __attribute__((constructor(101))); -#elif defined(__ICCARM__) - // FIXME: How to achieve it in IAR? -#endif - - void mbed_sdk_init(void) { // NOTE: Support singleton semantics to be called from other init functions @@ -75,8 +67,3 @@ void mbed_sdk_init(void) /* Lock protected registers */ SYS_LockReg(); } - -void mbed_sdk_init_forced(void) -{ - mbed_sdk_init(); -} diff --git a/targets/TARGET_NUVOTON/TARGET_M451/device/startup_M451Series.c b/targets/TARGET_NUVOTON/TARGET_M451/device/startup_M451Series.c index 96d73c12b7..a7852ec676 100644 --- a/targets/TARGET_NUVOTON/TARGET_M451/device/startup_M451Series.c +++ b/targets/TARGET_NUVOTON/TARGET_M451/device/startup_M451Series.c @@ -61,12 +61,11 @@ extern uint32_t __bss_start__; extern uint32_t __bss_end__; extern void uvisor_init(void); -//#if defined(TOOLCHAIN_GCC_ARM) -//extern void _start(void); -//#endif -extern void software_init_hook(void) __attribute__((weak)); -extern void __libc_init_array(void); -extern int main(void); +#if defined(TOOLCHAIN_GCC_ARM) +extern void _start(void); +#else +#error("For GCC toolchain, only support GNU ARM Embedded") +#endif #endif /* Default empty handler */ @@ -307,19 +306,8 @@ void Reset_Handler(void) } } - //uvisor_init(); + _start(); - if (software_init_hook) { - /** - * Give control to the RTOS via software_init_hook() which will also call __libc_init_array(). - * Assume software_init_hook() is defined in libraries/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h. - */ - software_init_hook(); - } - else { - __libc_init_array(); - main(); - } #endif /* Infinite loop */ diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/mbed_overrides.c b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/mbed_overrides.c index 3316802238..143d0e8a74 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/mbed_overrides.c +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/mbed_overrides.c @@ -17,13 +17,6 @@ #include "cmsis.h" #include "analogin_api.h" -// NOTE: Ensurce mbed_sdk_init() will get called before C++ global object constructor. -#if defined(__CC_ARM) || defined(__GNUC__) -void mbed_sdk_init_forced(void) __attribute__((constructor(101))); -#elif defined(__ICCARM__) - // FIXME: How to achieve it in IAR? -#endif - void mbed_sdk_init(void) { // NOTE: Support singleton semantics to be called from other init functions @@ -88,8 +81,3 @@ void mbed_sdk_init(void) /* Lock protected registers */ SYS_LockReg(); } - -void mbed_sdk_init_forced(void) -{ - mbed_sdk_init(); -} diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/device/startup_NUC472_442.c b/targets/TARGET_NUVOTON/TARGET_NUC472/device/startup_NUC472_442.c index 78c2312785..a73f8f2ecb 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/device/startup_NUC472_442.c +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/device/startup_NUC472_442.c @@ -63,12 +63,11 @@ extern uint32_t __bss_extern_start__ WEAK; extern uint32_t __bss_extern_end__ WEAK; extern void uvisor_init(void); -//#if defined(TOOLCHAIN_GCC_ARM) -//extern void _start(void); -//#endif -extern void software_init_hook(void) __attribute__((weak)); -extern void __libc_init_array(void); -extern int main(void); +#if defined(TOOLCHAIN_GCC_ARM) +extern void _start(void); +#else +#error("For GCC toolchain, only support GNU ARM Embedded") +#endif #endif /* Default empty handler */ @@ -476,19 +475,7 @@ void Reset_Handler(void) } } - //uvisor_init(); - - if (software_init_hook) { - /** - * Give control to the RTOS via software_init_hook() which will also call __libc_init_array(). - * Assume software_init_hook() is defined in libraries/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h. - */ - software_init_hook(); - } - else { - __libc_init_array(); - main(); - } + _start(); #endif /* Infinite loop */