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
Revision 42:9780f8334bf5, committed 2014-09-21
- 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(); } }