给点建议吧!未必管用!<br />1:建议在主程序中,将部分功能一个一个的停掉!如果是软件的问题,通常会在停掉某个功能模块后,一切都正常了!再看这个有问题的模块,找原因!如果每个模块单独工作都正常,那就与硬件关系不大!<br /><br />2:让程序在 flash 中运行。<br /><br />3:将串口做成一个调试端口,在每个功能模块的开始工作前,通过232,发数据到计算机,发的调试信息很简单,1--255,应该足够用了,注意,发送数据,加一个延时程序,保证数据能够发出来,bps:115200, 延时1ms,就足够了!<br />这样的话,最后发出的那个数据,就是死机的地方!<br /><br />1-3,综合考虑,应该能解决问题。如果1-3都没能就解决问题,那基本上验证硬件是没有问题的,你需要在软件上找了,方法3,最大的问题是由于加了延时,可能会造成将程序原有的死锁破坏掉,等到什么时候再造成死锁,很难预测,很难保证在将来多长时间会死机,如果设备允许24小时复位一次,那就用这个来保证吧,如果不允许,那你的测试将是一件很痛苦的事情,我的一个程序,出现过个别设备运行几个月后,出现异常,但不死机,我分析了很长时间,基本上解决了,但是谁又能保证不出新的问题?只能加运行报告,出了事,看运行报告!
|