This is sample program for Nucleo L152RE (and F401RE & F411RE) mbed-rtos. You need to modify mbed-src and mbed-rtos before compile it.

Dependencies:   mbed-rtos mbed-src SetRTC

Fork of GR-PEACH_test_on_rtos_works_well by Kenji Arai

Please refer below link.
/users/kenjiArai/notebook/necleo-l152re-rtos-sample-also-for-f401re--f411re-/

Revision:
8:4006b111c0d4
Parent:
6:f14cce59e7fe
Child:
9:de986e74bd93
--- a/mon.cpp	Sat Jan 10 04:59:10 2015 +0000
+++ b/mon.cpp	Sat Feb 07 21:25:10 2015 +0000
@@ -7,7 +7,7 @@
  *      Created:  May       15th, 2010
  *      Spareted: June      25th, 2014      mon() & mon_hw()
  *      Ported:   July      12th, 2014      from L152RE
- *      Revised: January    10th, 2015
+ *      Revised:  Feburary   8th, 2015
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
@@ -26,7 +26,7 @@
 //  Definition ------------------------------------------------------------------------------------
 #define BAUD(x)                 pc.baud(x)
 #define GETC(x)                 pc.getc(x)
-#define PUTC(x)                 pc.putc(x)
+#define PUTC(x)                 pc.putc(x);
 #define PRINTF(...)             pc.printf(__VA_ARGS__)
 #define READABLE(x)             pc.readable(x)
 
@@ -35,7 +35,8 @@
 
 extern float fa[3];    // Acc  0:X, 1:Y, 2:Z
 extern float fg[3];    // Gyro 0:X, 1:Y, 2:Z
-extern uint8_t show_flag;
+extern uint8_t show_flag0;
+extern uint8_t show_flag1;
 
 //  ROM / Constant data ---------------------------------------------------------------------------
 static char *const mon_msg = "Monitor for mbed system, created on "__DATE__"";
@@ -118,6 +119,7 @@
     PRINTF("m - Show mail data");           put_rn();
     PRINTF("s - Show USER Button");         put_rn();
     PRINTF("t - Check and set RTC");        put_rn();
+    PRINTF("r - Show RTC date & time");     put_rn();
     PRINTF("x - Goto HW monitor");          put_rn();
     PRINTF("q - Return to main");           put_rn();
 }
@@ -222,13 +224,13 @@
         case 'm' :
             put_rn();
             while(true) {
-                show_flag = 1;
+                show_flag0 = 1;
                 if ( READABLE() ) {
                     break;
                 }
                 Thread::wait(100); // Wait 100mS
             }
-            show_flag = 0;
+            show_flag0 = 0;
             break;
     //---------------------------------------------------------------------------------------------
     //  Show switch status
@@ -261,6 +263,20 @@
             chk_and_set_time(ptr);               
             break;
     //---------------------------------------------------------------------------------------------
+    //  check and set RTC
+    //---------------------------------------------------------------------------------------------
+        case 'r' :
+            put_r(); 
+            while(true) {
+                show_flag1 = 1;
+                if ( READABLE() ) {
+                    break;
+                }
+                Thread::wait(50); // Wait 100mS
+            }
+            show_flag1 = 0;             
+            break;
+    //---------------------------------------------------------------------------------------------
     //  help
     //---------------------------------------------------------------------------------------------
         case '?' :