For more details and example usage, see Task
Data Structures | |
struct | TaskP_Load |
Task load statistics. More... | |
struct | TaskP_Object |
Opaque task object used with the task APIs. More... | |
struct | TaskP_Params |
Parameters passed during TaskP_construct. More... | |
Functions | |
void | TaskP_Params_init (TaskP_Params *params) |
Set default values to TaskP_Params. More... | |
int32_t | TaskP_construct (TaskP_Object *obj, TaskP_Params *params) |
Create a task object. More... | |
void | TaskP_destruct (TaskP_Object *obj) |
Cleanup, delete, destruct a task object. More... | |
void * | TaskP_getHndl (TaskP_Object *obj) |
Return OS defined task handle. More... | |
void | TaskP_yield () |
Yield current task. More... | |
void | TaskP_exit () |
Exit current task. More... | |
void | TaskP_loadGet (TaskP_Object *obj, TaskP_Load *taskLoad) |
Get task load. More... | |
void | TaskP_loadUpdateAll () |
Updated task load statistics. More... | |
void | TaskP_loadResetAll () |
Reset task load statistics. More... | |
uint32_t | TaskP_loadGetTotalCpuLoad () |
Get total CPU load including all task and ISR execution time. More... | |
Typedefs | |
typedef void(* | TaskP_FxnMain) (void *args) |
Entry point to the task. More... | |
Macros | |
#define | TaskP_PRIORITY_LOWEST (0u) |
Value to be used for lowest priority task. More... | |
#define | TaskP_PRIORITY_HIGHEST (15u) |
Value to be used for highest priority task. More... | |
#define | TaskP_LOAD_UPDATE_WINDOW_MSEC (500u) |
The update rate at which TaskP_loadUpdateAll() is called. More... | |
#define | TaskP_OBJECT_SIZE_MAX (160u) |
Max size of task object across all OS's. More... | |
#define TaskP_PRIORITY_LOWEST (0u) |
Value to be used for lowest priority task.
#define TaskP_PRIORITY_HIGHEST (15u) |
Value to be used for highest priority task.
#define TaskP_LOAD_UPDATE_WINDOW_MSEC (500u) |
The update rate at which TaskP_loadUpdateAll() is called.
#define TaskP_OBJECT_SIZE_MAX (160u) |
Max size of task object across all OS's.
typedef void(* TaskP_FxnMain) (void *args) |
Entry point to the task.
void TaskP_Params_init | ( | TaskP_Params * | params | ) |
Set default values to TaskP_Params.
Strongly recommended to be called before seting values in TaskP_Params
params | [out] parameter structure to set to default |
int32_t TaskP_construct | ( | TaskP_Object * | obj, |
TaskP_Params * | params | ||
) |
Create a task object.
obj | [out] Created object |
params | [in] Task create parameters |
void TaskP_destruct | ( | TaskP_Object * | obj | ) |
Cleanup, delete, destruct a task object.
obj | [in] task object |
void* TaskP_getHndl | ( | TaskP_Object * | obj | ) |
Return OS defined task handle.
obj | [in] task object |
void TaskP_yield | ( | ) |
Yield current task.
void TaskP_exit | ( | ) |
Exit current task.
In FreeRTOS, task cannot simply return from a function. It needs to call vTaskDelete(NULL) instead. To keep the task exit portable, call this function when a task wants to terminate itself.
void TaskP_loadGet | ( | TaskP_Object * | obj, |
TaskP_Load * | taskLoad | ||
) |
Get task load.
obj | [out] Created object |
taskLoad | [out] Task load statistics |
void TaskP_loadUpdateAll | ( | ) |
Updated task load statistics.
This updates task load statistics for all tasks created with TaskP_construct(). This also updates idle task load.
This function is called, every TaskP_LOAD_UPDATE_WINDOW_MSEC msecs within the IDLE task. It is important that idle task get to run atleast once every TaskP_LOAD_UPDATE_WINDOW_MSEC msecs for the load statistics to be correct
void TaskP_loadResetAll | ( | ) |
Reset task load statistics.
Until load statistics is reset the load statistics keep getting accumulated
uint32_t TaskP_loadGetTotalCpuLoad | ( | ) |
Get total CPU load including all task and ISR execution time.