可能的原因与解决方案
1,检查网线有没有接好,不要觉得很蠢,如果涉及多人开发,板子传来传去过程中就可能出现最后网线都没接的低级错误。
2,检查自己所使用的板卡的PHY芯片是否是TI和MARWELL的芯片。
这是由于Xilinx原生LwIP库只支持TI和MARWELL的PHY芯片,如果不是的话,就需要修改对应的文件。比如我所使用的Alinx的AXU3EG板卡,所使用的PHY芯片是KSZ9031,黑金关于AXU3EG的改版AXU3EGB使用的是JL2121,都是不支持的。对此,需要手动地修改LwIP的相关文件。
找到自己的Vitis安装路径,再进入如图所示的第三方库文件夹。我黑金提供的覆盖文件已上传至我的资源,如果是这两个厂家的PHY芯片,需要的话自取,只需要把里面的文件替换掉其中V1_2内的文件即可,然后在BSP的设置上,就需要注意把LwIP的版本改为1.2,点击第二张图中的红框位置可以更改版本。
我当时安装Vivado时只是把盘符改为了F,大家如果不知道自己安装在哪了,可以参考我的路径:
F:\Xilinx\Vitis\2020.2\data\embeddedsw\ThirdParty\sw_services\lwip211_v1_2
3,检查Windows下的网络适配器设置是否正确(是否与例程中对应)。
先打开控制面板,进入“查看网络状态和任务”。
选择更改适配器设置
然后选择网线对应的以太网连接,右键点击属性
根据以下步骤更改IPV4设置
检查这里面的子网掩码和默认网关与例程中main.c中所设置的是否相同,如果不同,修改为相同(建议以例程为基准进行修改)。
IP不需要改成一样吗?需要注意的是上图IPV4设置页面的IP地址指的是PC的IP地址,即服务端的IP地址,而上图中代码的IP地址是指开发板的IP地址,我们需要做的是,保持这两个地址在同一个网段下,在例程中,所要连接的服务端的IP地址在tcp_perf_client.h
中进行修改。