os_task_create

所属模块:任务管理 | 类型:任务/进程创建函数(核心接口,已脱敏)

API Metadata

函数ID:os_task_create
模块:task
类型:task create / process register
嵌套深度:1

函数简介

:contentReference[oaicite:0]{index=0} 用于创建任务或进程,并为其分配运行栈空间、调度信息以及初始执行入口。

该函数是系统任务管理的核心接口之一,涉及内存分配、优先级校验、栈空间管理以及上下文初始化。

函数原型

char os_task_create(unsigned int addr, unsigned char id, unsigned char pr, unsigned char sd);

参数说明

参数 说明
addr 任务入口函数地址
id 任务编号
pr 任务优先级(决定调度类别)
sd 任务栈深度需求

返回值

1 表示创建成功,-1 表示失败(参数非法或资源不足)。

源码实现(已脱敏)

char os_task_create(unsigned int addr, unsigned char id, unsigned char pr, unsigned char sd) { /* ========================= * 1. 系统状态检查 * ========================= * - 检查是否允许创建任务 * - 检查优先级范围是否合法 */ /* ========================= * 2. 参数合法性校验 * ========================= * - ID 是否越界 * - 地址是否为空 * - 是否重复注册 */ /* ========================= * 3. 栈需求计算 * ========================= * - 根据任务类型调整实际栈深度 * - 标准任务 / 高速任务分别处理 */ /* ========================= * 4. 内存分配(Slab/Bitmap) * ========================= * - 在用户 RAM 区域中查找连续空闲块 * - 使用位图标记占用情况 * - 找到足够连续空间后锁定分配 */ /* ========================= * 5. 栈空间安全检查 * ========================= * - 更新系统最大栈使用水位 * - 检查是否越界 * - 严重越界触发系统复位机制 */ /* ========================= * 6. 任务控制块初始化 * ========================= * 标准任务: * - 初始化 SP * - 保存入口地址到栈 * - 设置优先级与状态 * - 完成上下文初始化 */ /* ========================= * 7. 高速任务初始化 * ========================= * - 分配快速任务索引 * - 初始化高速任务上下文 * - 设置启动标志 */ /* ========================= * 8. 中断任务绑定 * ========================= * - pr == ISR 级任务 * - pr == 嵌套中断任务 * - 仅保存入口地址,不分配完整栈 */ return 1; }

注意事项

该函数涉及系统栈分配与调度结构初始化,属于内核核心接口。 实现已脱敏,具体内存管理逻辑不可依赖外部行为推测。

相关推荐