freeRTOS内部机制——创建任务的内部细节

编程入门 行业动态 更新时间:2024-10-25 08:21:22

freeRTOS内部机制——创建任务的内部<a href=https://www.elefans.com/category/jswz/34/1769720.html style=细节"/>

freeRTOS内部机制——创建任务的内部细节

创建任务的两个核心:栈和任务结构体

函数运行过程中的局部变量保存在哪里?他自己的栈中

任务被切换过后,在切换的瞬间,哪些寄存器的值保存在哪里?保存在任务结构体中

在任务创建函数中,会malloc动态分配一块内存usStackDepth,这块内存就是栈。

精简过后的TCB结构体

要回答两个问题?

创建任务的栈从哪里分配?freeRTOS中定义了一个很大的全局数据作为一块空闲的内存,栈就是从这里面划分出一部分空间给任务使用。上图中的1000指的是1000*4字节。

这块分出来的空间起始地址保存在TCB结构体的pxStack参数中

大小怎么分配?栈的大小取决于怎么使用局部变量和函数调用的深度,在实际的开发中栈的大小只能去估计,没有好的计算方法

vTask1()怎么执行?将pc指针指向vTask1()的地址

,Task1()地址存在哪里?存在任务的栈中,如下图所示

更多推荐

freeRTOS内部机制——创建任务的内部细节

本文发布于:2023-12-03 07:06:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1652473.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:细节   机制   freeRTOS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!