请教一下freeRTOS里的任务堆栈具体怎么理解

2019-12-10 18:32发布

第一次用RTOS写stm32f103上的程序,没有理解定义的任务堆栈大小,是指任务函数占用的临时变量空间吗?那如果在任务函数里还调用其他子函数,子函数的临时变量也要算在任务堆栈里吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
我是一个大白菜
1楼-- · 2019-12-11 00:00
自己先顶一下
wuha
2楼-- · 2019-12-11 01:44
当然了,除非定义的全局变量,只要是任务函数内部用到的临时变量,传递参数等,都是通过给任务分配的堆里申请的。
dalige
3楼-- · 2019-12-11 05:21
 精彩回答 2  元偷偷看……
Jmhh247
4楼-- · 2019-12-11 07:16
你的理解是正确的。

任务堆栈,是裸机和RTOS的明显区别之一

裸机只要计算好最大那个函数的堆栈就行了,RTOS每个任务有单独的堆栈,这就是RTOS比裸机吃内存的原因。
didadida
5楼-- · 2019-12-11 10:23
是的,再切换到新任务的时候,栈指针也会切换的,所以调用的函数之类的临时变量都会占用当前任务的栈空间。
styleno1
6楼-- · 2019-12-11 16:20
多任务或前后台的栈的使用基本一样,包含动态局部变量、函数嵌套、中断的开支

一周热门 更多>