⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netcmd.c

📁 使用Linux ARM GCC编译器来编译
💻 C
字号:
/* netcmd.c*/

#include "config.h"#include "machine.h"#include "command.h"#include <priv_data.h>#include "heap.h"#include "vivi_string.h"#include "vivi_lib.h"#include "printk.h"#include <string.h>#include <types.h>#include <io.h>
#include <net.h>//#include "asm/global_data.h"

static user_subcommand_t subcmd_net[];static const uchar macaddr[] = {0x00,0x01,0x5d,0x68,0x7a,0x0f};unsigned long load_addr;extern bd_t global_bd;extern net_config default_net_config;#ifdef CONFIG_NET_PINGXXstatic void net_ping(int argc, const char **argv){    if (argc == 2)    {        NetPingIP = string_to_ip(argv[1]);        NetLoop(PING);    } else {        printk("param is invalid\n");    }    return;}#endifulong string_to_num(const char* s){    char *e;        return simple_strtoul(s, &e, 10);}void net_tftp(int argc, const char **argv){    //DECLARE_GLOBAL_DATA_PTR;	bd_t *bd = &global_bd;	memcpy(bd->bi_enetaddr, macaddr, 6);	bd->ipaddr = 0xbe01a8c0;	bd->gateway = 0x0a01a8c0;	bd->netmask = 0x00ffffff;	bd->serverip = 0x6501a8c0;	if (argc == 4) {        bd->serverip = string_to_ip(argv[1]);        load_addr = string_to_num(argv[2]);        sprintf(BootFile,"%s",argv[3]);        NetLoop(TFTP);    } else {        printk("param is invalid\n");    }}static void net_ping(int argc, const char **argv){    //DECLARE_GLOBAL_DATA_PTR;	bd_t *bd = &global_bd;	memcpy(bd->bi_enetaddr, macaddr, 6);	bd->ipaddr = 0xbe01a8c0;	bd->gateway = 0x0a01a8c0;	bd->netmask = 0x00ffffff;	bd->serverip = 0x6501a8c0;		if (argc == 2) {        bd->serverip = string_to_ip(argv[1]);        //load_addr = string_to_num(argv[2]);        //sprintf(BootFile,"%s",argv[3]);        NetLoop(PING);    } else {        NetLoop(PING);        //printk("param is invalid\n");    }}static void subcmd_net_help(int argc, const char **argv){	print_usage("net", subcmd_net);}static user_subcommand_t subcmd_net[] = {{	"help",	subcmd_net_help,	"help"}, {	"tftp",	net_tftp,	"tftp <server_ip> <addr> <filename>" }, { 	"ping",	net_ping,	"ping <target_ip>" }, { 	NULL,	NULL,		NULL }};void net_setenv(int argc, const char **argv)
{
    int ret;    int boot_delay = get_param_value("boot_delay", &ret);        if (argc == 1) {		printk("invalid 'net' command: too few arguments\n");		command_help(0, NULL);		return;	}	execsubcmd(subcmd_net, argc-1, argv+1);
}

user_command_t netping_cmd = {    "ping",	net_ping,	NULL,	"ping <host> \t\t\t-- ping a host on the network"};
user_command_t nettftp_cmd = {	"tftp",	net_tftp,	NULL,	"tftp <sip> <addr> <file> \t\t-- Load a file to RAM/Flash by net" };/*user_command_t net_cmd = {	"net",	subcmd_net,	NULL,	"net [{subcmds}] \t\t\t-- Booting linux kernel"};*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -