STM8调试可以跑,烧录后不运行

[复制链接]
7875|6
 楼主| saystar 发表于 2011-6-13 19:39 | 显示全部楼层 |阅读模式
很奇怪的现象,debug一切正常,于是烧录,配置字也是一个没改,结果就不动了。有时候街上STLINK-SWIM后烧一下用能动。谁遇到过这样的问题啊?没有晶振可是STM8是默认16M主时钟,读出烧录的文件也是正确的。到底哪里出问题了啊?
bobo5650 发表于 2011-6-14 08:41 | 显示全部楼层
本帖最后由 bobo5650 于 2011-6-14 08:43 编辑

可能是RST线路有问题或者芯片本身有问题。
我曾经遇到过一些有问题的芯片,接debug的时候能跑,断开debug之后就在不停的reset。
总之你可以抓一下rst引脚的波形看看。

PS:楼主用的是什么型号的芯片?我之前发现出问题的芯片的型号是STM8S903K3B6。
t.jm 发表于 2011-6-14 10:03 | 显示全部楼层
STM8S903K3B6我有用,没遇到你说的现象。
香水城 发表于 2011-6-14 10:45 | 显示全部楼层
看看启动的时序是否合适,比如振荡器稳定的时间,其它外设稳定的时间等。
yinyehua 发表于 2011-6-14 10:55 | 显示全部楼层
是否与这个有关:Cosmic的debug下程序能运行,但release下却不一定,可能与编译器的优化和程序的写法有关,但Cosmic的优化设置却过于简单,可以检查一下最终程序的汇编代码.估计只能修改程序了
QQ截图未命名.jpg
zsh198702 发表于 2011-6-14 11:01 | 显示全部楼层
你可以看看你程序里面有没有While
要是有的话可能是死在这里了
建议用
do{
    }while();
 楼主| saystar 发表于 2011-6-14 11:30 | 显示全部楼层
查到原因了,因为上电要初始化I2C设备,在调试的时候I2C没问题,但是正常跑的时候I2C不稳定导致死锁。加入I2C错误退出机制和足够延时后就能跑了。谢谢各位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:生在中国又卒于中国,真是祸不单行啊!

19

主题

238

帖子

0

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