uboot源码中提供的进入uboot命令行的方式为输入任意键。这样有一个隐患,当调试串口有干扰输入信号时,系统会将干扰信号识别为任意键而进入uboot,从而无法正常引导操作系统,这样对产品将是灾难性的影响。
解决或者规避该问题的方法之一是将任意键改为组合键减小异常几率,当然归根结底还是要从硬件的角度避免干扰信号的产生。
修改方法:
不同版本需要修改的文件不一样,可能是common/autoboot.c或者common/main.c。
或者在uboot源码根目录搜索关键字’Hit any key’寻找该文件。
$find .|xargs grep -ri ‘Hit any key’
./common/autoboot.c: printf(“Hit any key to stop autoboot: %2d “, bootdelay);
代码片段:
static int __abortboot(int bootdelay)
{
int abort = 0;
unsigned long ts;
#i