TI员工,您好,我需要尽快的实现dsp向PC传输,有以下问题,请帮忙解答
(1)我采用了TI官方提供的GE ,想从DSP向 PC发射数据,请问详细的步骤是怎样的?按照之前的修改的我也做了 但是无法ping 成功? 有说静态IP,请问这是怎么设置的?DSP IP 地址是?
(2)如果在GE中想要实现TCP/UDP传输应该怎么设置?
Dan Jia:
TI员工,您好,我需要尽快的实现dsp向PC传输,有以下问题,请帮忙解答
(1)我采用了TI官方提供的GE ,想从DSP向 PC发射数据,请问详细的步骤是怎样的?修改的我也做了 但是无法ping 成功? 有说静态IP,请问这是怎么设置的?DSP IP 地址是?
(2)我跑了mcdsk 中的helloworld ,收发为4,但是现实无法访问主机地址,这是增么回事?
Kevin Cai:
Hi, 您好!
1. 您需要修改GE_Test.c:
> GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1;
> Ethernet_Mode ethernet_mode = ETHERNET_AUTO_NEGOTIAT_SLAVE;
> GE_Port_Connection port_connect[2]= { GE_PORT_CABLE_CONNECT, //SGMII port 0 假设您的板子用的是以太网端口0
GE_PORT_NO_CONNECT //SGMII port 1 };
重新编译后在DSP核0上运行
GE工程包含物理层,MAC曾, 没有TCP/IP及上层协议,所以ping不能用
DSP IP您可以自己在软件中设定:
即当DSP对外发送数据包时(详见GE_2DSP_Test.c 中的 GE_2DSP_Test()函数), 您只要按协议格式在填MAC头之前填好IP头即可
2. 您可以在 GE_2DSP_Test()函数的基础之上添加TCP/IP发送端代码
在GE_Interrupts.c 文件的parserRxPacket函数中添加TCP/IP接收端代码
上诉这种方式要添加的代码较多, 您也可以使用NDK, NDK包含了TCP/IP层, 安装MCSDK后可以在安装目录下找到NDK
谢谢!
Dan Jia:
回复 Kevin Cai:
谢谢您的回答
您好 NDK中包含有基于UDP传输的例程吗?假如从DSP传输到PC,采用哪个例程改比较容易上手?改写的具体步骤是什么?问题有点多 谢谢
Kevin Cai:
回复 Dan Jia:
Hi, 您好!
您从下面的目录中可以找到UDP的例子, 供参考:
mcsdk_*_**_**_**\examples\ndk\helloWorld
另外您在NDK的安装目录下也可以找到例子,比如:
ndk_*_**_**_**\packages\ti\ndk\tools\console\Conecho.c
谢谢!
Dan Jia:
回复 Kevin Cai:
谢谢您
我看到网上说helloworld需要建立一个UDP socket 来触发传输,请问有具体的例子吗?实现从DSP传输数据到PC。
yongwang zhang:
回复 Kevin Cai:
您好,我下载了一个STK_C6657_EMAC的工程文件中没有找到GE_2DSP_Test.c这个文件,请问您这个demo最新版本从哪里可以下载到?急用,多谢!
Kevin Cai:
回复 yongwang zhang:
Hi, 您好!
这个工程使用的是GE_Test.c文件来完成2个DSP之间或 DSP与PC的通信功能。
在GE_Test.c文件中, 您设置如下变量即可:
GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1
如果需要用中断方式收包,设置:
Bool emac_interrupt = 1;
zhao jd:
回复 Kevin Cai:
您好!
之前请教过您关于Notify_sendEvent的问题,我新开一个问题,希望您能帮忙看一下。http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/75121.aspx
zjd
谢谢!
yongwang zhang:
回复 Kevin Cai:
Hi Kevin Cai:
我们之前网络通信这块是基于NDK,官方提供的helloworld那个例程进行修改的,但是那个和pc-Ubuntu系统间tcp通信速率上不去,只有5M/s。和arm间通信速率则更低,仅有2M/s。所以我们现在考虑使用裸跑的这种方案测试一下速率,看会不会有大的提升。但是根据您所讲的这些修改方法,我感觉摸不着头脑啊,还请再指教:
1.按协议格式在填MAC头之前填好IP头即可,这个如何添加IP头,有相关文档可以查阅吗?协议格式在哪里可以看?
2. 您可以在 GE_2DSP_Test()函数的基础之上添加TCP/IP发送端代码
在GE_Interrupts.c 文件的parserRxPacket函数中添加TCP/IP接收端代码
这个要自己对tcp/ip协议进行封装吗?有修改好的demo可供参考吗?
Kevin Cai:
回复 yongwang zhang:
Hi, 您好!
1. 格式是按TCP/IP协议填的,附件是格式的简要说明
2. 是的,要自己封装,您可以参考NDK; TCP/IP是公开的协议,您也可以寻找开源代码
谢谢
TI中文支持网


