打印

全局变量莫名其妙地被改变

[复制链接]
1143|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yunkai_2007|  楼主 | 2014-2-22 22:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   最近在用IAR EW for arm 开发程序,程序是下载到RAM中执行的,函数的实参为一个全局变量,调用完之后全局变量的值莫名其妙的被改变了,期间并没有在任何地方对全局变量进行任何操作。
    查看反汇编代码,正是当执行完以下指令后,全局变量发生了改变:
    0x2000014c:0xb530    push   {R4,R5,LR}   
    这个问题困扰了两天了,个人怀疑是不是栈溢出了,但是又不知道如何解决,希望明眼人能指点迷津,在此先谢过大家了。

相关帖子

沙发
zchong| | 2014-2-23 11:19 | 只看该作者
把栈空间设大一点

使用特权

评论回复
板凳
嵌入式云终端| | 2014-2-23 13:56 | 只看该作者
修改堆栈不见得能改善多少,建议把全局变量数量减少,这个是治本,否则,程序的稳健性谈不上有多好

使用特权

评论回复
地板
airwill| | 2014-2-24 21:09 | 只看该作者
利用调试器, 通过跟踪, 在这条指令处, 看看堆栈指针和变量地址, 是否存在冲突

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

1

粉丝