| 
 
新手入门 
 
	积分17金钱17 注册时间2018-4-10在线时间2 小时 | 
 
1金钱 
| LWIP带FreeRTOS操作系统移植完成后用udp进行测试,在初始化中u8 lwip_comm_init(void){ u8 retry=0;
 struct netif *Netif_Init_Flag;                //调用netif_add()函数时的返回值,用于判断网络初始化是否成功
 struct ip_addr ipaddr;                          //ip地址
 struct ip_addr netmask;                         //子网掩码
 struct ip_addr gw;                              //默认网关
 
 if(ETH_Mem_Malloc())return 1;                //内存申请失败
 if(lwip_comm_mem_malloc())return 2;        //内存申请失败
 lwip_comm_default_ip_set(&lwipdev);        //设置默认IP等信息
 while(LAN8720_Init())                        //初始化LAN8720,如果失败的话就重试5次
 {
 retry++;
 if(retry>5) {retry=0;return 3;} //LAN8720初始化失败
 }
 tcpip_init(NULL,NULL);                                //初始化tcp ip内核,该函数里面会创建tcpip_thread内核任务
 
 #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,ðernetif_init,&tcpip_input);//向网卡列表中添加一个网口
 if(Netif_Init_Flag==NULL)return 4;//网卡添加失败
 else//网口添加成功后,设置netif为默认值,并且打开netif网口
 {
 netif_set_default(&lwip_netif); //设置netif为默认网口
 netif_set_up(&lwip_netif);                //打开netif网口
 }
 return 0;//操作OK.
 }
 运行至Netif_Init_Flag=netif_add(&lwip_netif,&ipaddr,&netmask,&gw,NULL,ðernetif_init,&tcpip_input);//向网卡列表中添加一个网口
 之后系统就死机不工作了,请教会是什么原因?
 
 
 | 
 |