EVE 1.0
Task emulation
Collaboration diagram for Task emulation:

Macros

#define portYIELD_FROM_ISR(woken)   do { } while (0)
 

Typedefs

typedef struct Task_t * TaskHandle_t
 
typedef void(* TaskFunction_t) (void *pvParameters)
 

Functions

BaseType_t xTaskCreate (TaskFunction_t pvTaskCode, const char *const pcName, unsigned short usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pvCreatedTask)
 
void vTaskDelete (TaskHandle_t xTask)
 
void vTaskDelay (const TickType_t xTicksToDelay)
 
void vTaskDelayUntil (TickType_t *pxPreviousWakeTime, const TickType_t xTimeIncrement)
 
void taskYIELD (void)
 
void taskENTER_CRITICAL (void)
 
void taskEXIT_CRITICAL (void)
 
void taskDISABLE_INTERRUPTS (void)
 
void taskENABLE_INTERRUPTS (void)
 
static UBaseType_t uxTaskPriorityGet (TaskHandle_t xTask)
 
static void vTaskPrioritySet (TaskHandle_t xTask, UBaseType_t uxNewPriority)
 
void vTaskSuspend (TaskHandle_t xTaskToSuspend)
 
void vTaskResume (TaskHandle_t xTaskToResume)
 
static BaseType_t xTaskResumeFromISR (TaskHandle_t xTaskToResume)
 
void vTaskStartScheduler (void)
 
void vTaskCancelBlockingCall (TaskHandle_t xTaskToWakeup)
 

Detailed Description

Macro Definition Documentation

#define portYIELD_FROM_ISR (   woken)    do { } while (0)

portYIELD_FROM_ISR stub. Implementation does not support context switch from an ISR.

Definition at line 116 of file rtos.h.

Typedef Documentation

typedef struct Task_t* TaskHandle_t

TaskHandle_t type

Definition at line 109 of file rtos.h.

typedef void(* TaskFunction_t) (void *pvParameters)

TaskFunction_t type

Definition at line 110 of file rtos.h.

Function Documentation

BaseType_t xTaskCreate ( TaskFunction_t  pvTaskCode,
const char *const  pcName,
unsigned short  usStackDepth,
void *  pvParameters,
UBaseType_t  uxPriority,
TaskHandle_t pvCreatedTask 
)

xTaskCreate emulation. http://www.freertos.org/a00125.html

Note
  • usStackDepth is ignored, stack is dynamically allocated from a pool
  • uxPriority is ignored, all tasks run at same priority level
void vTaskDelete ( TaskHandle_t  xTask)

vTaskDelete emulation. http://www.freertos.org/a00126.html

void vTaskDelay ( const TickType_t  xTicksToDelay)

vTaskDelay emulation. http://www.freertos.org/a00127.html

void vTaskDelayUntil ( TickType_t pxPreviousWakeTime,
const TickType_t  xTimeIncrement 
)
void taskYIELD ( void  )
void taskENTER_CRITICAL ( void  )
void taskEXIT_CRITICAL ( void  )
void taskDISABLE_INTERRUPTS ( void  )
void taskENABLE_INTERRUPTS ( void  )
static UBaseType_t uxTaskPriorityGet ( TaskHandle_t  xTask)
inlinestatic

uxTaskPriorityGet stub. http://www.freertos.org/a00128.html

Note
  • Implementation does not support task priorities.

Definition at line 189 of file rtos.h.

static void vTaskPrioritySet ( TaskHandle_t  xTask,
UBaseType_t  uxNewPriority 
)
inlinestatic

vTaskPrioritySet stub. http://www.freertos.org/a00129.html

Note
  • Implementation does not support task priorities.

Definition at line 200 of file rtos.h.

References vTaskResume(), and vTaskSuspend().

void vTaskSuspend ( TaskHandle_t  xTaskToSuspend)

vTaskSuspend emulation. http://www.freertos.org/a00130.html

Referenced by vTaskPrioritySet().

void vTaskResume ( TaskHandle_t  xTaskToResume)
static BaseType_t xTaskResumeFromISR ( TaskHandle_t  xTaskToResume)
inlinestatic

xTaskResumeFromISR emulation. http://www.freertos.org/taskresumefromisr.html

Note
  • Implementation never requests context switch from an ISR
  • This function can not be called from a hard irq context.

Definition at line 225 of file rtos.h.

References pdFALSE, vTaskCancelBlockingCall(), vTaskResume(), and vTaskStartScheduler().

void vTaskStartScheduler ( void  )

vTaskStartScheduler stub. http://www.freertos.org/a00132.html

Note
  • Implementation just exits the current thread

Referenced by xTaskResumeFromISR().

void vTaskCancelBlockingCall ( TaskHandle_t  xTaskToWakeup)

Cancel any of blocking calls the task is currently waiting in. The blocking call exits with errno set to EINTR

Referenced by xTaskResumeFromISR().