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

C6678千兆以太网调试,关于SOCKET的问题

各位工程师专家您好,我正在调试C6678的网口部分,使用的历程是mcsdk_2_01_02_05的helloworld例子,可以正常run成功,ping通,单步调试,现在的问题是1、我现在想加入自己的socket请问在程序的哪里加,怎么加呢?2、和PC通信程序还需要改哪些地方?NDK user guide和NDK API还有以太网调试手册都有看过,有些了解;3、历程中udphello.c程序是怎么调用的啊,单步调试,走不到,在udphello中函数sendto()的s参数是socket,它的值怎么修改啊,好像是个地址啊,烦请大家帮忙,谢谢大家

Kevin Cai:

Hi, 您好

在下面的链接中,有我们开发的以太网例程, 其中包含与PC的通信,您可以参考:

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

设置下列变量后可与PC通信:

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   GE_PORT_CABLE_CONNECT  //SGMII port 1};

GE_2DSP_Test()函数等效sendto()函数

如果要加上层功能(如TCP/UDP)可以在GE_2DSP_Test()之上添加功能

 

 

 

wang dahai:

回复 Kevin Cai:

Kevin Cai 您好,

真的是十分感谢您在百忙之中给我解答这个问题,这个问题困扰了我很久。等会我试试看,希望可以成功,我会再回来回复您,把我的结果告诉您。

再次感谢您的帮助,如果还有问题,还真心希望您能够继续帮忙指教。

zhijun Han:

回复 Kevin Cai:

您好!

       我们最近使用NDK2.0实现DSP与PC机的通信,但是不知道该如何设置才能实现。同时我们也运行了NDK里的client,总是无法运行正确,会出现如下问题:

       

TCP/IP Stack Example Client Using MAC Address: f0-0f-f0-0f-f0-0f  

      EMAC should be up and running 

      EMAC has been started successfully

     Registeration of the EMAC Successful

     Service Status: DHCPC    : Enabled  :          : 000

     Service Status: Telnet   : Enabled  :          : 000

     Service Status: HTTP     : Enabled  :          : 000

     Service Status: DHCPC    : Enabled  : Running  : 000

     Link Status: 100Mb/s Full Duplex on PHY 0

    Service Status: DHCPC    : Enabled  : Fault    : 002

    Service Status: DHCPC    : Disabled :          : 000

    Service Status: DHCPC    : Enabled  :          : 000

    Service Status: DHCPC    : Enabled  : Running  : 000

   希望您在百忙之中能帮我们看一下,十分感谢您!

Kevin Cai:

回复 zhijun Han:

Hi, 您好!

想请问一下您们PC和DSP通信需要用TCP/IP吗? 如果不需要的话可以考虑我在1月9日回复的链接里的参考程序

这份参考程序包含MAC层功能,我们在6678上验证过PC与DSP间的通信

谢谢

 

zhijun Han:

回复 Kevin Cai:

Kevin Cai,

               您好!

              十分感谢您的回答。 因为我们需要PC机实时传送大约10kb左右的数据给DSP,因此我们考虑使用TCP/IP的,不知道您的参考程序里是否能实现相应的功能啊。另外,不知道您那里是否有TCP/IP相应的参考程序啊。谢谢您!

 

Kevin Cai:

回复 zhijun Han:

Hi, 您好!

在参考程序中, GE_2DSP_Test等效于 sendto()函数

您可以在GE_2DSP_Test中通过控制发包的大小和发包间隔来模拟10kb左右的数据

目前TCP/IP是在ndk里

谢谢!

 

zhijun Han:

回复 Kevin Cai:

Kevin Cai,

                您好!

                 十分感谢您!我们的开发板是omapl137的,不知道能否使用您说的GE_2DSP_Test,如何配置。

                  谢谢!

Kevin Cai:

回复 zhijun Han:

Hi, 您好!

在GE_2DSP_Test()中,先把要发的数据准备好,放到TxDescriptorTempBuffer中

下面的代码是发送函数, KeyStone_queuePush等效于发送,每发送一包后有一些间隔TSC_delay_ms

你可以配置成,比如发包大小是125字节(1k bit), 发包间隔100ms

如果需要连续发包,请保证uiTotalNumPackets足够大, 即TxDescriptorTempBuffer里一直有要发送的数据 (这可以通过循环来实现)

 for(i=0; i< uiTotalNumPackets; i++) {  /*push the packet descriptor to Packet DMA TX queue*/  KeyStone_queuePush(GE_DIRECT_TX_QUEUE,   TxDescriptorTempBuffer[i]|FETCH_SIZE_64);

  //delay to avoid potentail overflow, for debug only  TSC_delay_ms(DELAY_BETWEEN_PACKET_MS); }

yuxiang li:

回复 Kevin Cai:

kevin:

您好,我想看一下这可参考程序,但是在您的回复历史中没有找到1月9日的回复,麻烦您能帮我发个链接么?

多谢了!

Kevin Cai:

回复 yuxiang li:

Hi, 您好!

请参考下面链接:

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » C6678千兆以太网调试,关于SOCKET的问题
分享到: 更多 (0)