搜索
bottom↓
回复: 6

求助:任务堆栈溢出

[复制链接]

出0入0汤圆

发表于 2018-2-28 19:38:14 | 显示全部楼层 |阅读模式
在rtos中,使用xTaskCreate创建任务后,多次调用该任务导致堆栈溢出,大佬们知道怎么优化这种多次调用任务创建,防止堆栈溢出
或者说本身就是不合理的,推荐一个好的方法

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入54汤圆

发表于 2018-2-28 21:01:36 | 显示全部楼层
你的意思是创建这个任务后又删除然后再创建再删除,几次后溢出?

出0入0汤圆

发表于 2018-3-1 09:31:08 | 显示全部楼层
多次调用任务创建

并不会造成溢出,线程里面使用过大才会溢出。

软件方面自己测算好栈的最大深度,确保不会溢出。
包括可能调用的函数指针。
并尽量避免递归,如果必须有,最大递归深度也要明确。
开发期间可以让线程切换时做栈检查。

硬件方面,可以对栈底做保护,当栈溢出时能从硬件上面探查到。

出0入0汤圆

 楼主| 发表于 2018-3-1 14:45:29 | 显示全部楼层
lusson 发表于 2018-2-28 21:01
你的意思是创建这个任务后又删除然后再创建再删除,几次后溢出?

是的,多次后堆栈溢出了

出0入0汤圆

 楼主| 发表于 2018-3-1 14:47:08 | 显示全部楼层
aozima 发表于 2018-3-1 09:31
并不会造成溢出,线程里面使用过大才会溢出。

软件方面自己测算好栈的最大深度,确保不会溢出。

谢谢大牛

出0入0汤圆

发表于 2018-3-3 08:58:28 | 显示全部楼层
应该是任务里面用了什么算法导致递归,或者栈分配的不够大导致的。

出0入0汤圆

发表于 2018-3-3 15:59:46 | 显示全部楼层
我原来开发的时候也遇到这个问题,查了很久,一直没定位。
现在都是使用静态任务创建,静态分配。
因为做电机控制,溢出的话,电机行为不可控,太危险。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 05:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表