工具与软件:
这不是一个问题、因为它希望对任何可能遇到相同问题的人都有用。
在定制 C6657板上运行 PDK_C665x_2_0_14。 我们在具有高传输以太网流量时遇到了问题、其中数据包将突然停止传输。 在堆栈中进行大量调试后、我将问题范围缩小到 ti\drv\emac\emac\v0\emac.c 中的 emacEnqueueTx () src
函数 emacEnqueueTx()可以从两个源调用、即 emacDequeueTx()和 emac_sendPacket() 的末尾、这两个源都在 emac.c 中。 emacDequeueTx()仅在前一个数据包传输完成时从中断调用。 当应用程序要发送数据包时、通过栈调用 emac_sendPacket()。 如果在 emacEnqueueTx()已执行时发生中断、我认为这会导致数据包描述符排队的潜在冲突。 我的解决方案,虽然可以说是沉重的手,是通过 emacEnqueueTx ()函数的 Hwip_disable ()禁用中断。 这样就解决了我们所面临的问题。
我确实检查了 PDK_C665x_2_0_16是否解决了此问题、但它似乎没有在此区域进行任何相关更改。
希望这可以帮助任何遇到类似问题的人。