Task abstraction layer
This GOAL core module connects the specific operating system to other GOAL components via a generic abstraction layer. The task abstraction layer allows to create and shutdown a task, to configure the task priority and to handle the state machine for the task and requires indication functions containing the special operating system functions. The indication functions are described in Chapter: Platform API.
Task priorities are generalized to the following categories:
GOAL_TASK_PRIO_LOWEST
GOAL_TASK_PRIO_MEDIUM
GOAL_TASK_PRIO_HIGHEST
Â
GOAL files:
goal_task.[h,c]
example:
…\goal\appl\00410_goal\task
Configuration
The following compiler-defines are available to configure the task abstraction layer:
GOAL_CONFIG_TASK:
0: task abstraction layer is disabled (default)
1: task abstraction layer is enabled
Platform API
GOAL requires the following indication function to connect a specific operating system to the task abstraction layer:
Table: goal_tgtTaskCreate()
Prototype | GOAL_STATUS_T goal_tgtTaskCreate(GOAL_TASK_T *pTask) | |
Description | This indication function allows to create a task specified by the task-handle. | |
Parameters | pTask | handle for the task |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskStart()
Prototype | GOAL_STATUS_T goal_tgtTaskStart(GOAL_TASK_T *pTask) | |
Description | This indication function allows to start the task specified by the task-handle. | |
Parameters | pTask | handle for the task |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskExit()
Prototype | GOAL_STATUS_T goal_tgtTaskExit(void) |
Description | This indication function allows to shutdown the current task. |
Parameters | none |
Return values | GOAL return status, see Chapter: GOAL status |
Category | mandatory |
Â
Table: goal_tgtTaskMsSleep()
Prototype | GOAL_STATUS_T goal_tgtTaskMsSleep(uint32_t msReq, uint32_t *pMsRem) | |
Description | This indication function allows to put the current task to sleep. | |
Parameters | msReq | time in ms to sleep |
pMsRem | returns the remaining time in ms if sleep was interrupted and this function is available on the specific operating system | |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskTestSelf()
Prototype | GOAL_STATUS_T goal_tgtTaskTestSelf(GOAL_TASK_T *pTask) | |
Description | This indication function allows to check if the ID of the current task matches to the task-handle. | |
Parameters | pTask | handle for the task |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskPrioSet()
Prototype | GOAL_STATUS_T goal_tgtTaskPrioSet(GOAL_TASK_T *pTask, uint32_t prio) | |
Description | This indication function allows to configure the priority of the specified task. | |
Parameters | pTask | handle for the task |
Prio | desired priority of the task:
| |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskSuspend()
Prototype | GOAL_STATUS_T goal_tgtTaskSuspend(GOAL_TASK_T *pTask) | |
Description | This indication function allows to suspend the execution of the task specified by the task-handle. | |
Parameters | pTask | handle for the task |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Table: goal_tgtTaskResume()
Prototype | GOAL_STATUS_T goal_tgtTaskResume(GOAL_TASK_T *pTask) | |
Description | This indication function allows to resume the execution of the task specified by the task-handle. | |
Parameters | pTask | handle for the task |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | mandatory |
Â