现在我做的是用6678实现从PC端传数据到DSP的0核,0核传给1核处理,1核处理完以后再传回PC,其中从PC端传数据到DSP的0核已经实现,
其中有这样的语句:
do { rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr ); } while( rc > 0 );
其 中NetworkOpen 函数的功能是设置网络协议,连接端口号,连接 数以及网络连接时的回调函数,可用DaemonNew配置,或者用Task_create创建任务函数。我这里用的是创建任务函数,如下:
void NetworkOpen ()
{
hNetwork = TaskCreate( dtask_udp_hello, "NetSend", OS_TASKPRINORM, OS_TASKSTKNORM, 0, 0, 0 );
return;
}
现在想把数据传回到PC,需要往dtask_udp_hello函数传入数据区的指针,任务函数如何实现传参?
NetworkOpen不创建任务函数,只是用普通函数能实现吗
Andy Yin1:
dtask_udp_hello是任务入口么?在任务中调用发包函数时输入数据地址不行么?
Yong Zhang10:
①现在想把数据传回到PC,需要往dtask_udp_hello函数传入数据区的指针,任务函数如何实现传参?
这是可以得,你把数据指针作成全局变量(或者用结构体),在任务函数中去访问就可以了
②NetworkOpen不创建任务函数,只是用普通函数能实现吗
你具体是实现什么呢?如果实现收发功能的话,理论是可以得,但是很不方便管理,并且很难操作。
因为NetworkOpen是在NS_BootTask任务中的最后调用,调用后NS_BootTask自行退出,你加到这里就相当于NS_BootTask任务阻塞在这里去执行收发了(NS_BootTask任务是在NC_NetStart里面创建的)