|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
协程式任务调度模块接口(基于 timer2 和 event 的轻量级协程) 更多...
结构体 | |
| 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 的轻量级协程)
SPDX-FileCopyrightText: 2025 深圳市天工聚创科技有限公司 SPDX-License-Identifier: Apache-2.0
在文件 xt_task.h 中定义.