TI工程师,你好!
公司最近用到网口功能,需要网口能收发标准的以太网帧,我看了NDK相关的文档,从网口接收到的数据在Emac层以上开始分IP和Raw两个队列处理,根据我们的需求,应该从Emac层获取数据,我看到nimu_eth.c的文档中有关于Emac层的处理,那么我们能直接从这里获取Emac层的数据吗,具体怎么获取?我试着在EmacRxPktISR函数中将数据复制到我自己定义的变量中但是一直没有接收到数据,不知道是什么原因?我是这样做的
mmCopy((uint8_t* )rx_pbm_pkt->pDataBuffer, (uint8_t* )pBuffer, pktLen);
mmCopy((uint8_t* )RecvEthBuff, (uint8_t* )pBuffer, pktLen) ;
RecvEthBuff是我自己定义的变量。前面一句是原来的文件中的。
Andy Yin1:
你可以先测试mcsdk中自带的NDK例程mcsdk_2_01_02_06\examples\ndk\client,其中调用send及recvnc收发socket报文,在此基础上进行更改,如下是一个ndk EmacRxPktISR相关的帖子供参考。
https://e2e.ti.com/support/embedded/tirtos/f/355/p/234454/832460#832460
Xiaohua Cao:
回复 Andy Yin1:
谢谢!我目前是这样做的,直接从EMAC层将接收到的数据抓出来,因为我们不需要协议栈,所以这些数据我也就没有进栈,接收是没什么问题了,但是每次启动还是会自动发送一个包,貌似是arp,这部分也是我们不需要的,请问可以在哪里屏蔽掉?