IAR430中查看ram使用情况以及如何判断堆栈是否溢出

iar430中定义的变量是从ram的起始地址向上,而堆栈是从ram的终止地址向下。

以msp430f135为例,它是512bytes的ram,起始地址为200h,终止地址为3ffh,所以它的变量是从200h开始,向3ffh方向存放,而堆栈是从3ffh开始,向200h方向压栈。

当变量存储空间和堆栈最大占用空间在中间相遇时,就发生了堆栈溢出。

下面就详细介绍如何查看ram使用情况:

1 当然是烧程序到目标板里呀

2 选择window/memory,打开memory窗口

3 从ram的起始地址200h开始,输入200,再回车

4 选中200h~3ffh区域(135为512ram),右键选择memory fill……

5 在memory fill中的start写入:0x200,length写:512,value填入FF(也可填入其他值),被选中的区域全填充FF

6 运行程序,跑一遍设计的所有功能,再停止cspy,看看memory窗口

7 如果再填充的区域内已经没有FF存在,就说明已经发生堆栈溢出或是会有溢出的危险(ram刚好够用)。最好保留一定余量的ram不被改变,以防发生溢出

永不止步步 发表于03-07 10:22 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号