micheal7的个人空间 https://bbs.21ic.com/?439509 [收藏] [复制] [RSS]

日志

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

已有 944 次阅读2009-3-18 05:41 |系统分类:单片机| iar430, RAM, 堆栈, 溢出


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不被改变,以防发生溢出


路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)