u-boot版本为2014.04。
要使用这功能,首先不能定义CONFIG_AUTOBOOT_KEYED,因为mail.c中有:
static int abortboot(int bootdelay)
{
#ifdef CONFIG_AUTOBOOT_KEYED
return abortboot_keyed(bootdelay);
#else
return abortboot_normal(bootdelay);
#endif
}
abortboot_normal才是正常的延时启动函数,如果定义了CONFIG_AUTOBOOT_KEYED,就会进入
abortboot_keyed函数,该函数需要按下指定按键才会停止autoboot,并且可以添加菜单。
process_boot_delay
if (bootdelay != -1 && s && !abortboot(bootdelay)) {
#if defined(CONFIG_AUTOBOOT_KEYED) && !defined(CONFIG_AUTOBOOT_KEYED_CTRLC)
int prev = disable_ctrlc(1); /* disable Control C checking */
#endif
run_command_list(s, -1, 0);
所以configs中配置如下:
/*#define CONFIG_CMD_BOOTMENU*/
#ifdef CONFIG_CMD_BOOTMENU
#define CONFIG_MENU
#define CONFIG_MENU_SHOW
#define CONFIG_AUTOBOOT_KEYED
#endif
#define CONFIG_AUTOBOOT_PROMPT \
"Press any key to abort autoboot in %d seconds.\n",bootdelay
#define CONFIG_AUTOBOOT_DELAY_STR "CONFIG_AUTOBOOT_DELAY_STR:any key to abort autoboot\n"
现在来看CONFIG_AUTOBOOT_KEYED,如果选择从abortboot_keyed启动,不能定义:
#define CONFIG_ZERO_BOOTDELAY_CHECK
阅读(3811) | 评论(0) | 转发(0) |