请大家帮忙分析死机原因at9200

[复制链接]
 楼主| wl80382000 发表于 2007-10-11 10:01 | 显示全部楼层 |阅读模式
这两天郁闷,碰到一个比较奇怪的死机故障<br />情况是这样<br />&nbsp;&nbsp;&nbsp;cpu&nbsp;at9200&nbsp;内存sdram&nbsp;32M<br />&nbsp;&nbsp;&nbsp;程序上电后复制到sdram中运行,地址是0x20800000<br />&nbsp;&nbsp;&nbsp;死机现象很怪,<br />&nbsp;&nbsp;&nbsp;首先位置固定,现象来说总是在切换到第N个画面的某个位置时候死掉,因为画面是自己画的,所以也能够知道是死在哪个函数中<br />&nbsp;&nbsp;&nbsp;然后总是开机5--10分钟后才发生这种死机现象,就是说刚开机时候切换到哪个界面不会有事<br /><br />现在我还没有加入操作系统,这个问题已经调了1.5天,试过很多办法,观察过相关位置的堆栈都没发现问题,甚至最后关掉所有中断,只留下触摸屏相关的一个串口,即使这样还是会发生死机<br /><br />请大家帮忙分析一下大致原因?因为我现在已经没什么思路,开始怀疑硬件总线的故障了,所以欢迎大家指点,什么意见都行
wangkj 发表于 2007-10-11 10:34 | 显示全部楼层

软件故障的可能性大

也不排除硬件问题。建议你把硬件和软件结构描述清楚,这样才能更好的给你建议。
老狼 发表于 2007-10-11 21:16 | 显示全部楼层

碰到这种事情总是很烦的!

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

谢谢楼上几位!

都是金玉之言&nbsp;&nbsp;&nbsp;呵呵<br /><br /><br />死机的位置能够定位&nbsp;&nbsp;&nbsp;就是再调用一个固定函数的那句话上死掉<br />那附近的反汇编都看遍了&nbsp;&nbsp;&nbsp;应该就是堆栈出了问题&nbsp;&nbsp;&nbsp;可我观察SP,没发现泄漏情况&nbsp;&nbsp;&nbsp;在死之前SP无异常&nbsp;&nbsp;&nbsp;<br /><br />现在问题已经解决&nbsp;&nbsp;&nbsp;但我并不知道问题的原因!真是郁闷<br />情况是这样<br />我把程序搬移到0x20100000,就不会死机了,真是想不通,一直怀疑硬件问题,怀疑是总线方面出问题&nbsp;&nbsp;&nbsp;但这个死机前的延时时间还有点规律5--10分钟<br />我有个同事甚至怀疑是芯片内模块出了故障。。。。他是作fpga的,呵呵<br /><br />真是完全没思路。。。<br /><br />如果是总线问题的话&nbsp;&nbsp;&nbsp;除了一根根量线还有别的办法么?因为我不设计电路,有那位朋友指点下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

79

帖子

0

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

9

主题

79

帖子

0

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