1. 平台 Xilinx SDK2018.1
2. 问题:在裸机程序中使用lwip2.0.2版本,当本地IP地址设置为0.0.0.0时,无法发送udp数据。
3. 原因:
在udp_sendto()函数中,调用ip_route()函数,判断本地ip是不是0x00000000即0.0.0.0。
当判断本地ip为0.0.0.0时,会返回错误结果,导致无法正常发送数据。
4. 解决办法:
在SDK安装路径下修改ip4.c文件。
修改udp_sendto()函数,修改以下语句:
if (netif_is_up(netif) && netif_is_link_up(netif) && !ip4_addr_isany_val(*netif_ip4_addr(netif))) {
改为:
if (netif_is_up(netif) && netif_is_link_up(netif) ) {
另外,
if ((netif_default == NULL) || !netif_is_up(netif_default) || !netif_is_link_up(netif_default) ||
ip4_addr_isany_val(*netif_ip4_addr(netif_default))) {
改为:
if ((netif_default == NULL) || !netif_is_up(netif_default) || !netif_is_link_up(netif_default) ) {
本文发布于:2024-02-02 17:36:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686657345372.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |