Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard.

Fork of mbed-rtos by mbed official

Revision:
48:e9a2c7cb57a4
Parent:
40:bd07334df5b1
Child:
59:28712e303960
--- a/rtos/Thread.cpp	Mon Nov 03 10:30:24 2014 +0000
+++ b/rtos/Thread.cpp	Thu Nov 06 11:00:33 2014 +0000
@@ -31,6 +31,7 @@
     _thread_def.pthread = task;
     _thread_def.tpriority = priority;
     _thread_def.stacksize = stack_size;
+#ifndef __MBED_CMSIS_RTOS_CA9
     if (stack_pointer != NULL) {
         _thread_def.stack_pointer = stack_pointer;
         _dynamic_stack = false;
@@ -41,6 +42,7 @@
         _dynamic_stack = true;
     }
 #endif
+#endif
     _tid = osThreadCreate(&_thread_def, argument);
 }
 
@@ -61,7 +63,13 @@
 }
 
 Thread::State Thread::get_state() {
+#ifndef __MBED_CMSIS_RTOS_CA9
     return ((State)_thread_def.tcb.state);
+#else
+    uint8_t status;
+    status = osThreadGetState(_tid);
+    return ((State)status);
+#endif
 }
 
 osEvent Thread::signal_wait(int32_t signals, uint32_t millisec) {
@@ -82,9 +90,11 @@
 
 Thread::~Thread() {
     terminate();
+#ifndef __MBED_CMSIS_RTOS_CA9
     if (_dynamic_stack) {
         delete[] (_thread_def.stack_pointer);
     }
+#endif
 }
 
 }