四、FreeRTOS学习笔记-任务创建和删除

FreeRTOS的任务创建和删除
1,任务创建和删除的API函数(熟悉)


任务的创建和删除本质就是调用FreeRTOS的API函数
image
一、任务创建

  1. 动态创建任务:任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从 FreeRTOS 管理的堆中分配
  2. 静态创建任务:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供
    image
返回值 描述
pdPASS 任务创建成功
errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 任务创建失败

任务创建失败的原因是堆栈空间不足
1
image
2
image
任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相
注意:每个任务都有属于自己的任务控制块,类似身份证
image

返回值 描述
NULL 用户没有提供相应的内存,任务创建失败
其他值 任务句柄,任务创建成功

image
二、任务删除
任务删除函数:void vTaskDelete(TaskHandle_t xTaskToDelete);
image
用于删除已被创建的任务
被删除的任务将从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除
1、当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)
2、空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存, 则需要由用户在任务被删除前提前释放,否则将导致内存泄露
image

posted @ 2024-05-29 09:57  吃猫的渔  阅读(85)  评论(0编辑  收藏  举报