GD32F130,IAR,变量赋值无效果

[复制链接]
2838|11
onesimplesong 发表于 2015-2-27 17:19 | 显示全部楼层 |阅读模式
本帖最后由 onesimplesong 于 2015-2-27 17:24 编辑

在某个函数中有这样一段代码
int var = 0;
if (xxx) {
   var = 1;                    (1)
}
(1)对应生成的汇编为:
MOVLT.W       R10, #1
打断点跟踪发现,(1)这条赋值语句没有起到作用,跑完var(即R10)还是等于0。
同样的代码在使用ST的MCU时没有遇到这种问题,不知道是为啥。

期待大神们的回复 :),谢谢!
kekeke 发表于 2015-2-27 19:42 | 显示全部楼层
被优化掉了?不应该呀,加static看看
 楼主| onesimplesong 发表于 2015-2-28 10:31 | 显示全部楼层
kekeke 发表于 2015-2-27 19:42
被优化掉了?不应该呀,加static看看

应该不是被优化掉了,因为已经生成了汇编,但奇怪的是这条汇编赋值没有发生任何作用。
那么多地方要赋值,要是都这样可不好办。
 楼主| onesimplesong 发表于 2015-2-28 22:38 | 显示全部楼层
估计是调试器有问题,结贴。。
xyz549040622 发表于 2015-3-1 18:01 | 显示全部楼层
onesimplesong 发表于 2015-2-28 22:38
估计是调试器有问题,结贴。。

是不是因为**的原因呢?
zchong 发表于 2015-3-2 12:40 | 显示全部楼层
R10里的值变化了没?
很可能有优化原因,可以价格volatile试试看。
戈卫东 发表于 2015-3-2 16:36 | 显示全部楼层
指令执行了,条件没有满足,数据传送没有做。
戈卫东 发表于 2015-3-2 16:37 | 显示全部楼层
带条件码的指令执行会有两种结果的。。。。。。。
vivilzb1985 发表于 2015-3-6 15:37 | 显示全部楼层
这个是直接在汇编中进行的,就不太清楚了。
shenmu2012 发表于 2015-3-8 16:55 | 显示全部楼层
这一句汇编赋值操作的,还不太明白的
comeon201208 发表于 2015-3-11 23:04 | 显示全部楼层
这样的做法呢我没用过的。。
angerbird 发表于 2015-3-12 20:54 | 显示全部楼层
算了,,直接是不很清楚的啊。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部