打印

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

[复制链接]
3019|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wl80382000|  楼主 | 2007-10-11 10:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天郁闷,碰到一个比较奇怪的死机故障
情况是这样
   cpu at9200 内存sdram 32M
   程序上电后复制到sdram中运行,地址是0x20800000
   死机现象很怪,
   首先位置固定,现象来说总是在切换到第N个画面的某个位置时候死掉,因为画面是自己画的,所以也能够知道是死在哪个函数中
   然后总是开机5--10分钟后才发生这种死机现象,就是说刚开机时候切换到哪个界面不会有事

现在我还没有加入操作系统,这个问题已经调了1.5天,试过很多办法,观察过相关位置的堆栈都没发现问题,甚至最后关掉所有中断,只留下触摸屏相关的一个串口,即使这样还是会发生死机

请大家帮忙分析一下大致原因?因为我现在已经没什么思路,开始怀疑硬件总线的故障了,所以欢迎大家指点,什么意见都行

相关帖子

沙发
wangkj| | 2007-10-11 10:34 | 只看该作者

软件故障的可能性大

也不排除硬件问题。建议你把硬件和软件结构描述清楚,这样才能更好的给你建议。

使用特权

评论回复
板凳
老狼| | 2007-10-11 21:16 | 只看该作者

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

给点建议吧!未必管用!
1:建议在主程序中,将部分功能一个一个的停掉!如果是软件的问题,通常会在停掉某个功能模块后,一切都正常了!再看这个有问题的模块,找原因!如果每个模块单独工作都正常,那就与硬件关系不大!

2:让程序在 flash 中运行。

3:将串口做成一个调试端口,在每个功能模块的开始工作前,通过232,发数据到计算机,发的调试信息很简单,1--255,应该足够用了,注意,发送数据,加一个延时程序,保证数据能够发出来,bps:115200,  延时1ms,就足够了!
这样的话,最后发出的那个数据,就是死机的地方!

1-3,综合考虑,应该能解决问题。如果1-3都没能就解决问题,那基本上验证硬件是没有问题的,你需要在软件上找了,方法3,最大的问题是由于加了延时,可能会造成将程序原有的死锁破坏掉,等到什么时候再造成死锁,很难预测,很难保证在将来多长时间会死机,如果设备允许24小时复位一次,那就用这个来保证吧,如果不允许,那你的测试将是一件很痛苦的事情,我的一个程序,出现过个别设备运行几个月后,出现异常,但不死机,我分析了很长时间,基本上解决了,但是谁又能保证不出新的问题?只能加运行报告,出了事,看运行报告!

使用特权

评论回复
地板
wl80382000|  楼主 | 2007-10-12 11:05 | 只看该作者

谢谢楼上几位!

都是金玉之言   呵呵


死机的位置能够定位   就是再调用一个固定函数的那句话上死掉
那附近的反汇编都看遍了   应该就是堆栈出了问题   可我观察SP,没发现泄漏情况   在死之前SP无异常   

现在问题已经解决   但我并不知道问题的原因!真是郁闷
情况是这样
我把程序搬移到0x20100000,就不会死机了,真是想不通,一直怀疑硬件问题,怀疑是总线方面出问题   但这个死机前的延时时间还有点规律5--10分钟
我有个同事甚至怀疑是芯片内模块出了故障。。。。他是作fpga的,呵呵

真是完全没思路。。。

如果是总线问题的话   除了一根根量线还有别的办法么?因为我不设计电路,有那位朋友指点下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

79

帖子

0

粉丝