TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C1294 uCOSII+LWIP协议问题

问题描述:

        在EK-TM4C1294XL开发板上移植uCOS-II,并使用TI外设库lwip-1.4.1。使用 InitNic函数来初始化协议栈,使用 ntp_doinit创建了一个UDP连接.

#define My_Mac_ID       {0x88,0xD8,0x02,0xB6,0x1A,0x00}
#define IP_MARK_ID      {255,255,255,0}                 //  子网掩码
#define MY_IP_ID        {192,168,6,220}                  //  IP地址
#define MY_GATEWAY_ID   {192,168,6,1}                     //  网关地址

unsigned char MACAddress[6]     = My_Mac_ID;           // MAC地址
unsigned char IPAdd[4]             = MY_IP_ID;            // IP地址
unsigned char NetMaskAddr[4]     = IP_MARK_ID;        //子网掩码
unsigned char GwWayAddr[4]         = MY_GATEWAY_ID;    //网关

void InitNic(void)
{
     struct ip_addr tIpAddr, tNetMask, tGateway;

     IP4_ADDR(&tIpAddr, IPAdd[3], IPAdd[2], IPAdd[1], IPAdd[0]);
     IP4_ADDR(&tNetMask, NetMaskAddr[3], NetMaskAddr[2], NetMaskAddr[1], NetMaskAddr[0]);
     IP4_ADDR(&tGateway, GwWayAddr[3], GwWayAddr[2], GwWayAddr[1], GwWayAddr[0]);

     //初始化LWIP协议
     lwIPInit(g_uiSysClock , MACAddress, tIpAddr.addr, tNetMask.addr, tGateway.addr, IPADDR_USE_STATIC);

}

/*
 * 功能:创建一个udp连接
 * */
void ntp_doinit(void)
{
    struct ip_addr tIpAddr;
    UINT8 err;

    IP4_ADDR(&tIpAddr, IPAdd[0], IPAdd[1], IPAdd[2], IPAdd[3]);

    UdpPcb = udp_new();
    //udp_bind(UdpPcb, IP_ADDR_ANY,123);   // 绑定本地IP地址,端口为:123
    udp_bind(UdpPcb, &tIpAddr, 123);   // 绑定本地IP地址,端口为:123
    udp_recv(UdpPcb, UDP_Receive, NULL);    // 设置数据接收时的回调函数

    //而且延时要足够的,否则收不到
    //一定要加延时,否则可能都没绑定就发数据了,就会收不到
    OSSemPend(delayEvent, OS_TIME_SEC, &err);
}

现在的情况是:开发板连接通过网线连接交换机,设置IP:(C)192.168.6.10。同时另外有两台电脑通过网线连接交换机,分别设置IP: (A)192.168.6.13  , (B)192.168.6.14。 A单独去ping C能ping通,B单独去ping C也能ping通,但是A,B同时去ping C时,只能一个能ping通,一个不能ping通,感觉就是在同一时间只允许一台连接。是不是LWIP协议里面需要配置???怎么配置呢???

xyz549040622:

这个没有搞过,只能帮你顶顶了。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C1294 uCOSII+LWIP协议问题
分享到: 更多 (0)