首先给vivi增加网络下载的命令。
在vivi源码中, ./drivers/net/net_device.c中有关于网络命令的代码。
/*
* Network Interface
* based on ARMBOOT
* Author : SW.LEE
*
*/
#include <config.h>
#include <printk.h>
#include <heap.h>
#include <time.h>
#include <command.h>
#include <types.h>
#include <io.h>
#include <sizes.h>
#include <vivi_string.h>
#include <errno.h>
#include <string.h>
#undef NETDEV_DEBUG
#ifdef NETDEV_DEBUG
#define DPRINTK(args...) printk(##args)
#else
#define DPRINTK(args...)
#endif
void command_tftpboot(int argc, const char**argv);
static user_subcommand_t net_cmds[] = {
{
"tftpboot",
netboot_common,
"net tftpboot \t\t-- tftp file transfer"
}
};
void command_net(int argc, const char **argv)
{
switch (argc) {
case 1:
invalid_cmd("net", net_cmds);
break;
case 2:
if (strncmp("help", argv[1], 4) == 0) {
print_usage("", net_cmds);
break;
}
default:
execsubcmd(net_cmds, argc-1, argv+1);
}
}
user_command_t net_cmd = {
"net",
command_net,
NULL,
"net [{cmds}]\t\t\t-- Manage Network functions"
};
|
当我们使用net这个命令的时候,vivi就会调用command_net这个函数。
默认情况下,vivi并没有添加这个命令。于是,我们将这个命令加入到vivi中:
将net_device.c移到lib目录下。然后修改command.c文件。在你认为合适的地方加入
extern user_command_t net_cmd;
然后在int init_builtin_cmds(void)添加
add_command(&net_cmd);
在Makefile的相应部分加入obj-y += net_device.o
想测试以下,增加命令是否成功。为了编译成功,先改一下netboot_common为NULL。编译,下载,启动,输入net或net help,可发现以成功添加了net命令。
阅读(1972) | 评论(0) | 转发(0) |