[STM8] STM8 ST-Link 仿真 赋0语句不执行

[复制链接]
1604|18
 楼主| LSLDAY 发表于 2017-5-2 16:38 | 显示全部楼层 |阅读模式
如图,仿真调试时发现这个情况  有的  赋0语句不执行
QQ截图20170502163352.png
 楼主| LSLDAY 发表于 2017-5-2 16:40 | 显示全部楼层
unsigned long att_id1;
att_id1 = 0;

仿真调试时这两句直接跳过
mmuuss586 发表于 2017-5-2 19:20 | 显示全部楼层
优化级别改低点看看
Xflyan 发表于 2017-5-2 23:16 | 显示全部楼层
因为这个=0后没有用到,后面又重新赋给SPI_READ了,等于这个赋0在上下文来看是没有任何意义的,编译器直接优化掉了
也就是不管你赋什么值都会被跳过
戈卫东 发表于 2017-5-3 00:21 | 显示全部楼层
可能它被认为没有存在的必要,给去掉了。
1223657347 发表于 2017-5-3 13:41 | 显示全部楼层
该变量加"volatile"关键字
dzguang 发表于 2017-5-3 14:05 | 显示全部楼层
楼上都是正解,实在想看,6楼是正解
伏尔加的鱼 发表于 2017-5-3 14:54 | 显示全部楼层
估计被优化掉了
zxmxx 发表于 2017-5-3 17:46 | 显示全部楼层
 楼主| LSLDAY 发表于 2017-5-5 16:09 | 显示全部楼层
mmuuss586 发表于 2017-5-2 19:20
优化级别改低点看看

是优化了 谢谢回复
 楼主| LSLDAY 发表于 2017-5-5 16:11 | 显示全部楼层
Xflyan 发表于 2017-5-2 23:16
因为这个=0后没有用到,后面又重新赋给SPI_READ了,等于这个赋0在上下文来看是没有任何意义的,编译器直接 ...

是的 后来多做了几次实验 也发现这个情况了 用到了就会赋值,没用到就会优化  谢谢回复了
 楼主| LSLDAY 发表于 2017-5-5 16:11 | 显示全部楼层
戈卫东 发表于 2017-5-3 00:21
可能它被认为没有存在的必要,给去掉了。

是的 优化掉了
 楼主| LSLDAY 发表于 2017-5-5 16:14 | 显示全部楼层
1223657347 发表于 2017-5-3 13:41
该变量加"volatile"关键字

防止 优化对吧 谢谢
 楼主| LSLDAY 发表于 2017-5-5 16:14 | 显示全部楼层
dzguang 发表于 2017-5-3 14:05
楼上都是正解,实在想看,6楼是正解

嗯  懂了  谢谢
 楼主| LSLDAY 发表于 2017-5-5 16:15 | 显示全部楼层
 楼主| LSLDAY 发表于 2017-5-5 16:17 | 显示全部楼层
51xlf 发表于 2017-5-5 22:47 | 显示全部楼层
这个怎么不能执行?
51xlf 发表于 2017-5-5 22:59 | 显示全部楼层
赋值位0,单步指令就能够完成。
 楼主| LSLDAY 发表于 2017-5-6 17:26 | 显示全部楼层
51xlf 发表于 2017-5-5 22:59
赋值位0,单步指令就能够完成。

被优化掉了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

288

帖子

5

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