TCPIP_MSG_API_CALL,//应用层API接口需要回传信息,比如说connect接口,回传(信号量) TCPIP_MSG_INPKT,//网络数据包消息,即网卡上的数据 TCPIP_MSG_TIMEOUT,//创建超时定时器 TCPIP_MSG_UNTIMEOUT,//删除超时定时器 TCPIP_MSG_CALLBACK,//回调函数消息(动态生成) TCPIP_MSG_CALLBACK_STATIC //回调函数消...
NETCONN描述符是用来管理一个连接,该连接类型可是RAW,UDP,TCP,TCP_LISTEN这四种。 收发数据描述符 收发数据需要描述符的,仅仅是TCP协议。 TCP发送数据时,需要将tcp报文打包,使用TCP_SEG描述符进行管理。 TCP接收数据时,需要将PBUF转换成TCP报文,然后使用TCPIP_MSG_INPKT描述符管理。 其他描述符 ARP_QUEUE,管理ARP...
LWIP_TCPIP_CORE_LOCKING_INPUT struct { struct pbuf *p; /* 收到的数据包 */ struct netif *netif; /* 来自哪个网卡的 */ netif_input_fn input_fn; /* 需要传入哪个内核函数处理 */ } inp; /* TCPIP_MSG_INPKT。网络数据包消息 */ #endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ struct { ...
ARP_QUEUE --- arp队列数 MEMP_NUM_IGMP_GROUP --- 组播网络接口数 MEMP_NUM_SYS_TIMEOUT --- 系统超时设置 MEMP_NUM_NETBUF --- netbuf结构数 MEMP_NUM_NETCONN --- netconn结构数 MEMP_NUM_TCPIP_MSG_API --- tcpip消息数 MEMP_NUM_TCPIP_MSG_INPKT --- tcpip数据包相关设置 PBUF_POOL_SIZE...
api_call.arg); (2) sys_sem_signal(msg->msg.api_call.sem); break; #endif /* !LWIP_TCPIP_CORE_LOCKING */ #if !LWIP_TCPIP_CORE_LOCKING_INPUT case TCPIP_MSG_INPKT: if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) (3) { pbuf_free(msg->msg....
这里给了我们一个很重要的线索, 就是 memp_tab[]->next 和 tcp_tw_pcbs -> local_ip 为什么会重...
//#define MEMP_NUM_TCPIP_MSG_INPKT 8 // 接收包时tcpip_msg结构体的数目。 //*** // // --- ARP options --- // //*** //#define LWIP_ARP 1 //开启ARP //#define ARP_TABLE_SIZE
定位该问题出现的地方,在tcpip.c的155行,有该内容。对应的有7项:TCPIP_MSG_CALLBACK_STATIC、TCPIP_MSG_CALLBACK、TCPIP_MSG_UNTIMEOUT、TCPIP_MSG_TIMEOUT、TCPIP_MSG_NETIFAPI、TCPIP_MSG_INPKT、TCPIP_MSG_API。这些内容都是在在其他地方被设置成的类型。现在的问题是,它处于第八种可能。
LWIP程序OPT.h头文件的各种定义 由于英文基础太差,很多东西都看不懂,所以一面对照着百度翻译,一面去查百度,lwip中opt头文件基本上是lwip的一个基础选项的设置,里面包括了很多东西,如果arp,icmp,udp,ip,tcp的协议使能和设置还有一些其他的设置,在不知情的情况下,查这个文件,会有助于你对程序设置的...
#define MEMP_NUM_TCPIP_MSG_API 40 //tcpip_msg结构的最大数目,用于callback和API的通讯 by zc #define MEMP_NUM_TCPIP_MSG_INPKT 40 //tcpip_msg接受数据包结构的最大数目 by zc #define TCP_WND 6*TCP_MSS //tcp窗口大小 #define TCP_SND_BUF (8*TCP_MSS) //TCP发送缓冲区 #define TCP_SN...