自定义组合按键进入Uboot

通过将uboot默认的任意键启动命令行修改为特定的组合键(如ctrl+q/Q,值为17),可以降低串口干扰导致异常进入uboot的风险。这种方法涉及修改uboot源码中的autoboot.c或main.c文件,通过查找'Hit any key'定位正确位置。更改后,当检测到tstc()返回真并获取到按键值17时,系统进入uboot命令行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值