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

DSP6657网络收包问题

DSP6657作为客户端与PC或者其他开发板(作为服务器)收发TCP数据,目前想以10ms/帧的速度进行数据发送,并在任何时候都可以接收数据(非实时),故在DSP6657中建立中断号为99的以太网接收中断。

但是在DSP每次进行send函数时,DSP却会在对方没有发送数据包的情况下进入该接收中断(rawsocket走数据链路层不会发生该情况),而且会多次进入,但之后用recvnc函数却接收不到任何数据,返回值为-1,这样不断触发中断并接收空数据就会导致浪费大量时间,远远不能满足10ms/帧的速度要求。

如果DSP改为轮询方式收数据,每次recvnc函数在收不到任何数据并返回-1时,会运行很长时间(clock计时为0.7s左右),也远远不能达到要求,而recvnc函数在能接收到数据时却运行很快。

请问有什么办法能做到上述的要求??

user5992872:

感觉是TCP的应答机制错误触发了网络的接收中断

Shine:

请问用的是NDK吗?

user5992872:

回复 Shine:

是的使用的库函数都是NDK里的

Shine:

回复 user5992872:

请问在NDK例程上做了哪些修改?NDK版本是多少?

user5992872:

回复 Shine:

你好,在NDK例程上加了个10ms定时器,循环发送,并增加了一个中断号为99的EMAC RX中断,NDK版本 ndk_2_24_03_35

user5992872:

回复 user5992872:

你好,主要想知道有没有什么办法可以解决EMAC RX中断在TCP包连接、发送过程中错误进入的问题,或者解决recnev函数接收空数据包速度很慢的问题?

Shine:

回复 user5992872:

方便分享一下解决方法吗?

user5992872:

回复 Shine:

原本的接收函数会等待一段时间如果期间有数据来就接收,我现在就是把库函数里接收等待的时间改成0了。

赞(0)
未经允许不得转载:TI中文支持网 » DSP6657网络收包问题
分享到: 更多 (0)