3.LwIP相关初始化
- void LwIP_Config (void)
- {
- struct ip_addr ipaddr;
- struct ip_addr netmask;
- struct ip_addr gw;
-
- // 调用LWIP初始化函数
- lwip_init();
-
- IP4_ADDR(&ipaddr, 192, 168, 1, 16); // 设置网络接口的ip地址
- IP4_ADDR(&netmask, 255, 255, 255, 0); // 子网掩码
- IP4_ADDR(&gw, 192, 168, 1, 1); // 网关
-
- // 初始化enc28j60与LWIP的接口,参数为网络接口结构体、ip地址、
- // 子网掩码、网关、网卡信息指针、初始化函数、输入函数
- netif_add(&enc28j60, &ipaddr, &netmask, &gw, NULL, ðernetif_init, ðernet_input);
-
- // 把enc28j60设置为默认网卡
- netif_set_default(&enc28j60);
-
- netif_set_up(&enc28j60);
- }
【说明】
【1】通过netif_add初始化网卡IP地址,子网掩码和网关地址。此处使用静态IP地址。
【2】netif_add需要传入两个函数指针,分别是网卡初始化函数和接收内容处理函数。ethernetif_init位于ethernetif.c而ethernet_input并不位于ethernetif.c,此处也不能使用ethernetif_input,其实ethernet_input在函数ethernetif_input被调用,但是ethernet_input变了一个样子:
netif->input(p, netif)!=ERR_OK
【3】在带操作系统的移植中,最后一个参数使用tcpip_input。
|