[STM32F1] STM32仿真和直接运行的现象不一样,

[复制链接]
3178|12
 楼主| wang12zhe 发表于 2014-6-19 12:56 | 显示全部楼层 |阅读模式
我修改了程序里的一处,实现每次重启在EEROM特定位置加一,在数码管上显示重启次数。仿真的时候一切正常,重启一次就加一,但是拔掉仿真器直接运行就不正常了,数值不变了
拿起书本 发表于 2014-6-19 16:59 | 显示全部楼层
仿真运行和直接运行当然是区别的, 除了速度的差别外.
其实最大的是对于外部的响应, 特别有时序要求时.
玄德 发表于 2014-6-19 18:21 | 显示全部楼层

用仿真器连续运行,正常吗?
 楼主| wang12zhe 发表于 2014-6-22 19:24 | 显示全部楼层
玄德 发表于 2014-6-19 18:21
用仿真器连续运行,正常吗?

连续运行是正常的,但是拔掉仿真器就不正常了,
wfz_cn 发表于 2014-6-23 08:14 | 显示全部楼层
很可能是运行速度的影响
huangfeng33 发表于 2014-6-23 10:19 | 显示全部楼层
建议楼主仔细查看一下电源是否有问题。
猪肉荣 发表于 2014-6-23 14:11 | 显示全部楼层
这个问题我遇到过,我之前的原因是时钟启动不太正常。看一下时钟部分的代码,希望对你有帮助
 楼主| wang12zhe 发表于 2014-6-24 12:41 | 显示全部楼层
谢谢各位,已经解决了,将程序里的while换成do……while(),
同事说这两个的汇编是有差异的
mengzhi 发表于 2014-6-24 13:15 | 显示全部楼层

你这差异也太大了;
suiyy 发表于 2014-6-24 21:59 | 显示全部楼层
这两个是完全两种执行逻辑(虽然都是循环),跟汇编有什么关系?
 楼主| wang12zhe 发表于 2014-6-26 21:23 | 显示全部楼层
mengzhi 发表于 2014-6-24 13:15
你这差异也太大了;

你别小瞧这点差异,while循环编译后被优化了,成了死循环,无语
 楼主| wang12zhe 发表于 2014-6-26 21:24 | 显示全部楼层
suiyy 发表于 2014-6-24 21:59
这两个是完全两种执行逻辑(虽然都是循环),跟汇编有什么关系?

你别小瞧这点差异,while循环编译后被优化了,成了死循环,无语

评论

如果改一下编译器的优化方式会不会有不同的结果?  发表于 2019-7-29 11:27
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

205

帖子

1

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