我用的是 ndk_evm6748_bios5_helloWorld 例子程序
程序执行rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr ); 语句后,不返回,一直在里面执行。
我在hHello = DaemonNew( SOCK_DGRAM, 0, 7, dtask_udp_hello,OS_TASKPRINORM, OS_TASKSTKNORM, 0, 1 ); 语句处设置断点,程序的确执行了这条语句,因此,应该会执行 dtask_udp_hello 这个事件,但我在dtask_udp_hello 设置断点,程序始终没有进入里面执行,请帮忙看看是什么原因?谢谢
xu zhao:
您好:
这个问题你解决了么?我现在也碰到了这个情况了。。。
striker Qian:
回复 xu zhao:
DaemonNew发起的是一个Thread,如果你的回调函数dtask_udp_hello 没有收到socket肯定无法进入。在ndk##\packages\ti\ndk\winapps 下有不少发UDP socket的可执行文件,跑代码的时候发一个socket可以进入回调函数了
下文引自spru524h,描述DaemonNew:
“In the case of UDP,when any data is available on the UDP socket,a new task thread is created,and a socket session is opened.Then the user's call back function is called on the new task thread……"
aihua LIU:
回复 striker Qian:
我把板和PC直接用网线相连,想试用NDK下的elf_example helloword,工程建立没有问题,调试运行完程序后ccs上显示了板的IP地址,状态为100Mbs全双工模式,板上的两个灯都亮着,PC上只亮绿灯,黄灯一直没亮,按照您说的办法,我运行了send.exe。但是结果显示为connect failure, 连接不上。运行了helloworld 结果是time out wait for reply ,不连网线也能发送,但是结果还是 time out wait for reply,而ccs这边一直没有变化,请大神帮我分析一下原因吧,谢谢
striker Qian:
回复 aihua LIU:
检查以下:
1.PC和板卡是否一个子网?
2.PC防火墙是否关闭?
3.板子运行后是否能ping通?
3.程序里设置端口号是否与发送时的端口号匹配(建议使用50000以上端口,避开常用端口)
aihua LIU:
回复 striker Qian:
分享到
新浪微博腾讯微博百度贴吧MSNQQ空间人人网开心网天涯社区百度空间微信查看更多(124)
JiaThis
striker striker 您好,由来请教您了,我用的是TMS320 674X的芯片,仿真软件为CCS_v5,现在我想用NDK里面的和TCP有关的程序来实现DSP和PC的数据传输,用DaemonNew 回调经过改写过后的 dtask_tcp_echo函数向PC机进行发送数据,里面的send函数是面向连接的。现在我想向PC发4M字节的数,我的和发送数据部分有关的程序 如下:
recv_buffer 用来接收来自PC端的握手信号,xmit_buffer里面存着待发送的4M字节的数据。
问题如下:
1. dtask_tcp_echo用的是不是TCP协议?
2.send函数里面有关于发送buffer的长度(2*LEN)最大只能设置1024字节,为什么设置大一点就发送不了数据?
3.现在我在PC端运行接收程序,发送端每次发送1024字节的数,多次发送,为什么发送小于8次时PC能正确接收到数据,而多于8次时就接收不到数据?
4.我在每次发送数据之前加了延迟程序 for(j=0; j<2000; j++) { },这次能将数据发送到PC机上,可是速度太慢,4M字节的数据用了一分钟才发完。 我试图通过减小延迟时间来提速,但是延迟一减小,数据又发送不出去了?
5.除了改写上述函数外还有没更好的方法提高TCP的速度?
请问大神,这些问题该怎么解决啊?希望您不吝赐教!
Tom Zhou:
回复 aihua LIU:
我现在也是跟你一样的情况,请问你是怎么解决的呢?
我同样不能进入dtask_udp_hello函数 运行helloworld 结果也是time out wait for reply
fengfengff:
能否发一个例程给我,我也想试试,你的ccs版本是多少,谢谢!yzctesttest@163.com.