jl1fly 2015-08-04 03:04 采纳率: 0%
浏览 3394
已结题

使用TMDSEVM6678L调试MCSDK中的helloworld例程DSP只能收不能发

有个问题希望大神们能帮忙解答一下,我用的是c6678EVM,调试MCSDK下的helloWorld例程的时候,程序没做任何改动,我是设置静态IP,DSP IP:192.168.2.100,PC IP:192.168.2.102,程序能正常运行,PC端使用winapps的helloworld.exe触发网络事件,DSP端只能收不能发,一直找不出原因,防火墙关掉了,能ping通,recvncfrom接受的内容也都是正确的,而打印DSP端sendto函数返回值一直是-1,如果正常的话返回值应该是发送的字节数,也即DSP已经接收到的字节数,运行后PC端显示如下:

图片说明

我看了下helloworld.exe的源程序,“timed out waiting for reply”是在select()函数返回值错误时输出的,我对网络通信还不太了解,不知道到底是什么原因引起的,感觉DSP接收完通信就断开了,我现在唯一能想到的是不是因为DSP和PC支持的以太网速率不匹配,我的PC的网卡最多只支持100M,选择的模式是自协商,不知道此例程是不是默认以太网速率是1000M,所以导致单向兼容。所以有下面两个问题:

1、以上情况是DSP端还是PC端的问题,sendto发送失败可能是什么原因引起的?

2、在使用NDK实现网络通信,要怎么设置以太网速率模式为指定的模式?

可能表述的不是很好,期待你的解答,谢谢!

  • 写回答

1条回答

  • jl1fly 2015-08-04 03:06
    关注

    后来又试了下GE例程,在TMDSEVM6678L上跑的,好像还是只能收不能发,函数GE_2DSP_Test()里while((Get_TX_Good_Frames()-uiTxGoodFrames)<uiTotalNumPackets)的循环进不去,难道已经发送完成了,通过printf知道Get_TX_Good_Frames()值为32,uiTxGoodFrames为0.,但用抓包软件也没有DSP发送的任何信息。DSP发送以太网数据包是不是只是将包放到发送队列里,需要观察那个寄存器才知道发送成功呢,还有在调试的时候为什么设置的断点是灰色的,并提示“No code is associated with ../GE_2DSP_Test.c,line 129 is any loaded symbols”,但可以在反汇编里设置断点,但我也不知道对应C的汇编语句是什么,在反汇编双击某一行,源程序也不会跳转到对应的语句,这是哪儿设置的问题吗,还望高手指点一下,谢谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿