项目需求,需要将内存中的数据通过万兆网络发送的pc端。目前的方案是通过内存mmap后通过socket发送。效率不高,看文档transport_net_lib可以高效的通过多核导航来发送数据。但是没有找到使用transport_net_lib往另一宿主机发送数据的例子程序?请问哪里可以找到相应的例子呢?
Thomas Yang1:
多核导航是指SOC内部的数据传输,如果需要传到另外1个host上,物理介质还是通过以太网。目前你的测试效率不高,具体benchmark是多少呢?
rong lin1:
回复 Thomas Yang1:
我指的效率不高是物理内存通过cmem映射后,通过linux的socket发送到pc上的耗时。通常都6M的数据要消耗3ms。万兆网络发送需要15ms。将一个cpu核耗满。现在疑惑的是,transport_net_lib是否能够提供一种机制可以直接将物理内存中的数据往万兆网发送,同时cpu的消耗可以减少呢?
Thomas Yang1:
回复 rong lin1:
这部分消耗是DSP core 处理socket 的时间,如果你只是用简单的TCP, IP 组包,加头,校验,过滤等功能,完全可以通过netcp的PA的firmware实现,就可以不调用socket接口。这样处理时间是最少的,netcp和cpu core接口仍然是packet DMA。置顶帖里有例程的
rong lin1:
回复 Thomas Yang1:
非常感谢您提供的思路。这对我很有帮助。 另外我在置顶帖中没有找到关于在arm中使用pa发送数据包的例子。再查找mcsdk(3_01_04_07版本)后,发现在pdk中有个例程emacExample,可以在linux中通过pa发送网络包。但是没有找到程序中找到如何设置非环回模式,实现和远端pc通信。在程序对应的dsp版本中可以使用cpswLpbMode设置。请问armlinux中如何设置呢?
TI中文支持网




