你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32栈区和堆区的设置大小问题

[复制链接]
张亚飞 提问时间:2017-8-14 13:48 /
我在stm32f103c8 20k ram上跑着RT-Thread系统最近一直有个问题跑个半小时片子就死掉了。代码中找不到问题现在怀疑是ram不够用。下边截图是程序便宜完之后打各项内容的大小和代码里边的栈区堆区设置的大小。现在的问题是我把栈区和堆区分配的大小已经加大了过一段时间还是死机,那么如何根据编译出来的各项内容的大小定义堆区和栈区的大小呢?还有如何确定是不是ram空间不够用呢

编译结果.png


堆栈.png
收藏 评论5 发布时间:2017-8-14 13:48

举报

5个回答
moyanming2013 回答时间:2017-8-22 12:05:45
启动文件里面的栈和堆是全局性质的,比如RTOS也是个程序也需要栈(和/或堆),这部分栈和堆的使用可以在编译出来的map文件里面看到。
各线程有各自的栈,和启动文件里面的栈不是一类,尝试对需要增加栈空间的线程增加线程栈空间或许能解决你的问题,比如usb线程对栈的需求就比串口大,这个需要你根据自己的程序来判断,以及可以通过设置栈water mark(如果有的话)来自己调试出大小。

评分

参与人数 1ST金币 +3 收起 理由
zero99 + 3

查看全部评分

张亚飞 回答时间:2017-8-22 12:10:03
moyanming2013 发表于 2017-8-22 12:05
启动文件里面的栈和堆是全局性质的,比如RTOS也是个程序也需要栈(和/或堆),这部分栈和堆的使用可以在编 ...

谢谢,已解决。
明天 回答时间:2017-8-22 17:40:26
建议分享问题所在和解决方法
-熊大 回答时间:2017-11-24 10:15:28
现在的人 都是如何做到  有问题撒网就问,解决了却不分享?每个人都和你一样,就不用查了
若水至善 回答时间:2017-11-30 21:58:37
楼主,能说下是怎么解决的吗?我也遇到相同问题。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版