嵌入式技术论坛
直播中

ss

6年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[问答]

请问rt_thread的stack_size该如何去定呢

我创建了一个thread,里面只有一个64字节的变量,rt_thread_create时,参数stack_size为128时就运行不正常,而大于192就运行正常了,所以想了解这个stack_size如何定?

谢谢!

回帖(3)

ss

2022-3-15 09:21:07
finsh显示的就是实际最大的栈使用值,和那个栈溢出检查无关。
举报

ss

2022-3-15 09:25:00
那不知FINSH中显示的那个值是怎么取来的呢?
比如刚好运行中都没有切换任务,
程序调用一个子函数,往STACK里面压了好多数据,然后返回时又弹出了,还是原样,这样,那个max used是当前的SP还是子函数里面的SP最大值呢?
举报

ss

2022-3-15 09:25:19
栈开始有个初始值,在finsh里调用list_thread函数,会去读取线程栈,如果不是初始值就认为已经使用。

所以finsh里显示的max used是历史上线程栈使用的最大栈值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分