前段时间一直被程序一下载,运行到main就堆栈溢出的问题所困扰,大家可以看我的帖子:http://topic.csdn.net/u/20120505/20/431fab75-9cb3-42d8-aa92-0ef919030c51.html
下载运行到main就溢出贴图:
刚下进去,看main的汇编代码还是对的,没有什么问题:
在启动程序那里,在调用main那里设了个断点:
点单步进入函数:
你看,main的代码咋全都变了,变成这样了:
IAR提示溢出了,真的溢出了吗??
我们看一下SP
0X5BFC,我的单片机是430 5438 栈顶是0x5C00,栈仅用了:0X5C00-0X5BFC=4 ,仅用了4字节!!!怎么会堆栈溢出,搞笑,该不会认为我是堆栈向上长的单片机,变成0X5BFC-X/0X5C00-X =90% 吧(X是栈底)
好,点全速运行一会,然后点暂停。再看状态:
堆栈显示正常,堆栈指针正常,汇编代码正常,程序在跑正常……
这什么情况?? IAR 耍我??bug?