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

关于以太网传输的思路。。。。

我现在想用以太网口将内存里的数据用UDP协议传输到主机电脑,用抓包软件抓包。。。

 我想问一下专家能不能给我一个思路,就究竟该怎么做?步骤应该怎么样?

谢谢

Zhan Xiang:

你可以使用TI提供的NDK,里面有UDP的例子,你可以参考。或者直接给予NDK的架构把你们自己的代码移植上去,就可以利用NDK提供的工具来进行UDP packet传输。

lester zhang:

回复 Zhan Xiang:

NDK的例子好像没有牵涉到底层是如何配置的,比如说如何将内存中某个地址的数传给主机。。

Zhan Xiang:

回复 lester zhang:

NDK提供了完整的TCP/IP协议栈,在例子中是有做硬件初始化和队列资源分配的,你可以参考client的例子。如果需要发送数据,可以open一个socket,然后将利用协议栈提供的函数将包组好,随后直接push到发送Queue中即可。

lester zhang:

回复 Zhan Xiang:

Zhang Xiang

你好,通过你的回复,我看了参考了client这个例子,其中有好几个问题想请您解答一下:

1。 例子的DATA BUFFER是一个什么概念,指针指向的是一段什么样的地址?比如说,我要发一串数据的话,指针是不是就指向我要发的那串数组?

2。 DaemonNew里的比如dtask_udp_echo这些函数的定义在哪里,SendRawEth和SendRawEth这两个函数在什么时候被处罚?

3“可以open一个socket,然后将利用协议栈提供的函数将包组好,随后直接push到发送Queue中即可”你所说的这些我有点不太明白。

不好意思,我是一个初学者。。多多指教。谢谢

lester zhang:

回复 lester zhang:

其实我最关键的问题是,不知道怎么样将BUFFER与我想要传输的数据关联起来,可能就是你所说的push。比如说我的数据放在L2中,或者是DDR中,我该怎么和BUFFER关联起来呢,直接用指针指么?

Zhan Xiang:

回复 lester zhang:

1.你需要看看 NDK的文档,里面有所用函数的介绍

2.在6678中,如果要通过网口发送数据,需要使用描述符,描述符中有待发送数据的地址,这里牵扯到很多外设,QMSS, PA, CPSW,其中CPSW用来控制PHY, PA对ethernet的包进行加速, QMSS是整个keystone外设的基础,将所有数据流变成包的形式来传输。

lester zhang:

回复 Zhan Xiang:

哦,那意思是如果要实现功能就要结合client和QMSS的例子一起学习咯?

光是client中的代码无法实现么?

还有就是,我重写client代码的时候在连接的时候报错了,我觉得是我的配置问题,

CSL_chipReadReg         C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_channelClose       C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_channelEnable      C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_configureRxFlow    C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_init               C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_initDescriptor     C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_open               C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_rxChannelOpen      C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_setCpdmaLoopback   C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Cppi_txChannelOpen      C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_addMac               C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_create               C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_downloadImage        C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_forwardResult        C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_getBufferReq         C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Pa_resetControl         C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_ackInterrupt       C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_disableAccumulator C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_getQueueNumber     C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_init               C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_insertMemoryRegion C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_programAccumulator C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_queueClose         C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_queueOpen          C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_setEoiVector       C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

Qmss_start              C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

platform_get_phy_addr   C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

platform_write          ./event.obj                                                                                                                                

qmssLObj                C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_9_beta2\packages\ti\transport\ndk\nimu\lib\debug\ti.transport.ndk.nimu.ae66<nimu_eth.obj>

lester zhang:

回复 lester zhang:

undefined               first referenced                                                                                                                            

 symbol                     in file            

lester zhang:

回复 lester zhang:

我在linker里设置了lib和路径以后,其他的错没了

就剩下两个没有详细提示的错误

error: errors encountered during linking; "UDP_send_test.out" not built

>> Compilation failure

gmake: *** [UDP_send_test.out] Error 1

gmake: Target `all' not remade because of errors.

除了这个其他什么也没有了

Andy Yin1:

回复 lester zhang:

您好,

由于编译错误导致link失败,所以还是有错误的,可以将完整的错误信息发上来,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 关于以太网传输的思路。。。。
分享到: 更多 (0)