任务管理
tos_task_create
- k_err_t tos_task_create(k_task_t *task,
- char *name,
- k_task_entry_t entry,
- void *arg,
- k_prio_t prio,
- k_stack_t *stk_base,
- size_t stk_size,
- k_timeslice_t timeslice);
- 功能描述
创建任务。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符[in]name任务名称[in]entry任务入口函数[in]arg任务入口函数参数[in]prio任务优先级[in]stk_base任务栈空间首地址[in]stk_size任务栈空间的大小[in]timeslice时间片轮转调度侧策略中,时间片的大小设置,0表示设置为系统默认值
- 返回值
K_ERR_NONE 任务创建成功。
K_ERR_TASK_STK_SIZE_INVALID 非法的任务栈大小。
K_ERR_TASK_PRIO_INVALID 非法的任务优先级。
tos_task_destroy
- k_err_t tos_task_destroy(k_task_t *task)
- 功能描述
销毁任务。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符
- 返回值
K_ERR_NONE 任务销毁成功。
K_ERR_TASK_DESTROY_IDLE 试图销毁idle任务(非法)。
tos_task_delay
- k_err_t tos_task_delay(k_tick_t delay);
- 功能描述
睡眠当前任务,以系统时钟滴答数为单位。
- 参数解释
IN/OUT**参数名**描述[in]delay任务睡眠时间
- 返回值
K_ERR_NONE 任务延迟成功。
K_ERR_DELAY_ZERO delay值为零(非法)。
tos_task_delay_abort
- k_err_t tos_task_delay_abort(k_task_t *task);
- 功能描述
取消一个任务的delay状态。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符
- 返回值
K_ERR_NONE 取消delay成功。
K_ERR_TASK_NOT_DELAY task并未处于delay状态。
K_ERR_TASK_SUSPENDED task被挂起(suspend)。
tos_task_suspend
- k_err_t tos_task_suspend(k_task_t *task);
- 功能描述
挂起一个任务(剥夺一个任务的运行调度)。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符
- 返回值
TOS_ERR_NONE 挂起任务成功。
K_ERR_TASK_SUSPEND_IDLE 试图挂起idle任务(非法)。
tos_task_resume
- k_err_t tos_task_resume(k_task_t *task);
- 功能描述
恢复一个任务的调度运行。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符
- 返回值
TOS_ERR_NONE 恢复任务运行成功。
K_ERR_TASK_RESUME_SELF 试图恢复当前任务(非法)。
tos_task_prio_change
- k_err_t tos_task_prio_change(k_task_t *task, k_prio_t prio_new);
- 功能描述
更改一个任务的优先级。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符[in]prio_new新的优先级
- 返回值
K_ERR_NONE 任务优先级更新成功。
K_ERR_TASK_PRIO_INVALID 优先级非法。
tos_task_yield
- void tos_task_yield(void);
- 功能描述
当前任务主动放弃cpu。
- 参数解释
无
- 返回值
无
tos_task_stack_draught_depth
- k_err_t tos_task_stack_draught_depth(k_task_t *task, int *depth);
- 功能描述
获取一个任务栈的最大吃水深度。
- 参数解释
IN/OUT**参数名**描述[in]task任务结构体描述符[out]depth任务栈的吃水深度
- 返回值
K_ERR_NONE 任务栈状态正常。
K_ERR_TASK_STK_OVERFLOW 任务栈溢出。