TI工程师,你好
我们最近在TMS570上移植lwip1.4.1和TCN TRDP的时候,遇到组播帧没有收到的问题,广播和单播帧可以正确收到。后来,发现从EMAC的接口就没有获得到组播帧。
不知道是不是驱动配置有问题,我们的驱动使用HALCOGEN生成,根据需要做了一些修改,
驱动代码如下
EMACInit(hdkif->emac_ctrl_base, hdkif->emac_base);
MDIOInit(hdkif->mdio_base, MDIO_FREQ_INPUT, MDIO_FREQ_OUTPUT);
while(delay–);
EMACRxBroadCastEnable(hdkif->emac_base, 0);
/* Set the MAC Addresses in EMAC hardware */
EMACMACSrcAddrSet(hdkif->emac_base, hdkif->mac_addr);
/* Acknowledge receive and transmit interrupts for proper interrupt pulsing*/
EMACCoreIntAck(hdkif->emac_base, EMAC_INT_CORE0_RX);
EMACCoreIntAck(hdkif->emac_base, EMAC_INT_CORE0_TX);
EMACRxUnicastSet(hdkif->emac_base, 0);
EMACRxMultiCastEnable(hdkif->emac_base, 0);
EMACNumFreeBufSet(hdkif->emac_base, 0, 10);
/* Write the RX HDP for channel 0 */
EMACRxHdrDescPtrWrite(hdkif->emac_base, (U32)rxch->active_head, 0);
EMACTxEnable(hdkif->emac_base);
EMACRxEnable(hdkif->emac_base);
EMACMIIEnable(hdkif->emac_base);
/**
* Enable the Transmission and reception, enable the interrupts for
* channel 0 and for control core 0
*/
EMACTxIntPulseEnable(hdkif->emac_base, hdkif->emac_ctrl_base, 0, 0);
EMACRxIntPulseEnable(hdkif->emac_base, hdkif->emac_ctrl_base, 0, 0);
代码没有全部贴出来,这些都是调用EMAC接口的部分。这样配置有没有什么问题?
期望能帮忙解答,谢谢
Nancy Wang:
建议您去英文hercules论坛咨询。
e2e.ti.com/…/312