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
Diff: rtx/RTX_Conf_CM.c
- Revision:
- 42:9780f8334bf5
- Parent:
- 41:631c0f1008c3
--- 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();
}
}
