新增了一个参数static arp
,0时表示使用原有方案,即仍然需要通过arp获得mac地址,1时表示使用参数配置的mac地址
修改了PL端程序,修改了PS端程序,新增了两个参数
其中,当static_arp为1时下面的static_dest_mac才有效,为0时会正常进行arp
zynqmp:
sample_rate: 2000000
total_sample_num: 100
sample_num: 50
channel_mask1: 0xffffffff
channel_mask2: 0xffffffff
channel_mask3: 0xffffffff
channel_mask4: 0xffffffff
channel_mask5: 0xffffffff
channel_mask6: 0xffffffff
sample_coef: 1
stream_mode: 0
dest_ip: 192.168.1.100
static_arp: 0
static_dest_mac: 00:1b:21:47:3d:2d
在Windows电脑上测试,一切功能正常
在Ubuntu电脑上测试,测试静态arp功能时发现只会发送一个包就停止发生了(arp功能还是正常)
目前正在排查debug中...
问题解决了,现在Ubuntu电脑上也能静态arp了
原因:Ubuntu和采集卡的链路连接有点“特殊”要求
我上一版的静态arp方案是如果设置了静态arp,就直接跳过arp流程(不发arp包),然后通过配置mac地址来发数据,这种情况下,连Ubuntu电脑这个链路状态是不对的,Windows上倒是OK
这一版我修改成这样,设置了静态arp,还是会进行arp流程,会发arp包,但是不依赖上位机的arp响应,倒计时100ms内就会变成arp成功的状态,然后发数据,然后Ubuntu电脑的链路就成功了
目前是测试过,Windows和Ubuntu都搞定了
静态arp做好了,这样姚老师那边就不需要做arp响应那一套了
Windows:192.168.1.101 00:1b:21:47:3d:2d Ubuntu: 192.168.1.100 6c:b3:11:21:c5:37
本文章使用limfx的vscode插件快速发布