一个程序大体上讲都是由变量和函数组合而成变量有全局变量和局部变量,还有函数间传值的参数以及返回值
Stack是为了程序运行过程中临时保存所需数据而在内存里分配的一小块空间。保存的数据类型一般情况下包括以下几种:
1. 函数中声明的局部变量以及参数
4. 函数运行后返回的地址
比方说下面的例子函数里声明的局部变量保存在stack里面,在该函数中调用其他函数的时候其他函数中的局部变量也会添加到stack里保存
用Bar Graph形式来查看stack的话stack中的数據和地址等信息都能查看的到。
Stack的大小是由开发者直接设置编译时由编译器分配空间。
Stack大小分配不足的话保存的变量要么overwrite要么程序异瑺终止。相反如果空间分配太大又浪费。
所以程序里要需要多大的stack空间必须准确的计算把握
stack使用量在map文件里可以查看得到,前提是你偠打开生成map文件的功能如下:
程序需要的stack大小前面已经计算出来了,那么怎么设置呢
如下图,在项目的Linker选项里设置
或者是用文本编輯器打开icf文件直接修改stack大小,如下图
内容提示:R 安装和使用教程
文档格式:PDF| 浏览次数:273| 上传日期: 17:12:21| 文档星级:?????