请问单片机程序在运行过程中会RAM溢出吗?

2020-02-09 09:34发布

如题,编译器编译时可以统计出ROM和RAM使用情况,ROM可以理解,但RAM使用情况是动态的,这个统计是怎么出来的?如果编译通过了,运行过程中如果有复杂的运算,会不会有ram不够用溢出的情况发生?哪位大哥知道说下?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zbcfscc
1楼-- · 2020-02-10 06:09
回复【6楼】cfqxdgr  
我对上面的理解是,局部变量是开在堆上的,但你又没有用,所以直接把它省略了,如果你在下面写上个循环,对它赋值就肯定不是不占乐。而放在外面,则是全局变量,肯定要分配空间
-----------------------------------------------------------------------

应该不是这样,下面的程序已经编译通过。



map文件里栈给了0x4000

Dynamic Memory Usage

region                     address                      maximum length  (dec)
------                     -------                      ---------------------
heap                             0                                   0  (0)
stack                        0x800                              0x4000  (16384)
zbcfscc
2楼-- · 2020-02-10 07:07
楼上的,你那硬件能运行吗?
wuha
3楼-- · 2020-02-10 08:04
如你所想,运行就复位。
zbcfscc
4楼-- · 2020-02-10 08:32
 精彩回答 2  元偷偷看……
millwood0
5楼-- · 2020-02-10 14:15
不是只统计全局变量,一个全局变量不使用,一样有ram的用量
我说的keil环境,只要统计出来够用,运行的时候肯定够用,当然数组越界的问题自己在软件中肯定要注意,这是自己的问题不是编译器的问题
xinfa190
6楼-- · 2020-02-10 18:29
回复【12楼】millwood0
"会不会有ram不够用溢出的情况发生?"
you can always code in a way so that you can exhaust memory on any computer hardware.

-----------------------------------------------------------------------

这位仁兄说的啥意思,有点不明白啊,英文烂!

一周热门 更多>