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:
6:f14cce59e7fe
Parent:
5:dccdaaa1e57b
Child:
8:4006b111c0d4
--- a/mon.cpp	Thu Jan 08 13:03:16 2015 +0000
+++ b/mon.cpp	Sat Jan 10 04:57:33 2015 +0000
@@ -7,7 +7,7 @@
  *      Created:  May       15th, 2010
  *      Spareted: June      25th, 2014      mon() & mon_hw()
  *      Ported:   July      12th, 2014      from L152RE
- *      Revised:  December  14th, 2014
+ *      Revised: January    10th, 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
@@ -16,7 +16,6 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
  
-
 //  Include ---------------------------------------------------------------------------------------
 #include "mbed.h"
 #include "rtos.h"
@@ -33,7 +32,6 @@
 
 //  RAM -------------------------------------------------------------------------------------------
 static char linebuf[64];
-static int buf_size = sizeof(linebuf);
 
 extern float fa[3];    // Acc  0:X, 1:Y, 2:Z
 extern float fg[3];    // Gyro 0:X, 1:Y, 2:Z
@@ -49,20 +47,6 @@
 //-------------------------------------------------------------------------------------------------
 //  Control Program
 //-------------------------------------------------------------------------------------------------
-#if 0
-//  Put \r\n
-extern void put_rn ( void );
-//  Put \r
-extern void put_r ( void );
-// Put ", "
-extern void put_lin ( void );
-// Put space n
-extern void put_spc( uint8_t n);
-//  Change string -> integer
-//int xatoi (char **str, unsigned long *res){
-extern int xatoi (char **str, int32_t *res);
-
-#else
 //  Put \r\n
 static void put_rn ( void ){
     Thread::yield(); // change thread
@@ -77,20 +61,6 @@
     PUTC('\r');
 }
 
-// Put ", "
-static void put_lin ( void ){
-    Thread::yield(); // change thread
-    PRINTF(", ");
-}
-
-// Put space n
-static void put_spc( uint8_t n){
-    for(;n > 0; n--){
-        PUTC(' ');
-        Thread::yield(); // change thread       
-    }
-}
-
 //  Change string -> integer
 //int xatoi (char **str, unsigned long *res){
 static int xatoi (char **str, int32_t *res){
@@ -137,7 +107,6 @@
     *res = val;
     return 1;
 }
-#endif
 
 //-------------------------------------------------------------------------------------------------
 //  Monitor
@@ -153,13 +122,6 @@
     PRINTF("q - Return to main");           put_rn();
 }
 
-#if 0
-extern void get_line (char *buff, int len);
-
-// RTC related subroutines
-extern void chk_and_set_time(char *ptr);
-
-#else
 //  Get key input data
 static void get_line (char *buff, int len){
 char c;
@@ -222,7 +184,6 @@
     strftime(buf, 40, "%B %d,'%y, %H:%M:%S", localtime(&seconds));
     PRINTF("Date: %s\r\n", buf);
 }
-#endif
 
 // ---------- Program starts here! ---------------------------------------------------------------
 int mon(void) {