上电偶发停留在uboot中问题分析

I.问题现象

测试发现165E/C通讯管理机在上电时,小几率的会出现进入uboot命令行状态,导致上电失败。问题出现后,接debug调试串口观察发现处于如下的阶段中:
在这里插入图片描述
目前的uboot在进入此命令输入状态后会一直停留在此阶段,无外接干扰的情况下会导致系统无法正常启动。

II.问题分析

正常情况下,外接调试串口,在uboot引导阶段通过调试串口向设备输入任意字符(比如打开串口监控工具,键盘按任意键),uboot会自动停止在命令等待输入状态下,用于在uboot中通过命令来设置相关参数。因此推断是否是因为频繁上下电过程中调试串口接口部分有干扰导致的问题?进行试验验证,通过给下面的AU0芯片的7、8脚外接低电平进行测试:
在这里插入图片描述
测试发现,在uboot引导阶段外接低电平时,uboot必然会停在等待命令输入阶段,因此uboot中需要做特殊处理,引导阶段只响应特定的字符才会停留在待输入命令阶段,其他字符不响应,直接自动引导uImage。
完成uboot阶段的字符过滤功能后,再次进行测试,首先给AU0芯片的7、8脚外接低电平测试,测试结果:uboot阶段能够正常自动引导uImage,不再受外接的低电平影响。
之后进行长时间上下电拷机测试,发现偶发的还是会出现停在uboot阶段的问题。外接调试串口对拷机过程的串口信息进行监控发现,在出现停留在uboot阶段的现象时,对应的串口打印信息如下:
Warning: FEC0 MAC addresses don’t match:
Address in SROM is 00:04:d4:fe:01:0a
Address in environment is 02:00:92:b3:c4:a8
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x200000, size 0x300000
3145728 bytes read: OK
Wrong Image Format for bootm command
ERROR: can’t get kernel image!
MX28 U-Boot >
MX28 U-Boot >
MX28 U-Boot >
从打印信息看,先问题时有相应的错误信息提示Image文件获取错误,进行了多次拷机测试,每次出现问题时都是由于此原因引起的,出现问题时,人为手动输入reset命令,重启uboot后即恢复正常,因此在uboot中添加规避措施:uboot代码中进入此错误后不仅仅是打印提示错误信息,还进行reset复位uboot操作:
在这里插入图片描述
之后,再次进行长时间拷机测试,测试结果:连续上下电一万次以上,无偶发停留在uboot待输入命令阶段,通过监控到的打印信息,搜索ERROR: can’t get kernel image!错误信息,期间有数次此错误出现,之后自动复位uboot重新加载成功,规避方案测试无问题。

III.解决方法

1、Boot阶段增加字符过滤机制,uboot引导阶段只响应回车键作为停留在uboot待输入命令行,其他字符输入或者随机干扰不响应,自动加载uImage。
2、针对获取uImage失败的问题,增加出现此问题时的reset uboot机制进行规避。

IV.总结和建议

针对偶发问题,引入自动化测试机制长期模拟复现,有助于加快问题的分析解决进度。缩短产品稳定周期。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值