FreeRTOS基础(二):任务创建和删除的API函数(熟悉)

      我们知道FreeRTOS划分为一个个的任务,然后由任务调度器实现调度执行,那么我们如何创建任务呢?这就是本篇博客需要讲解的问题。

目录

一、任务创建和删除的API函数

二、动态创建任务函数

2.1 函数原型

2.2 实现动态创建任务流程

2.3 动态创建任务函数内部实现

2.4 任务控制块结构体成员介绍

三、静态创建任务函数

3.1 函数原型

3.2 实现静态创建任务流程

3.3 静态创建任务函数内部实现

四、任务删除函数

4.1 函数原型

4.2 删除任务流程

4.3 内部实现过程


一、任务创建和删除的API函数

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

二、动态创建任务函数

2.1 函数原型

在编程时,对返回值进行参数检测,可以判断任务是否创建成功!

2.2 实现动态创建任务流程

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

2.3 动态创建任务函数内部实现

2.4 任务控制块结构体成员介绍

        注意:每个任务都有属于自己的任务控制块,类似身份证

任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相关

三、静态创建任务函数

3.1 函数原型

3.2 实现静态创建任务流程

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

3.3 静态创建任务函数内部实现

四、任务删除函数

4.1 函数原型

用于删除已被创建的任务,被删除的任务将从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除!!! 

注意:

1、当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)

2、删除动态创建的任务时:如果传的是另一个任务的句柄时,则直接将此任务分配的内存释放,但是如果传的是NULL(删除自身),则并不会直接在自身任务中直接释放,因为自身的任务还在运行,需要使用内存,而是在空闲任务中会负责释放自身占用的内存!

3、删除静态创建的任务时:由用户在任务删除前申请的内存, 则需要由用户在任务被删除前提前释放,否则将导致内存泄露!!

4.2 删除任务流程

4.3 内部实现过程

至此,任务创建和删除的API函数就已经介绍完毕,下一节博客以实战方式创建动态任务!初次学习,循序渐进,一步步掌握即可!以上就是全部内容!请务必掌握,创作不易,欢迎大家点赞加关注评论,您的支持是我前进最大的动力!下期再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来可期,静待花开~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值