搜索
bottom↓
回复: 0

lpc2148+lwip1.3.0+enc28j60的tcp数据发送问题和debug问题

[复制链接]

出0入0汤圆

发表于 2013-5-13 20:46:13 | 显示全部楼层 |阅读模式
本帖最后由 xl_1120 于 2013-5-13 20:47 编辑

最近在搞无操作系统的lwip移植,之前还算顺利,能够把数据收发解决,实现ping,udp的收发,但是在解决tcp连接时出了问题,一直解决不掉,问题是这样的,当我发送tcp数据在50字节以下,收发都正常,到了大于50字节后,数据就无法发送出去了,抓包发现,tcp连接已建立,就是不发送数据,增加MEMP_NUM_TCP_PCB                16     /* 同时建立激活的TCP连接的数目,数据能够发送8帧左右停止,过一会继续发送,抓包发现开发板在发送数据后没有发送标志位FIN的一条报文。

#include <includes.h>
#include "ethernetif.h"
#include "time.h"
//#include "tcpip.h"

/*********************************************************************************************************
  CONSTANTS 常量定义
*********************************************************************************************************/
const static int8 TCP_TestData[]="12345678901234567890123456789123465678901234567890123456789012345678901234567890\r\n";

void  Delay(unsigned long  ulVal)
{
    while ( --ulVal  !=  0 );
}

err_t TcpCli_Connected(void *arg,struct tcp_pcb *pcb,err_t err)
{

#if 1

   tcp_write(pcb,strbuf,sizeof(strbuf),1);      //发送数据

   tcp_close(pcb);
tcp_recv(pcb,tcp_data);

  // tcp_abort(pcb);
//        tcp_recv(pcb,tcp_recved err_t(* recv)(void * arg,struct tcp_pcb * tpcb,struct pbuf * p,err_t err))
   return ERR_OK;
   #endif
}

void TCP_Client_Init()
{
  struct tcp_pcb *Clipcb;
  struct ip_addr ipaddr;
  s8_t ret;
  IP4_ADDR(&ipaddr,192,168,0,26);
  
  Clipcb = tcp_new();                       // 建立通信的TCP控制块(Clipcb)
  
  tcp_bind(Clipcb,IP_ADDR_ANY,4096);       // 绑定本地IP地址和端口号
  
  ret=tcp_connect(Clipcb,&ipaddr,1026,TcpCli_Connected);
//  tcp_accept(Clipcb,tcp_data_rev);                           /* 设置有连接请求时的回调函数 */
}

int main()
{

        targetInit();
       lwipInit();

       Delay(1000000UL);
       time0_enable();
      time1_enable();
  while(1)
  {
   TCP_Client_Init();

     Delay(1000000UL);
   Delay(1000000UL);
     Delay(1000000UL);

  }
}

还有一个问题就是debug信息无法开启,debug.h中的定义:
#define LWIP_DEBUG//20130510 xl add
#ifdef LWIP_DEBUG
/** print debug message only if debug message type is enabled...
*  AND is of correct type AND is at least LWIP_DBG_LEVEL
*/
#define LWIP_DEBUGF(debug,x) do { \
                               if ( \
                                   ((debug) & LWIP_DBG_ON) && \
                                   ((debug) & LWIP_DBG_TYPES_ON) && \
                                   ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \
                                 LWIP_PLATFORM_DIAG(x); \
                                 if ((debug) & LWIP_DBG_HALT) { \
                                   while(1); \
                                 } \
                               } \
                             } while(0)

#else  /* LWIP_DEBUG */
#define LWIP_DEBUGF(debug,x)
#endif /* LWIP_DEBUG */


cc.h中的定义:
#if 1
/* 这个串口格式化输出要自己实现 */
extern void RS232_Printf(char *fmt,...);

#define lwip_printf RS232_Printf
//#define LWIP_PLATFORM_ASSERT(expr)         { lwip_printf x; }

#define LWIP_PLATFORM_DIAG(x)         { RS232_Printf ("\"%s\"",(x));}
#define LWIP_DEBUG
#endif

编译就会出错(应该是有不能识别的字符,可是不知道在哪里,数量非常多):
lwip-1.3.0\src\netif\etharp.c(179): error:  #18: expected a ")"
lwip-1.3.0\src\netif\etharp.c(179): warning:  #174-D: expression has no effect
lwip-1.3.0\src\netif\etharp.c(179): warning:  #174-D: expression has no effect
lwip-1.3.0\src\netif\etharp.c(179): error:  #65: expected a ";"
lwip-1.3.0\src\netif\etharp.c(187): error:  #18: expected a ")"
lwip-1.3.0\src\netif\etharp.c(187): warning:  #174-D: expression has no effect
lwip-1.3.0\src\netif\etharp.c(187): warning:  #174-D: expression has no effect
lwip-1.3.0\src\netif\etharp.c(187): error:  #65: expected a ";"
lwip-1.3.0\src\netif\etharp.c(290): error:  #18: expected a ")"
lwip-1.3.0\src\netif\etharp.c(290): warning:  #174-D: expression has no effect
lwip-1.3.0\src\netif\etharp.c(290): error:  #65: expected a ";"
lwip-1.3.0\src\netif\etharp.c(298): error:  #18: expected a ")"
lwip-1.3.0\src\netif\etharp.c(298): warning:  #174-D: expression has no effect

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 13:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表