打印
[STM32F1]

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

[复制链接]
2455|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
用仿真器连续运行,正常吗?

连续运行是正常的,但是拔掉仿真器就不正常了,

使用特权

评论回复
5
wfz_cn| | 2014-6-23 08:14 | 只看该作者
很可能是运行速度的影响

使用特权

评论回复
6
huangfeng33| | 2014-6-23 10:19 | 只看该作者
建议楼主仔细查看一下电源是否有问题。

使用特权

评论回复
7
猪肉荣| | 2014-6-23 14:11 | 只看该作者
这个问题我遇到过,我之前的原因是时钟启动不太正常。看一下时钟部分的代码,希望对你有帮助

使用特权

评论回复
8
wang12zhe|  楼主 | 2014-6-24 12:41 | 只看该作者
谢谢各位,已经解决了,将程序里的while换成do……while(),
同事说这两个的汇编是有差异的

使用特权

评论回复
9
mengzhi| | 2014-6-24 13:15 | 只看该作者

你这差异也太大了;

使用特权

评论回复
10
suiyy| | 2014-6-24 21:59 | 只看该作者
这两个是完全两种执行逻辑(虽然都是循环),跟汇编有什么关系?

使用特权

评论回复
11
wang12zhe|  楼主 | 2014-6-26 21:23 | 只看该作者
mengzhi 发表于 2014-6-24 13:15
你这差异也太大了;

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

使用特权

评论回复
12
wang12zhe|  楼主 | 2014-6-26 21:24 | 只看该作者
suiyy 发表于 2014-6-24 21:59
这两个是完全两种执行逻辑(虽然都是循环),跟汇编有什么关系?

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

使用特权

评论回复
评论
风一般的枪 2019-7-29 11:27 回复TA
如果改一下编译器的优化方式会不会有不同的结果? 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

205

帖子

1

粉丝