{
#ifndefCONFIG_SYS_HUSH_PARSER
staticchar lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
int len;
int rc= 1;
int flag;
#endif
// 声明一些hush 参数变量
#ifdefined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
char*s;
int bootdelay;
#endif
/*在uboot启动后会倒计时CONFIG_BOOTDELAY,如果沒有收到用户的输入则自动去执行宏CONFIG_BOOTCOMMAND中设置的命令。这里声明倒计时使用的变量*/
#ifdefCONFIG_SYS_HUSH_PARSERu_boot_hush_start ();
#endif
//使用hush命令解析器。u_boot_hush_start()在common/hush.c中实现
#ifdefCONFIG_AUTO_COMPLETE//自动补全命令,这里未定义使用
install_auto_complete();
#endif
#ifdefined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)s= getenv ("bootdelay");
bootdelay= s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY;
//从环境变量中获取bootdelay参数(倒计时参数),得到自动启动缺省镜像文件的延时(单位是秒)。CONFIG_BOOTDELAY在x4412.h中设置为3秒
debug("### main_loop entered: bootdelay=%d\n\n", bootdelay);
s= getenv ("bootcmd");//从环境变量中获取bootcmd参数,得到在启动延时过程中自动执行的命令。
debug("### main_loop: bootcmd=\"%s\"\n", s ? s :"<UNDEFINED>");
if(bootdelay >= 0 && s && !abortboot (bootdelay)){ //判断延时时间和是否有按键
#ifndef CONFIG_SYS_HUSH_PARSER // 定义run_command(s, 0);
#else
parse_string_outer(s, FLAG_PARSE_SEMICOLON |
FLAG_EXIT_FROM_LOOP);
#endif
//当得到了bootcmd参数,bootdelay参数也是大于等于0,并且在启动延时过程中没有按下
//任意键时,执行parse_string_outer函数,该函数的作用是解释bootcmd参数并执行,它是
//在common目录下的hush.c文件内定义的。<