任务创建


创建TCB

TCB(task control block)包含了任务的堆栈,优先级,状态,名称和配置等信息。被FreeRTOS用来描述和控制任务。

分配栈空间

根据CPU架构确定堆栈生长方向和内存对齐。

初始化任务信息

设置任务名,填充栈空间,设置优先级,初始化任务通知等。

初始化堆栈

按照CPU调用的顺序把任务函数指针和参数放到栈空间中(参照Cortex-M中断流程)。

添加到链表

把任务添加到对应的任务链表,等待调度器调度。