工具/软件:TI-RTOS
我正在使用 NDK 为 Processor SDK RTOS 开发 CCLink 示例。 我正在使用的 CCLink 代码是一个工作代码、它在 Linux 和 Windows 上都能正常工作。
我在 ARP 过程中遇到了一个问题、我正在尝试了解这种情况。 目前、这就是我的测试设置的完成方式。 它们未连接任何外部网络。
IDKAM572x <->{network switch}<-> IDKAM572x
我的一个主板首先发送 ARP 请求以查找另一个主板的 IP 地址。 请求发送板的 MAC 地址为“FD:F6:a0:00:98:af”。 另一个主板能够接收此 ARP 请求。 收到以下 ARP 数据包后,它将进入该 c 文件"ti/ndk/stack/li/lliin.c"。它将进入183行号。 我已复制粘贴了代码的快照。 它拒绝高光行上的代码。 因为它说源 MAC 地址无效。 但是、我已经验证了 MAC 地址是否正确且有效。 我正在从 Efuse 读取 MAC 地址值。
/*默认情况下:我们将使用 MAC 地址进行回复*/
mmCopy (replymac、ptr_net_device->mac_address、6);
/*基本验证:如果源 MAC 是多播或广播,则这是
*非法 ARP 数据包。 我们只需忽略它。 *
if (pArpHdr->SrcAddr[0]& 1)
转至 LLIRXEXIT;
/*获取 IP 源和目标*/
请帮助我理解为什么我的数据包被拒绝?
此外、我认为应用程序代码没有任何问题。 如果用 Linux 或 Window PC 替换其中一个电路板、则可以正常工作。 他们接受 ARP 数据包并发回 ARP 响应、我的应用程序工作正常。
请帮我解决这个问题。 这是 NDK 中的错误吗?
谢谢、
Suraj