os_task_delete 用于删除指定任务,并释放其占用的系统资源,是 HRTOS 任务生命周期管理中的核心接口。
该函数不仅会清除任务控制块信息,还会回收任务栈空间(基于位图管理), 并在必要时触发调度器执行任务切换,保证系统运行的连续性。
| 参数 | 说明 |
|---|---|
| id | 任务ID(普通任务或快速任务) |
0 表示成功,-1 表示删除失败(任务不存在或参数错误)。
1. 任务类型区分
系统根据任务ID判断当前任务属于“普通任务”还是“快速任务”, 分别采用不同的数据结构进行处理。
2. 任务合法性检查
若任务未创建或已删除,则直接返回失败,避免非法操作。
3. 栈空间回收机制(核心)
HRTOS 使用位图(bitmap)管理内存分配,删除任务时需要释放其栈空间:
该算法逐位清除占用标记,实现高效内存回收,避免内存碎片问题。
4. 控制块清理
删除任务后,会清空任务相关数据结构,包括:
5. 删除当前任务处理
如果删除的是当前正在运行的任务,则立即触发调度器, 切换到下一个可运行任务。