Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard.
Dependents: denki-yohou_b TestY201 Network-RTOS NTPClient_HelloWorld ... more
Deprecated
This is the mbed 2 rtos library. mbed OS 5 integrates the mbed library with mbed-rtos. With this, we have provided thread safety for all mbed APIs. If you'd like to learn about using mbed OS 5, please see the docs.
Diff: rtx/TARGET_CORTEX_M/rt_Task.c
- Revision:
- 118:6635230e06ba
- Parent:
- 112:53ace74b190c
- Child:
- 123:58563e6cba1e
--- a/rtx/TARGET_CORTEX_M/rt_Task.c Mon May 23 11:00:15 2016 +0100 +++ b/rtx/TARGET_CORTEX_M/rt_Task.c Mon Jul 25 14:12:24 2016 +0100 @@ -40,6 +40,7 @@ #include "rt_MemBox.h" #include "rt_Robin.h" #include "rt_HAL_CM.h" +#include "rt_OsEventObserver.h" /*---------------------------------------------------------------------------- * Global Variables @@ -101,6 +102,9 @@ /* Switch to next task (identified by "p_new"). */ os_tsk.new_tsk = p_new; p_new->state = RUNNING; + if (osEventObs && osEventObs->thread_switch) { + osEventObs->thread_switch(p_new->context); + } DBG_TASK_SWITCH(p_new->task_id); } @@ -402,6 +406,10 @@ os_tsk.run = &os_idle_TCB; os_tsk.run->state = RUNNING; + /* Set the current thread to idle, so that on exit from this SVCall we do not + * de-reference a NULL TCB. */ + rt_switch_req(&os_idle_TCB); + /* Initialize ps queue */ os_psq->first = 0U; os_psq->last = 0U;