嵌入式开发者社区

标题: 网络通信程序出现的问题 [打印本页]

作者: lzmonkey    时间: 2018-9-27 14:29
标题: 网络通信程序出现的问题
我把原来的网络通信的程序稍微改了一下,测试长时间的数据发送情况,发现了一个问题,在长时间的发送过程中,EMAC_linkStatus这个函数一直会被调用,查了一下这个函数是连接状态发生变化的时候会被调用,在运行了将近两小时的时候有一次没有连接的情况,从另一侧抓的包来看,后面应该是连接又恢复了,想问下为什么连接状态会变。


/****************************************************************************/
/*                                                                          */
/*              回调函数 获取连接状态                                       */
/*                                                                          */
/****************************************************************************/
// 这个函数被驱动调用 不要修改函数名
void EMAC_linkStatus(unsigned int phy, unsigned int linkStatus)
{
    UARTprintf("Link Status: %s on PHY %d\n",LinkStr[linkStatus],phy);
}



Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: No Link on PHY 0
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
sendto error :-1
ENOBUFS
Link Status: 100Mb/s Full Duplex on PHY 0
sendto error :-1



作者: Tronlong-陈工    时间: 2018-9-27 17:36
你好,请问有直接基于我公司的例程测试是否存在此问题吗?一般基于客户更改的例程,我们这边不太会深入支持帮助测试
作者: lzmonkey    时间: 2018-9-28 09:49
陈工你好,我用网盘里sysbios/Tcp_Client工程试了下也有这个现象
Tronlong DSP TMS320C6748 NDK Application ......
Using MAC Address: 00-40-0f-10-b6-80
Link Status: 100Mb/s Full Duplex on PHY 0
Network Added: 192.168.100.118
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0
Link Status: 100Mb/s Full Duplex on PHY 0

作者: Tronlong-陈工    时间: 2018-9-28 10:52
说明下你的测试环境,我公司测试此例程能够正常在动态IP和静态IP下正常获取地址,我公司的工程配置中默认使用动态获取IP地址,如果使用静态(开发板直连PC)的,请配置IP地址

[attach]3934[/attach]

另,我公司的默认连接方式是:开发板+交换机(连接网络,1000M路由)+PC。程序自动获取IP

[attach]3935[/attach]

作者: lzmonkey    时间: 2018-9-28 13:45
Tronlong-陈工 发表于 2018-9-28 10:52
说明下你的测试环境,我公司测试此例程能够正常在动态IP和静态IP下正常获取地址,我公司的工程配置中默认使 ...

陈工你好,我的连接方式和你的基本一样,开发板+交换机+pc 交换机也连了网络,自动获取ip,运行起来大部分时间都也是正常的,出现了 Link Status: 100Mb/s Full Duplex on PHY 0这种信息也不影响发送,应该只是连接情况有变化,只是某次连接变化的时候 Link Status: No Link on PHY 0出现这种信息才会发送失败,如果您那边运行这个例程的时候没有重复的出现 Link Status: 100Mb/s Full Duplex on PHY 0这个消息,我换一个交换机试一下
作者: Tronlong-陈工    时间: 2018-9-28 13:48
好的,如果更换后还是无法排除原因可以致电技术支持说明情况
作者: lzmonkey    时间: 2018-9-28 14:03
Tronlong-陈工 发表于 2018-9-28 13:48
好的,如果更换后还是无法排除原因可以致电技术支持说明情况

好的  多谢




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4