• 任务管理
    • tos_task_create
    • tos_task_destroy
    • tos_task_delay
    • tos_task_delay_abort
    • tos_task_suspend
    • tos_task_resume
    • tos_task_prio_change
    • tos_task_yield
    • tos_task_stack_draught_depth

    任务管理

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