您好!
我们使用的是 TMS570芯片和 lwip-1.4.1。 我们正被困在 文件 hdkif.c 中的以下代码部分(红色,下面):
/* TODO:(这是一种权变措施)等待 EOQ 位被置位*/
while (EMAC_BUF_DESC_EOQ!=(hdkif_swipze_data (CURR_BD->flags_pktlen)和 EMAC_BUF_DESC_EOQ));
/* TODO:(这是一种权变措施)在 TXHDP0变为零之前、请勿写入*/
while (0!=*((UINT32 *) 0xFCF78600);
CURR_BD->NEXT = hdkif_swimize_TxP (ACTIVE_HEAD);
if (EMAC_BUF_DESC_EOQ ==(hdkif_swipze_data (CURR_BD->flags_pktlen)& EMAC_BUF_DESC_EOQ)){
/*写入标头描述符指针并启动 DMA */
EMACTxHdrDescPtrWrite (hdkif->EMAC_BASE、(unsigned int)(active_head)、0);
}
当我们 telnet 至器件并请求转储数据时、上述 while 循环绝不会退出。 我们 在发送多个数据包后发现了同样的问题。
几年前我确实看到过这样一种说法、即存在一种与我们看到的问题相匹配的种族状况:
TMS570LC4 EMACTransmit ()问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我无法解决这个问题。 是否有人解决或发现了此问题并能够提供修复/解决方案?
谢谢
Malcolm