FreeRTOS的内部机制(基础少勿看)

一.深挖创建任务

在这里插入图片描述

这里就是创建了一个Task1的任务。点击创建任务往内部跳转。得到如下的一个TCB结构体。

在这里插入图片描述
TCB结构体
在内存里面分配一个TCB结构体表示一个任务的创建。

现在问题来了,,
在这里插入图片描述

1000:代表着这个任务所需栈的大小,为1000*4位,
栈的大小:1.取决于局部变量 2.调用深度 所以最好多分配一下 适当调整
:就是一块空闲的内存
在这里插入图片描述
vTask1的大小从那里分配呢?

在这里插入图片描述
在这里插入图片描述
从这个大的数组中划分出一部分给某个任务使用。
在这里插入图片描述
创建的整个流程用图表示:
在这里插入图片描述

二.任务状态的切换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击pxReadyTasksLists
在这里插入图片描述
在这里插入图片描述
创建的三个任务是这样执行的:
在这里插入图片描述
在这里插入图片描述

三.任务顺序的调度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
空闲任务礼让:如果有同是优先级0的其他就绪任务,空闲任务主动放弃一次运行机会。
在这里插入图片描述
在这里插入图片描述
空闲任务主要就是为了清理工作。

在这里插入图片描述

总结

仅供个人学习使用
跟着韦东山学习的视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值