1. 任务数,初始化Lwip的任务优先级是5-10,如果只设了4个任务,那肯定跑不动。
2. 给lwip分配的栈空间,尽量设256以上吧,128很可能会栈冲爆导致系统挂掉。
3. OSEVENT的数量,如果因为数量不够,使sem不够用,那就不好了,我分配了40。
4. ISR,让OS来管理网络的中断吧。
5. 超过标准包的大小,会拆包。如果直接就这样发到Lwip里面的话,那之后系统就会没反应了。
给上位机写个简单的socket client程序,用定时器发包,看返回是否正常。不过抓包的时候发现,一旦
返回稍慢,上位机的网络会自动把几个Socket包拼成一个...真郁闷
简单应用code:
while(1)
{
/* Grab new connection. */
newconn = netconn_accept(conn);
/*printf("accepted new connection %p/n", newconn);*/
/* Process the new connection. */
if(newconn != NULL)
{
struct netbuf *buf;
void *data;
u16_t len;
while((buf = netconn_recv(newconn)) != NULL)
{
/*printf("Recved/n");*/
do
{
netbuf_data(buf, &data,