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

ndk1.94helloworld工程dtask_udp_hello问题

用的是c6455的芯片,使用ndk1.94的hello world例程不修改可以运行,运行结果是:上位机向下发送hello world,下位机把hello world再传到上位机。

修改了下例程中的dtask_udp_hello部分,代码如下(红色为修改部分):

int dtask_udp_hello( SOCKET s, UINT32 unused )
{
struct sockaddr_in sin1;
struct sockaddr_in sin2;
struct timeval to;
int i,tmp;
char *pBuf;
HANDLE hBuffer;

(void)unused;

sin2.sin_len = 16;
sin2.sin_family = 2;
sin2.sin_port = htons(1555);
sin2.sin_addr.s_addr = inet_addr("192.168.0.129");
sin2.sin_zero[0] = 0;
sin2.sin_zero[1] = 0;
sin2.sin_zero[2] = 0;
sin2.sin_zero[3] = 0;
sin2.sin_zero[4] = 0;
sin2.sin_zero[5] = 0;
sin2.sin_zero[6] = 0;
sin2.sin_zero[7] = 0;

// Configure our socket timeout to be 3 seconds
to.tv_sec = 3;
to.tv_usec = 0;
setsockopt( s, SOL_SOCKET, SO_SNDTIMEO, &to, sizeof( to ) );
setsockopt( s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof( to ) );

for(;;)
{
// Spit any data back out
//tmp = sizeof( sin1 );
//i = (int)recvncfrom( s, (void **)&pBuf, 0, &sin1, &tmp, &hBuffer );

if(1) //i > 0 {
sendto( s, test_data, sizeof(test_data), 0, &sin2, sizeof(sin2) );
//recvncfree( hBuffer );
}
else
break;
}
// Since the socket is still open, return "1"
// (we need to leave UDP sockets open)
return(1);}

1.修改完后不能直接向上位机发送,使用网络抓包工具,抓不到向上位机发送的数据。

2.但是,我们从上位机向dsp发送数据之后,dsp却能返回数据,抓包工具也能抓到数据。

问题:1和2是什么原因引起的?

           修改那部分代码,才能让dsp主动向上位机传输数据?

         

le wang3:

你好,我也在做这方面的软件,请问你这个调好了吗?

ruijie yang:

你好,

你运行DSP的时候,dtask_udp_hello并不会被调用,只有PC向DSP发送数据的时候,dtask_udp_hello才被调用。

dtask_udp_hello没被调用,自然不会有sendto。

赞(0)
未经允许不得转载:TI中文支持网 » ndk1.94helloworld工程dtask_udp_hello问题
分享到: 更多 (0)