I.问题现象
采用AM3352方案的前置机在现场发现上电不启动,LED灯显示乱。如下图所示:
该样机序列号:TS04180704348。
II.问题分析
本次样机寄回后 ,上电工作正常,多次上下电复现故障后,发现存在以下现象:1、uboot 启动不正常。打印信息如下:
U-Boot SPL 2013.01.01 (Aug 08 2018 - 10:05:53)
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
U-Boot SPL 2013.01.01 (Aug 08 2018 - 10:05:53)
U-Boot SPL 2013.01.01 (Aug 08 2018 - 10:05:53)
U-Boot SPL 2013.01.01 (Aug 08 2018 - 10:05:53)
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
有时候只打印Uboot,有时候打印多两行信息。
停止外部看门狗后,启动任务也不继续进行,也即打印完毕version 2.0后死机。未断电时,无法继续启动。初步判断系统复位出了问题,死机。
产品开发过程中发现静电有概率导致死机,分析报告见《静电导致CPU死机》本样机已经是优化后的硬件。再次确认冷热复位上电时序如下:黄色为冷复位,蓝色为热复位。
继续分析复位问题:
对应电路如下:COLDRSTn是冷复位,WARMRSTn是热复位
CPU 复位时序要求如下:
PRM_RSTTIME值如下表:
复位时序未看出异常。
分析SYSBOOT启动设置项,因设计改动后,看门狗复位也变成了冷复位,会读取SYSBOOT 启动项
Sys - boot 启动设置如下: 从NAND 启动,启动时测试波形也没有问题。
经测试引脚电平,复位时引脚电平无异常。LCD0~5 为10011 LCD10,11引脚为0。定义如下表:
Boot 启动逻辑: 满足 PORz 上电时序,冷启动,加载sysboot 配置。(看门狗复位也被设计成PORz复位)。
至此,无法确认boot阶段低概率死机是什么原因。
2、内核启动不正常:
正常启动打印信息:
异常启动打印信息1:内核信息打印未完全后跳转到U-Boot 启动信息。
异常启动打印信息2:内核启动信息打印未完全,跳转到U-Boot启动信息,跟1有一些差异,初步推断看门狗喂狗出现异常。该异常已有案例分析:《165CV1.10试流发现一台机器偶发上电过程中重启问题分析》,并给出了修复意见。经查看本次样机代码版本:
已经是修复后的版本。
上述现象推断可能还存在内核喂狗超时的情况发生,不排除死机情况。
看门狗电路如下:
用示波器测量WDI引脚,发现存在1.6s的持续低电平阶段:导致看门狗复位,波形如下:
禁止外部看门狗,发现内核异常打印信息如下:
异常启动打印信息3:
死在红色标记中。使能看门狗复位后重新启动成功。
异常分析:
此处红色标记正常情况下地址如右图
存储器地址分配如下图:
是否可能DDR3 SDRAM 时序匹配有关,鉴于设计时已经进行了时序匹配,RAM及CPU芯片焊接不良可能性大。
将RAM芯片及CPU热风枪吹后继续运行,观察是否会出现异常情况。
运行48小时,未发生死机问题。
3、长时间工作复位,然后出现1,2所述故障,可能死机。
从上述打印信息可以看出,程序运行时出现了异常, monitortask 任务重启了设备。 因设备重启存在1,2问题,因此出现运行一段时间后死机问题。
问题分析:
1、用户程序工程 采用V1.26版本下载,规约跟V1.00管理机规约一致, 该版本工程稳定运行1年未发生异常现象。
2、分析messages:#grep error /messages
Oct 8 15:22:12 M28x user.emerg kernel: [ 100.517476] Internal error: Oops: 817 [#1]
再次查看前后文信息:debug登录后发生了指针为空的事件。提示信息如下图。删除messages信息,再次发生异常后继续跟踪(再次发生后未产生messages信息)。
解决办法:
1、用户软件长期稳定运行1年以上(1000台设备),结合kernal启动加载SDRAM死机以及短时间运行死机, SDRAM总线不稳定可能性极大。 开发时已经针对DDR3 进行了时序补偿,该样机焊接问题可能性大。 用电吹风对SDRAM及A8CPU进行加热处理后, 运行36小时无异常,持续观察中。
2、创建脚本程序,运行上电/下电测试。 连续测试10000次,观察是否正常。 (待补充)
III.解决方法
临时措施:
1、CPU板加热处理。
永久措施:
2、增加拷机监测。
IV.总结和建议
操作系统运行不稳定, 很大可能是内存时序不满足要求,如果仅为个别样机,焊接问题可能性很大。
来源:CSDN
作者:roostnew
链接:https://blog.csdn.net/roostnew/article/details/102523951