This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ndk开发包实现DSP与PC通信遇到问题



你好:

我在6678评估板上实现

(1)pc通过网线传图像数据到dsp 0核,

(2)0核再传送数据到1核,

(3)1核处理完后通过网线传数据到PC端

其中数据是连续的图像序列,0核和1核分别有自己独立的工程,现在(1)(2)已经实现,但是将第三部分加进来后,socket报错,网络传送部分是基于任务,如:

void NetworkOpen ()

{

 hNetwork = TaskCreate( dtask_tcp_hello, "NetSend", OS_TASKPRINORM, OS_TASKSTKNORM, 0, 0, 0 );

return;

}

 

在 (1)(3)部分的流程基本类似,且 dtask_tcp_hello()都使用了fdOpensession() 函数,但是(1)部分会报错send error 返回的错误值是 ENFLE(too many open files in system) ,然后我将(3)部分里的fdOpensession() 函数去掉,这样第一部分没有问题,但是第三部分的socket 函数错误,返回的错误值是ffffffff。不知改如何解决

请问我这种将与pc的通讯分别放在两个不同的核中的做法能实现吗?二者有什么冲突。

  • fdOpensession里会打开一个TCP的进程,如果去掉,socket就没有句柄了;

    但是两次调用fdOpensession会对底层设备初始化多次;

    需要解决这个问题要修改底层代码,或者你可以把要发送的指针从core1传给core0,让core 0管理收发数据,这样最容易实现。