uboot命令的实现代码:
uboot/common/cmd_xxx.c中,其中的若干个.c文件和命令有着直接的联系。每一个命令的背后都对应着一个函数来实现具体的命令功能。而很多的命令还需要参数的传递,这靠argc和argv来实现。
命令的实现过程:
1、命令行的进入:
在uboot的第二阶段BL2初始化完成之后,进入死循环,执行main_loop 函数,函数中再次调用一个重要的run_command()函数,实现命令的接收、解析:
for (;;)
{
main_loop ();
}
2、命令的处理函数:run_command()
(1)首先通过控制台获取命令;
(2)命令的解析:使用parse_line函数将命令与其参数进行解析;
/* Extract arguments */
if ((argc = parse_line (finaltoken, argv)) == 0) {
rc = -1; /* no command at all */
continue;
}
将命令与参数进行分离,分别存入argv[ ]数组内。
(3)在命令集中对输入的命令进行查找:
/* Look up comman