第9课 任务创建、删除和API函数

第9课 任务创建、删除和API函数

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

API函数描述
xTaskCreate()动态方式创建任务
xTaskCreateStatic()静态方式创建任务
xTaskDelete()删除任务
  • 动态创建任务:

任务的任务控制块以及任务的栈空间所需的内存,均由FreeRTOS自动从系统管理的堆中分配(自动)

  • 静态创建任务:

任务的任务控制块以及任务的栈空间所需的内存,需要用户分配提供(人为)

2、实现动态创建任务的流程

  1. 将宏configSUPPORT_DIYAMIC_ALLOCATION配置为1
  2. 定义入口参数
  3. 编写任务函数

此函数创建的任务会立刻进入就绪态,由任务调度器运行

3、实现静态创建任务的流程

  1. 将宏configSUPPORT_DIYAMIC_ALLOCATION配置为1
  2. 定义空闲任务&定时器任务的任务堆栈及TCB
  3. 实现两个接口函数
  • vApplicationGetldleTaskMemory()
  • vApplicationGetTimerTaskMemory()
  1. 定义函数入口参数
  2. 编写任务函数

此函数创建的任务会立刻进入就绪态,由任务调度器运行

4、任务删除函数

被删除的任务将从就绪任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除

注意:
1.当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)
2.空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存;对于静态任务由用户在删除前由用户在任务被删除前提前释放内存,否则将导致内存泄漏

删除任务流程

1、获取所要删除任务的控制块
2、将被删除任务,移除所在列表
3、判断所需要删除的任务
4、更新下个任务的阻塞时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值