本文共 695 字,大约阅读时间需要 2 分钟。
看下ping命令实现的例子:
文件common/cmd_net.c
static int do_ping(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{ if (argc < 2) 参数个数 包括命令名本身, 例如ping 192.168.0.1 就是2个参数 一个ping 一个192.168.0.1 return -1; NetPingIP = string_to_ip(argv[1]); if (NetPingIP == 0) return CMD_RET_USAGE; if (NetLoop(PING) < 0) { printf("ping failed; host %s is not alive\n", argv[1]); return 1; } printf("host %s is alive\n", argv[1]); return 0;}
U_BOOT_CMD( 主要是这个结构,这是一个宏定义,具体可以查看U_BOOT_CMD宏 的定义,网上资料也很多。
ping, 2, 1, do_ping, "send ICMP ECHO_REQUEST to network host", "pingAddress" );这一行:
ping, 2, 1, do_ping, ping 是命令名称,2是命令参数的个数,包括命令名本身, 这个一定要写对,否则 do_ping中得不到正确的参数
1表示是否repeat,即按回车键时候重复上一个ping命令。
仿照这样的例子就很容易添加一个命令了。
转载地址:http://rgqji.baihongyu.com/