张亚飞 发表于 2017-8-14 13:48:46

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

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





moyanming2013 发表于 2017-8-22 12:05:45

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

张亚飞 发表于 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

楼主,能说下是怎么解决的吗?我也遇到相同问题。{:3_52:}
页: [1]
查看完整版本: stm32栈区和堆区的设置大小问题