16#include "../kernel/xf_task_base.h"
17#include "../port/xf_task_port_internal.h"
73 handle->
count = count;
116 task->base.delay = ticks;
139 int32_t timeout = time_ticks - handle->
base.
wake_up;
142 if (handle->
count == 0) {
186 if (
task->base.delay != 0) {
xf_err_t xf_ttask_set_count_max(xf_task_t task, uint32_t count_max)
设置 ttask 循环次数的上限。
uint32_t xf_ttask_get_count(xf_task_t task)
获取 ttask 循环次数。
xf_err_t xf_ttask_set_count(xf_task_t task, uint32_t count)
设置 ttask 循环次数。其不能超过循环次数的上限。
#define XF_TASK_TYPE_TTASK
ttask 类型值。 XF_TASK_TYPE_ttask 通过 xf_task_reg.inc 拼接而来。
#define XF_TTASK_INFINITE_LOOP
#define XF_ASSERT(condition, retval, tag, format,...)
xfusion 断言宏(条件 不成立 时则输出日志后返回)。
#define BITS_SET0(var, bits_mask)
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 0。
#define BITS_SET1(var, bits_mask)
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 1。
#define BITS_CHECK(src, bits_mask)
检查变量 var 在 bits_mask 的位置上是否存在 1。
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
task 的父对象,保存了 task 的公共属性。
虚函数表,不在 base 对象实现,由子对象完成实现。
const xf_task_create_t constructor
static void task(xf_task_t task)
#define XF_LOGE(tag, format,...)
void xf_task_base_init(xf_task_base_t *task_base, xf_task_manager_t manager, xf_task_type_t type, uint16_t priority, xf_task_func_t func, void *arg)
task 初始化。
xf_err_t xf_task_base_set_state(xf_task_t task, xf_task_state_t state)
task 设置状态。
void xf_task_base_reset(xf_task_base_t *task_base)
重置 task base 部分内容
xf_err_t xf_task_vfunc_register(xf_task_type_t type, const xf_task_vfunc_t *vfunc)
task 的虚函数注册。
#define XF_TASK_SIGNAL_EVENT
#define XF_TASK_SIGNAL_TIMEOUT
#define XF_TASK_SIGNAL_READY
XF_TASK_TIME_TYPE xf_task_time_t
xf_task 时间戳类型。
void xf_task_delete(xf_task_t task)
任务删除函数。将任务加入销毁队列,并设置任务为删除态。
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
xf_task_t xf_task_manager_get_current_task(xf_task_manager_t manager)
获取管理器运行的任务。
void * xf_task_manager_t
任务管理器句柄。
xf_task_time_t xf_task_get_ticks(void)
int32_t xf_task_ticks_to_msec(int32_t ticks)
int32_t xf_task_msec_to_ticks(int32_t msec)
static xf_task_t xf_ttask_constructor(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
static void xf_ttask_exec(xf_task_manager_t manager)
static xf_task_time_t xf_ttask_update(xf_task_t task)
struct _xf_ttask_handle_t xf_ttask_handle_t
static void xf_ttask_reset(xf_task_t task)
static const xf_task_vfunc_t _ttask_vfunc
static void xf_ttask_time_handle(xf_task_t task, uint32_t time_ticks)
void xf_ttask_vfunc_register(void)