Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard. Patched to work with NUCLEO L152 board

Fork of mbed-rtos by mbed official

Files at this revision

API Documentation at this revision

Comitter:
dreschpe
Date:
Sun Sep 21 13:32:32 2014 +0000
Parent:
41:631c0f1008c3
Commit message:
Patch to support NUCLEO L152 board

Changed in this revision

rtx/RTX_CM_lib.h Show annotated file Show diff for this revision Revisions of this file
rtx/RTX_Conf_CM.c Show annotated file Show diff for this revision Revisions of this file
--- a/rtx/RTX_CM_lib.h	Thu Sep 11 14:15:18 2014 +0100
+++ b/rtx/RTX_CM_lib.h	Sun Sep 21 13:32:32 2014 +0000
@@ -253,7 +253,7 @@
 #elif defined(TARGET_LPC11U68)
 #define INITIAL_SP            (0x10004000UL)
 
-#elif defined(TARGET_NRF51822)
+#elif defined(TARGET_NRF51822) || defined (TARGET_NUCLEO_L152RE)
 #define INITIAL_SP            (0x20004000UL)
 
 #elif defined(TARGET_STM32F411RE)
--- a/rtx/RTX_Conf_CM.c	Thu Sep 11 14:15:18 2014 +0100
+++ b/rtx/RTX_Conf_CM.c	Sun Sep 21 13:32:32 2014 +0000
@@ -33,6 +33,7 @@
  *---------------------------------------------------------------------------*/
 
 #include "cmsis_os.h"
+#include "stm32l1xx_rcc.h"
 
 
 /*----------------------------------------------------------------------------
@@ -50,7 +51,7 @@
 //   <i> Default: 6
 #ifndef OS_TASKCNT
 #  if   defined(TARGET_LPC1768) || defined(TARGET_LPC2368)   || defined(TARGET_LPC4088) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
-	 || defined(TARGET_KL46Z)   || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822) || defined(TARGET_STM32F411RE)
+	 || defined(TARGET_KL46Z)   || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822) || defined(TARGET_STM32F411RE) || defined(TARGET_NUCLEO_L152RE)
 #    define OS_TASKCNT         14
 #  elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401)  || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
 	 || defined(TARGET_LPC812)   || defined(TARGET_KL25Z)         || defined(TARGET_KL05Z)        || defined(TARGET_STM32F100RB)  || defined(TARGET_STM32F051R8)
@@ -63,7 +64,7 @@
 //   <o>Scheduler (+ interrupts) stack size [bytes] <64-4096:8><#/4>
 #ifndef OS_SCHEDULERSTKSIZE
 #  if   defined(TARGET_LPC1768) || defined(TARGET_LPC2368)   || defined(TARGET_LPC4088) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347)  || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
-	 || defined(TARGET_KL46Z)   || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822) || defined(TARGET_STM32F411RE)
+	 || defined(TARGET_KL46Z)   || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822) || defined(TARGET_STM32F411RE) || defined(TARGET_NUCLEO_L152RE)
 #      define OS_SCHEDULERSTKSIZE    256
 #  elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401)  || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO)  || defined(TARGET_LPC1114) \
 	 || defined(TARGET_LPC812)   || defined(TARGET_KL25Z)         || defined(TARGET_KL05Z)        || defined(TARGET_STM32F100RB)  || defined(TARGET_STM32F051R8)
@@ -142,6 +143,9 @@
 #  elif defined(TARGET_STM32F411RE)
 #     define OS_CLOCK       100000000
 
+#  elif defined(TARGET_NUCLEO_L152RE)
+#     define OS_CLOCK       32000000
+
 #  else
 #    error "no target defined"
 #  endif
@@ -248,7 +252,9 @@
      This can be done, but it would break the local file system.
   */
   for (;;) {
-      // sleep();
+       RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
+       // Request to enter SLEEP mode with regulator ON
+       PWR_EnterSleepMode(PWR_Regulator_ON, PWR_SLEEPEntry_WFI);  //sleep();
   }
 }