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

一.深挖创建任务

在这里插入图片描述

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

FreeRTOS的内部机制(基础少勿看)_第1张图片
TCB结构体
在内存里面分配一个TCB结构体表示一个任务的创建。

现在问题来了,,
FreeRTOS的内部机制(基础少勿看)_第2张图片

1000:代表着这个任务所需栈的大小,为1000*4位,
栈的大小:1.取决于局部变量 2.调用深度 所以最好多分配一下 适当调整
:就是一块空闲的内存
FreeRTOS的内部机制(基础少勿看)_第3张图片
vTask1的大小从那里分配呢?

FreeRTOS的内部机制(基础少勿看)_第4张图片
FreeRTOS的内部机制(基础少勿看)_第5张图片
从这个大的数组中划分出一部分给某个任务使用。
FreeRTOS的内部机制(基础少勿看)_第6张图片
创建的整个流程用图表示:
FreeRTOS的内部机制(基础少勿看)_第7张图片

二.任务状态的切换

FreeRTOS的内部机制(基础少勿看)_第8张图片
FreeRTOS的内部机制(基础少勿看)_第9张图片
FreeRTOS的内部机制(基础少勿看)_第10张图片
FreeRTOS的内部机制(基础少勿看)_第11张图片
点击pxReadyTasksLists
FreeRTOS的内部机制(基础少勿看)_第12张图片
FreeRTOS的内部机制(基础少勿看)_第13张图片
创建的三个任务是这样执行的:
FreeRTOS的内部机制(基础少勿看)_第14张图片
FreeRTOS的内部机制(基础少勿看)_第15张图片

三.任务顺序的调度

FreeRTOS的内部机制(基础少勿看)_第16张图片
在这里插入图片描述
FreeRTOS的内部机制(基础少勿看)_第17张图片
空闲任务礼让:如果有同是优先级0的其他就绪任务,空闲任务主动放弃一次运行机会。
FreeRTOS的内部机制(基础少勿看)_第18张图片
FreeRTOS的内部机制(基础少勿看)_第19张图片
空闲任务主要就是为了清理工作。

FreeRTOS的内部机制(基础少勿看)_第20张图片

总结

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

你可能感兴趣的:(FreeRTOS,freertos,stm32)