quhaton 发表于 2020-12-22 12:05:47

FreeRTOS工程程序堆栈与任务堆栈的的关系是什么?

使用cubemx 创建带freertos的工程,可以配置 HEAP 的地方有2个,为了加以区分,姑且称为 程序堆栈与操作系统堆栈,如图:请问它们的作用分别是什么,它们之间有什么关系?最近因为项目要上freertos并设计芯片选型,不得不考虑现有工程加上freertos以及任务等后所需的ram和flash大小,所以才会有堆栈空间关系的思考。

eric2013 发表于 2020-12-23 09:58:27

xxx.S里面是是系统堆栈
1、程序上电,还没有开启FreeRTOS之前都使用。
2、开启后,进入中断后的所有操作都使用这个栈控件,中断服务程序里的句柄变量,中断嵌套等使用。

FreeRTOSConfig.h定义的heap大小
这个是FreeRTOS的一个全局动态内存,任务栈,各种通信组件等全部使用这个。

yey 发表于 2021-4-24 23:49:03

eric2013 发表于 2020-12-23 09:58
xxx.S里面是是系统堆栈
1、程序上电,还没有开启FreeRTOS之前都使用。
2、开启后,进入中断后的所有操作 ...

那FreeRTOS的这个全局动态内存是在占用的系统的全局变量吧,和系统的堆空间没有关系是吗

eric2013 发表于 2021-4-26 12:21:32

yey 发表于 2021-4-24 23:49
那FreeRTOS的这个全局动态内存是在占用的系统的全局变量吧,和系统的堆空间没有关系是吗

对,是这样的。
页: [1]
查看完整版本: FreeRTOS工程程序堆栈与任务堆栈的的关系是什么?