程序:在STK中的GE程序的基础上自行开发的UDP程序
平台:TMDSEVM6678L
编译工具:CCSv5.4
系统描述:项目中的系统采用了三块开发板分别是A、B和C板,C板为数据汇总板,A板和B板将数据通过UDP协议发送给C板,C板汇总后再发送给上位机。A板、B板和C板以及上位机通过网络交换机构成一个系统。A板、B板和C板通信部分的程序都是一样,仅有数据处理部分(即应用层是不同的)。
问题描述:目前A板,B板工作正常,唯有C板工作不正常。C板上电工作不久(1-5min内)就出现网络掉线,必须通过关机重启才能够恢复。
补充说明:1、目前已经排除硬件的问题,个人认为应该是软件的问题;
2、我通过循环ping来发现何时网络掉线
3、奇怪的是这种网络掉线并不是一直发生,我换了一块板子就没有发生,但是我还是认为是程序问题,毕竟不可能那么多开发板有问题,而且那些开发板测试其他程序(A板和B板程序)时也是好好的。
在此请各位大佬指点指点!
Ryan BL:
回复 user5161889:
恭喜!
我也在弄网络,发现交换机会自动发些广播包,很烦,可能是这些东西把描述符耗尽了。
Ryan BL:
回复 user5161889:
你好,请问一下,你的以太帧的crc是自己计算的还是硬件自动生成的呢,我当前还在弄arp,发现以太帧的‘crc不能自动生成。手册说描述符info配置的bit19-ps域的值为0硬件会自动生成crc,我怀疑这个地方可能是pa固件做的。
烦请你告知下你那边的情况呢,谢谢!
user5161889:
回复 Ryan BL:
你好,抱歉,到现在才看到。我们并没有使用PA的功能,CRC那个相关的域我设置的是0,ARP时发现会有Frame Check sequence incorrect的现象,但是我们没有处理,在实际传数据时好像并没有影响。
user5161889:
回复 Ryan BL:
很久没有看了,已经忘了差不多了~不知道你们那边是实现什么样的一个功能?
user5161889:
回复 Ryan BL:
很久没有调试了,有些忘记了,不知道你们是要实现一个什么样的功能?
Ryan BL:
回复 user5161889:
支持udp和arp的简单协议,只支持一个mac/ip的对端,收/发直接看到的是udp层的端口/长度及payload,在实现上过滤了其他ip的包传入。应该跟你们的类似。
我也是发现arp的时候有以太帧crc错误,收到对方的udp报文回传的时候,如果以太帧小于64会crc错误,大于64则不会crc错误,但是会截断到64,有些郁闷了。。。我用的是nc,不知道是不是它发来控制帧导致6678发送pause了。