xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_task.h 文件参考

协程式任务调度模块接口(基于 timer2 和 event 的轻量级协程) 更多...

#include "xtiny.h"
#include "xt_timer2.h"
#include "xt_event.h"

浏览该文件的源代码.

结构体

struct  xt_task
 任务控制块结构体 更多...

宏定义

#define XT_TASK_INLIVAD_ID   0xff
 无效父任务 ID(0xff),表示无父任务的独立根任务
#define XT_TASK_WAIT_FOREVER   0xffffffff
 永不超时标记(0xffffffff),用于纯事件等待(不启动定时器,无超时限制)
#define XT_TASK_LC_INIT_VALUE   0
 LC(Local Continuation)机制的初始值,表示协程从起始位置重新执行
#define xt_task_lc_init(s)
 初始化 lc 变量
#define xt_task_lc_resume(s)
 恢复协程执行点
#define _xt_task_lc_set(s)
 设置协程恢复点(内部宏)
#define xt_task_lc_end(s)
 结束 lc switch 块
#define XT_TASK_BEGIN()
 协程任务函数开头
#define XT_TASK_END()
 协程任务函数结尾
#define xt_task_delay(ms)
 延时等待若干毫秒后继续执行
#define xt_task_wait_event(event_id, event_param)
 等待指定事件(永不超时)
#define xt_task_wait_until(event_id, timeout)
 等待指定事件或超时
#define xt_task_call_subtask(entry, user_data)
 调用子任务并等待其完成

类型定义

typedef void(* xt_task_entry_t) (void *user_data)
 协程任务入口函数类型
typedef struct xt_task xt_task_t
 协程任务句柄

函数

void xt_task_timer_start (uint32_t timeout_ms)
 启动当前 task 的定时器
void xt_task_event_subscribe (xt_event_id_t event_id, uint32_t timeout_ms)
 为当前 task 订阅事件
void xt_task_event_handler (xt_event_id_t event_id)
 事件到达分发入口
任务生命周期与控制
xt_err_t xt_task_setup (void)
 初始化 task 子系统
xt_task_t * xt_task_start (xt_task_entry_t entry, void *user_data)
 启动一个协程任务
xt_task_t * xt_task_running (void)
 获取当前正在运行的 task
bool xt_task_is_running (xt_task_t *task)
 检查 task 是否在运行
void xt_task_sys_reset (void)
 重置 task 子系统(仅测试用)

详细描述

协程式任务调度模块接口(基于 timer2 和 event 的轻量级协程)

作者
your name (you@d.nosp@m.omai.nosp@m.n.com)
版本
0.2
日期
2025-07-31

SPDX-FileCopyrightText: 2025 深圳市天工聚创科技有限公司 SPDX-License-Identifier: Apache-2.0

在文件 xt_task.h 中定义.