一、任务创建和删除的API函数(已看271分钟)
1.1 API函数
| API函数 | 描述 |
|---|---|
| xTaskCreate() | 动态方式创建任务 |
| xTaskCreateStatic() | 静态方式创建任务 |
| VTaskDelete() | 删除任务 |
1.1.1 特点

1.1.2 xTaskCreate 函数
1.1.2.1 函数形参


只需要指定 堆栈大小,有FreeRTOS自动分配。
1.1.2.2 动态方式创建任务流程:
外部:

内部:

TCB:任务控制块(Task Control Block)
TCB成员结构:


1.1.3 xTaskCreateStatic 函数
1.1.3.1 函数形参


堆栈大小由用户自动分配。
1.1.3.2 动态方式创建任务流程:
外部:

空闲任务必须,定时任务可选:
当使能了软件定时器,就需要创建定时器任务;没有就不需要。
内部:

1.1.4 vTaskDelete 函数

用于删除已被创建的任务。
被删除的任务将从就绪态 任务列表、阻塞态 任务列表、挂起态 任务列表和事件列表中移除。
注意:
1、当传入的参数为 NULL,则代表删除任务本身(当前正在运行的任务)
2、空闲任务会负责释放被删除任务中由系统分配的内存(针对动态),但是由用户在任务删除前申请的内存,则需要由用户在任务被删除前提前释放,否则将导致内存泄露(针对静态)。
这一点和 malloc & free、new & delete 内存分配删除原理一致。
1.1.4.1 删除任务流程:
外部调用:

内部实现:


二、任务创建和删除(动态方法)
第10讲,还有52讲