8513|13

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

程序运行了几个小时,但是突然死了,连中断都进不去。。 [复制链接]

程序运行了几个小时,但是突然死了,连中断都进不去。。
我通过网络发送同一个命令,在接受中断中保存命令,然后用程序查询的方式查询保存的命令。
但是有时候一个命令完整的执行完成后,向pc发送一个数据,并且pc返回了一个ack应答。然后程序就突然死了。连网络中断、与另外一个外部中断都进不去。我在中断里面输出串口调试信息的。

这可能是因为什么原因呢???
此帖出自stm32/stm8论坛

最新回复

嗯 正准备这么调试呢  详情 回复 发表于 2011-7-29 11:19
点赞 关注
 

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 没头没脑的问题。
此帖出自stm32/stm8论坛
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 程序跑死了,可以加看门狗啊
此帖出自stm32/stm8论坛
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 

哎。。。程序挺大的。。出了问题,别人还能看看现象,然后人工处理一下。。但是加了看门狗,连看现象的机会都没有了。。。
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 所以说刚开始开发出来产品,在实验室验证阶段的时候,不能加看门狗,如楼上所说“出了问题,别人还能看看现象,然后人工处理一下。。但是加了看门狗,连看现象的机会都没有了”,就是为了看看在没有看门狗的情况下,系统长时间运行会不会死机,如果死机就要查找原因,找到之后彻底解决了,验证通过后出产品的时候再加上。我现在做的系统就通过这个发现了STM32软件死了,仿真一看死在读PCF8563上了,有个while()等待,后来把I2C速度从400降到100就OK了,通过这么长时间的观察发现I2C远远没有SPI稳定,因为SPI只对沿儿敏感,不像I2C有复杂的时序,我个人比较倾向于能不用I2C就不用,实在找不到替换器件了没办法才用。当然,也很有可能是STM32的I2C接口我在软件上没用好。
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 

怎么用仿真看东西啊???我现在都是用串口来输出各种各样的数据。。如果要用jtag调试的话,我发现我的程序跑不了多久就挂了。。好像用jtag测试不适合在运行时间很长的条件下测试。。。
我的这个程序运气好能运行3天,运气不好的话,只能运行3、4个小时。因为是用串口在各种各样的函数里面输出调试数据,所以有时候死机都不知道具体死在了什么地方。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 

另外,我iic也曾经死在那里我。因为我用了eeprom器件,另外还有其他单片机用iic进行通信。我使用主发模式发送几个字节,然后立即使用从收模式接收单片机发送的数据,对方如果不能及时收到我的应答,就释放iic总线,然后我就会在从收那里死等,后来改成while(i<50000)..这样的方式,不能在一定时间内返还则认为失败,就没有问题了。
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 串口肯定是只能烧写,不能仿真的,建议你弄个仿真器,那样就可以看程序到底死在哪了
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 想查问题,最好弄个仿真器,仿真看,仿真器对于调试程序来说,可以说是必须的
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(中级)

10
 
                                 想查问题,最好弄个仿真器,仿真看,仿真器对于调试程序来说,可以说是必须的
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 谢谢各位朋友的解答~~~
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

12
 
5# winloop  
怎么用仿真看东西啊???我现在都是用串口来输出各种各样的数据。。如果要用jtag调试的话,我发现我的程序跑不了多久就挂了。。好像用jtag测试不适合在运行时间很长的条件下测试。。。
我的这个程序 ...
JTAG只是帮你把代码下载到flash,然后让代码运行,在代码运行过程中,JTAG不会对你的程序有任何影响。

你用JTAG调试,发现程序挂了,你也不看看为什么挂了,就改用串口了,你的程序能正常跑么。。。。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 用仿真器最好打断点测试,你说你的程序跑挂了,你看看死在哪了
此帖出自stm32/stm8论坛
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

14
 
嗯 正准备这么调试呢
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表