任务管理

tos_task_create

  1. k_err_t tos_task_create(k_task_t *task,
  2. char *name,
  3. k_task_entry_t entry,
  4. void *arg,
  5. k_prio_t prio,
  6. k_stack_t *stk_base,
  7. size_t stk_size,
  8. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. void tos_task_yield(void);
  • 功能描述

当前任务主动放弃cpu。

  • 参数解释

  • 返回值

tos_task_stack_draught_depth

  1. 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 任务栈溢出。