ubuntu卡在载入初始化内存盘_LWIP一直卡在初始化里面,不是内存申请失败就是DM9000初始化失败了,求帮爬坑 ...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:22   4744   0

[mw_shl_code=c,true]//LWIP初始化(LWIP启动的时候使用)

//返回值:0,成功

// 1,内存错误

// 2,DM9000初始化失败

// 3,网卡添加失败.

u8 lwip_comm_init(void)

{

struct netif *Netif_Init_Flag; //调用netif_add()函数时的返回值,用于判断网络初始化是否成功

struct ip_addr ipaddr; //ip地址

struct ip_addr netmask; //子网掩码

struct ip_addr gw; //默认网关

if(lwip_comm_mem_malloc())return 1; //内存申请失败

if(DM9000_Init())return 2; //初始化DM9000AEP

lwip_init(); //初始化LWIP内核

lwip_comm_default_ip_set(&lwipdev); //设置默认IP等信息

#if LWIP_DHCP //使用动态IP

ipaddr.addr = 0;

netmask.addr = 0;

gw.addr = 0;

#else //使用静态IP

IP4_ADDR(&ipaddr,lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);

IP4_ADDR(&netmask,lwipdev.netmask[0],lwipdev.netmask[1] ,lwipdev.netmask[2],lwipdev.netmask[3]);

IP4_ADDR(&gw,lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]);

printf("网卡en的MAC地址为:................%d.%d.%d.%d.%d.%d\r\n",lwipdev.mac[0],lwipdev.mac[1],lwipdev.mac[2],lwipdev.mac[3],lwipdev.mac[4],lwipdev.mac[5]);

printf("静态IP地址........................%d.%d.%d.%d\r\n",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);

printf("子网掩码..........................%d.%d.%d.%d\r\n",lwipdev.netmask[0],lwipdev.netmask[1],lwipdev.netmask[2],lwipdev.netmask[3]);

printf("默认网关..........................%d.%d.%d.%d\r\n",lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]);

#endif

Netif_Init_Flag=netif_add(&lwip_netif,&ipaddr,&netmask,&gw,NULL,eernetif_init,eernet_input);//向网卡列表中添加一个网口

#if LWIP_DHCP //如果使用DHCP的话

lwipdev.dhcpstatus=0; //DHCP标记为0

dhcp_start(&lwip_netif); //开启DHCP服务

#endif

if(Netif_Init_Flag==NULL)return 3;//网卡添加失败

else//网口添加成功后,设置netif为默认值,并且打开netif网口

{

netif_set_default(&lwip_netif); //设置netif为默认网口

netif_set_up(&lwip_netif); //打开netif网口

}

return 0;//操作OK.

} [/mw_shl_code]

我来回答

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP