t

Fork of mbed-dev by mbed official

Revision:
169:9672193075cf
Parent:
168:e84263d55307
Child:
173:7d866c31b3c5
diff -r e84263d55307 -r 9672193075cf platform/mbed_retarget.cpp
--- a/platform/mbed_retarget.cpp	Wed Jun 21 17:46:44 2017 +0100
+++ b/platform/mbed_retarget.cpp	Thu Jul 06 15:42:05 2017 +0100
@@ -177,6 +177,20 @@
  * */
 extern "C" FILEHANDLE PREFIX(_open)(const char* name, int openmode) {
     #if defined(__MICROLIB) && (__ARMCC_VERSION>5030000)
+#if !defined(MBED_CONF_RTOS_PRESENT)
+    // valid only for mbed 2
+    // for ulib, this is invoked after RAM init, prior c++
+    // used as hook, as post stack/heap is not active there
+    extern void mbed_copy_nvic(void);
+    extern void mbed_sdk_init(void);
+
+    static int mbed_sdk_inited = 0;
+    if (!mbed_sdk_inited) {
+        mbed_copy_nvic();
+        mbed_sdk_init();
+        mbed_sdk_inited = 1;
+    }
+#endif
     // Before version 5.03, we were using a patched version of microlib with proper names
     // This is the workaround that the microlib author suggested us
     static int n = 0;