CCS 4.1.2 关于堆栈的使用

2019-03-24 08:27发布

CCS4.1.2 一个237K大小的工程,烧写到FLASH后程序一直跑飞,怀疑是堆栈溢出,于是我将默认的0x400增大为0x3000,debug后查看.map文件,发现堆栈已使用0x3000,请问这种情况是“堆栈溢出”么,如果是,通常是由于什么原因造成的?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
lcofjp
1楼-- · 2019-03-24 12:05
堆是堆,栈是栈,具体描述要分开説。
栈溢出,通常是局部变量过多,函数调用嵌套过深导致。例如在函数里面申请过大的数组,或者递归调用等等,会导致栈溢出。
dontium
2楼-- · 2019-03-24 15:30
 精彩回答 2  元偷偷看……
dontium
3楼-- · 2019-03-24 16:22
堆栈在子程序调用时使用,一般使用LCR,它也仅用两个字节,子程序内有临时变量时再用2~4个字节,算下来也不会用多少堆栈的。
15951757556
4楼-- · 2019-03-24 21:47
lcofjp 发表于 2016-3-16 17:00
堆是堆,栈是栈,具体描述要分开説。
栈溢出,通常是局部变量过多,函数调用嵌套过深导致。例如在函数里面 ...

定义的局部变量时蛮多的,但是函数嵌套没有的啊,也没定义数组!而且我也想不明白,再大也不至于用了0x3000这么大的堆栈吧
15951757556
5楼-- · 2019-03-25 00:07
 精彩回答 2  元偷偷看……
15951757556
6楼-- · 2019-03-25 02:01
dontium 发表于 2016-3-16 18:02
堆栈在子程序调用时使用,一般使用LCR,它也仅用两个字节,子程序内有临时变量时再用2~4个字节,算下来也不 ...

嗯,那请问是不是会有一些程序的错误会造成堆栈的溢出?

一周热门 更多>

相关问题

    相关文章