关闭

ucosii(2.76) + Lwip(1.11)调试简单应用。

1785人阅读 评论(0) 收藏 举报

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, &len);

     err = netconn_write(newconn, data, len, NETCONN_COPY);
     if(err != ERR_OK)
     {
     }


    } while(netbuf_next(buf) >= 0);
    netbuf_delete(buf);
   }
   /*printf("Got EOF, looping/n");*/
   /* Close connection and discard connection identifier. */
   netconn_delete(newconn);
  }
 }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25347次
    • 积分:393
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    最新评论