forked
Fork of mbed-rtos by
Diff: rtx/TARGET_CORTEX_M/RTX_Conf_CM.c
- Revision:
- 123:58563e6cba1e
- Parent:
- 121:3da5f554d8bf
- Child:
- 125:5713cbbdb706
--- a/rtx/TARGET_CORTEX_M/RTX_Conf_CM.c Wed Nov 09 12:22:14 2016 -0600
+++ b/rtx/TARGET_CORTEX_M/RTX_Conf_CM.c Mon Nov 14 17:14:42 2016 -0600
@@ -39,6 +39,9 @@
* RTX User configuration part BEGIN
*---------------------------------------------------------------------------*/
+// Include per-target RTX config file
+#include "mbed_rtx.h"
+
//-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
//
// <h>Thread Configuration
@@ -48,23 +51,7 @@
// <i> Defines max. number of user threads that will run at the same time.
// <i> Default: 6
#ifndef OS_TASKCNT
-# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_K66F)|| defined(TARGET_STM32F401RE)\
- || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \
- || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F207ZG) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_MAX32620) || defined(TARGET_TEENSY3_1) \
- || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32F446ZE) || defined(TARGET_STM32L432KC) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) || defined(TARGET_STM32L152RC) \
- || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800) || defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32PG_STK3401) || defined(TARGET_STM32F767ZI) \
- || defined(TARGET_NUMAKER_PFM_NUC472) || defined(TARGET_NCS36510)
-# define OS_TASKCNT 14
-# elif defined(TARGET_LPC11U24) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
- || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) \
- || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) \
- || defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \
- || defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB) \
- || defined(TARGET_EFM32HG_STK3400) || defined(TARGET_MCU_NRF51822) || defined(TARGET_BEETLE) || defined(TARGET_MCU_NRF52832)
-# define OS_TASKCNT 6
-# else
-# error "no target defined"
-# endif
+ #error "no target defined"
#endif
#ifdef __MBED_CMSIS_RTOS_CM
@@ -84,28 +71,7 @@
// <o>Main Thread stack size [bytes] <64-32768:8><#/4>
#ifndef OS_MAINSTKSIZE
-# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_K66F) ||defined(TARGET_STM32F401RE)\
- || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \
- || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_MAX32620) || defined(TARGET_TEENSY3_1) \
- || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32F446ZE) || defined(TARGET_STM32L432KC) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) || defined(TARGET_STM32L152RC) \
- ||defined(TARGET_EFM32GG_STK3700) || defined(TARGET_STM32F767ZI) || defined(TARGET_STM32F207ZG) \
- || defined(TARGET_NUMAKER_PFM_NUC472) || defined(TARGET_NCS36510)
-# define OS_MAINSTKSIZE 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_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) \
- || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \
- || defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB) \
- || defined(TARGET_EFM32WG_STK3800) || defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32PG_STK3401)
-# define OS_MAINSTKSIZE 128
-# elif defined(TARGET_STM32F334R8) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_STM32F334C8) \
- || defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ) \
- || defined(TARGET_EFM32HG_STK3400) || defined(TARGET_BEETLE)
-# define OS_MAINSTKSIZE 112
-# elif defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832)
-# define OS_MAINSTKSIZE 512
-# else
-# error "no target defined"
-# endif
+ #error "no target defined"
#endif
#ifndef __MBED_CMSIS_RTOS_CM
@@ -135,7 +101,11 @@
// <i> Initialize thread stack with watermark pattern for analyzing stack usage (current/maximum) in System and Thread Viewer.
// <i> Enabling this option increases significantly the execution time of osThreadCreate.
#ifndef OS_STKINIT
-#define OS_STKINIT 0
+ #if (defined(MBED_STACK_STATS_ENABLED) && MBED_STACK_STATS_ENABLED)
+ #define OS_STKINIT 1
+ #else
+ #define OS_STKINIT 0
+ #endif
#endif
// <o>Processor mode for thread execution
@@ -154,11 +124,7 @@
// <i> Cortex-M processors provide in most cases a SysTick timer that can be used as
// <i> as time-base for RTX.
#ifndef OS_SYSTICK
-# if defined(TARGET_MCU_NRF51822)
-# define OS_SYSTICK 0
-# else
-# define OS_SYSTICK 1
-# endif
+ #define OS_SYSTICK 1
#endif
//
// <o>RTOS Kernel Timer input clock frequency [Hz] <1-1000000000>
@@ -166,119 +132,7 @@
// <i> When the Cortex-M SysTick timer is used, the input clock
// <i> is on most systems identical with the core clock.
#ifndef OS_CLOCK
-# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_TEENSY3_1)
-# define OS_CLOCK 96000000
-
-# elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32F303RE)
-# define OS_CLOCK 72000000
-
-# elif defined(TARGET_STM32F303K8)
-# define OS_CLOCK 64000000
-
-# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) \
- || defined(TARGET_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC)
-# define OS_CLOCK 48000000
-
-# elif defined(TARGET_LPC812)
-# define OS_CLOCK 36000000
-
-# elif defined(TARGET_LPC824) || defined(TARGET_SSCI824)
-# define OS_CLOCK 30000000
-
-# elif defined(TARGET_STM32F100RB) || defined(TARGET_BEETLE)
-# define OS_CLOCK 24000000
-
-# elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_K64F) || defined(TARGET_K66F)
-# define OS_CLOCK 120000000
-
-# elif defined(TARGET_LPC4330)
-# define OS_CLOCK 204000000
-
-# elif defined(TARGET_LPC4337)
-# define OS_CLOCK 204000000
-
-# elif defined(TARGET_STM32F407) || defined(TARGET_F407VG)
-# define OS_CLOCK 168000000
-
-# elif defined(TARGET_STM32F401RE)
-# define OS_CLOCK 84000000
-
-# elif defined(TARGET_STM32F411RE)
-# define OS_CLOCK 100000000
-
-# elif defined(TARGET_STM32F207ZG)
-# define OS_CLOCK 120000000
-
-# elif defined(TARGET_STM32F410RB)
-# define OS_CLOCK 100000000
-
-#elif defined(TARGET_STM32F103RB)
-# define OS_CLOCK 72000000
-
-#elif defined(TARGET_STM32F429ZI)
-# define OS_CLOCK 168000000
-
-#elif defined(TARGET_STM32F302R8)
-# define OS_CLOCK 72000000
-
-#elif defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ)
-# define OS_CLOCK 32000000
-
-#elif defined(TARGET_STM32F401VC)
-# define OS_CLOCK 84000000
-
-# elif defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) || defined(TARGET_STM32F767ZI)
-# define OS_CLOCK 216000000
-
-#elif defined(TARGET_MAX32610) || defined(TARGET_MAX32600)
-# define OS_CLOCK 24000000
-
-#elif defined(TARGET_MAX32620)
-# define OS_CLOCK 96000000
-
-#elif defined(TARGET_NZ32_SC151)
-# define OS_CLOCK 32000000
-
-#elif defined(TARGET_STM32L152RE)
-# define OS_CLOCK 24000000
-
-#elif defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446ZE) || defined(TARGET_STM32F446VE)
-# define OS_CLOCK 180000000
-
-#elif defined(TARGET_STM32F030R8)
-# define OS_CLOCK 48000000
-
-#elif defined(TARGET_STM32F070RB)
-# define OS_CLOCK 48000000
-
-#elif defined(TARGET_STM32L432KC) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_K22F)
-# define OS_CLOCK 80000000
-
-#elif defined(TARGET_STM32F469NI)
-# define OS_CLOCK 168000000
-
-#elif defined(TARGET_STM32L152RC)
-# define OS_CLOCK 24000000
-
-#elif defined(TARGET_EFM32)
-# include "clocking.h"
-# define OS_CLOCK REFERENCE_FREQUENCY
-
-#elif defined(TARGET_MCU_NRF51822)
-# define OS_CLOCK 32768
-
-#elif defined(TARGET_MCU_NRF52832)
-# define OS_CLOCK 64000000
-
-#elif defined(TARGET_NUMAKER_PFM_NUC472)
-# define OS_CLOCK 84000000
-
-#elif defined(TARGET_NCS36510)
-# define OS_CLOCK 32000000
-
-# else
-# error "no target defined"
-# endif
+ #error "no target defined"
#endif
// <o>RTX Timer tick interval value [us] <1-1000000>
@@ -408,6 +262,15 @@
}
/*----------------------------------------------------------------------------
+ * RTX Hooks
+ *---------------------------------------------------------------------------*/
+extern void thread_terminate_hook(osThreadId id);
+
+void sysThreadTerminate(osThreadId id) {
+ thread_terminate_hook(id);
+}
+
+/*----------------------------------------------------------------------------
* RTX Configuration Functions
*---------------------------------------------------------------------------*/
